├── Chatters ├── chat.png ├── LICENSE.TXT ├── WPFChatter │ ├── chat.png │ ├── App.config │ ├── app.xaml │ ├── SignInControl.xaml │ ├── WPFChatter.csproj │ ├── SignInControl.xaml.cs │ ├── ChatService.cs │ ├── ClassDiagram1.cd │ ├── ChatControl.xaml │ ├── Window1.xaml │ ├── ChatControl.xaml.cs │ └── Proxy_Singleton.cs ├── ChatService │ ├── HOW TO CREATE CLIENT PROXY.txt │ ├── App.config │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ClassDiagram1.cd │ └── ChatService.csproj ├── Common │ ├── ClassDiagram1.cd │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Common.csproj │ └── Person.cs └── Chatters.sln ├── ChatSolution ├── Client │ ├── Images │ │ ├── About.jpg │ │ ├── Login.jpg │ │ ├── Image1.jpg │ │ ├── Feedback.jpg │ │ └── Registration.jpg │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── App.xaml │ ├── App.xaml.cs │ ├── Service References │ │ └── Chat │ │ │ ├── Client.Chat.User.datasource │ │ │ ├── Client.Chat.Message.datasource │ │ │ ├── Client.Chat.PersonalRoom.datasource │ │ │ ├── configuration.svcinfo │ │ │ ├── Reference.svcmap │ │ │ ├── service1.xsd │ │ │ ├── Chat_Library.xsd │ │ │ └── service.xsd │ ├── App.config │ ├── Registration.xaml.cs │ ├── AboutWin.xaml.cs │ ├── AboutWin.xaml │ ├── Login.xaml │ ├── Feedback.xaml │ ├── Login.xaml.cs │ ├── Feedback.xaml.cs │ ├── Registration.xaml │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ └── Client.csproj ├── Chat_Library │ ├── packages.config │ ├── MessagePM.cs │ ├── Messages.cs │ ├── Messages.edmx.diagram │ ├── Messages.Designer.cs │ ├── Message.cs │ ├── User.cs │ ├── Messages.Context.cs │ ├── IChatable.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── App.config │ ├── Chatable.cs │ ├── Chat_Library.csproj │ └── Messages.edmx ├── TEST │ ├── Service References │ │ └── ServiceReference1 │ │ │ ├── TEST.ServiceReference1.Message.datasource │ │ │ ├── Chat_Library.xsd │ │ │ ├── service.xsd │ │ │ ├── configuration.svcinfo │ │ │ ├── Reference.svcmap │ │ │ ├── service1.xsd │ │ │ ├── service.wsdl │ │ │ └── Reference.cs │ ├── App.config │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── TEST.csproj └── ChatSolution.sln ├── README.md ├── LICENSE ├── .gitattributes └── .gitignore /Chatters/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/Chatters/chat.png -------------------------------------------------------------------------------- /Chatters/LICENSE.TXT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/Chatters/LICENSE.TXT -------------------------------------------------------------------------------- /Chatters/WPFChatter/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/Chatters/WPFChatter/chat.png -------------------------------------------------------------------------------- /ChatSolution/Client/Images/About.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/ChatSolution/Client/Images/About.jpg -------------------------------------------------------------------------------- /ChatSolution/Client/Images/Login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/ChatSolution/Client/Images/Login.jpg -------------------------------------------------------------------------------- /ChatSolution/Client/Images/Image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/ChatSolution/Client/Images/Image1.jpg -------------------------------------------------------------------------------- /ChatSolution/Client/Images/Feedback.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/ChatSolution/Client/Images/Feedback.jpg -------------------------------------------------------------------------------- /ChatSolution/Client/Images/Registration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/narekye/Chat_WCF_WPF/HEAD/ChatSolution/Client/Images/Registration.jpg -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Chatters/ChatService/HOW TO CREATE CLIENT PROXY.txt: -------------------------------------------------------------------------------- 1 | svcutil ChatService.exe 2 | svcutil *.wsdl *.xsd /language:C# /out:MyProxy.cs /config:app.config 3 | 4 | 5 | FOR ASYNCH 6 | 7 | svcutil *.wsdl *.xsd /a /language:C# /out:MyProxy.cs /config:app.config -------------------------------------------------------------------------------- /ChatSolution/Client/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/MessagePM.cs: -------------------------------------------------------------------------------- 1 | namespace Chat_Library 2 | { 3 | using System.Collections.Generic; 4 | public class PersonalRoom 5 | { 6 | public List Messages { get; set; } 7 | public List Users { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | These distributed applications are built on a learning experience. I wanted to share the code to learn more and let others learn too, so if you got problems, errors, ideas, please let me know. If you liked it, please Star. Thanks. 2 | 3 |
4 |


5 | 6 | -------------------------------------------------------------------------------- /ChatSolution/Client/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ChatSolution/Client/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace Client 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Chatters/Common/ClassDiagram1.cd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Person.cs 8 | AAAAAAAAAAAAAAAAJAAAAAQAgAAEAAAABAAAAAAAAAA= 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Messages.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated from a template. 4 | // 5 | // Manual changes to this file may cause unexpected behavior in your application. 6 | // Manual changes to this file will be overwritten if the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/Client.Chat.User.datasource: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Client.Chat.User, Service References.Chat.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 10 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/Client.Chat.Message.datasource: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Client.Chat.Message, Service References.Chat.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 10 | -------------------------------------------------------------------------------- /Chatters/WPFChatter/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/Client.Chat.PersonalRoom.datasource: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Client.Chat.PersonalRoom, Service References.Chat.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 10 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/TEST.ServiceReference1.Message.datasource: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | TEST.ServiceReference1.Message, Service References.ServiceReference1.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 10 | -------------------------------------------------------------------------------- /Chatters/WPFChatter/app.xaml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ChatSolution/Client/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ChatSolution/TEST/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Messages.edmx.diagram: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Messages.Designer.cs: -------------------------------------------------------------------------------- 1 | // T4 code generation is enabled for model 'C:\Users\Narek-PC\Source\Repos\Chat_WCF_WPF\ChatSolution\Chat_Library\Messages.edmx'. 2 | // To enable legacy code generation, change the value of the 'Code Generation Strategy' designer 3 | // property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model 4 | // is open in the designer. 5 | 6 | // If no context and entity classes have been generated, it may be because you created an empty model but 7 | // have not yet chosen which version of Entity Framework to use. To generate a context class and entity 8 | // classes for your model, open the model in the designer, right-click on the designer surface, and 9 | // select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation 10 | // Item...'. -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Message.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated from a template. 4 | // 5 | // Manual changes to this file may cause unexpected behavior in your application. 6 | // Manual changes to this file will be overwritten if the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | namespace Chat_Library 11 | { 12 | using System; 13 | using System.Collections.Generic; 14 | 15 | public partial class Message 16 | { 17 | public int MessageId { get; set; } 18 | public string MessageSender { get; set; } 19 | public string MessageContent { get; set; } 20 | public string MessageTIme { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/User.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated from a template. 4 | // 5 | // Manual changes to this file may cause unexpected behavior in your application. 6 | // Manual changes to this file will be overwritten if the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | namespace Chat_Library 11 | { 12 | using System; 13 | using System.Collections.Generic; 14 | 15 | public partial class User 16 | { 17 | public int UserId { get; set; } 18 | public string UserName { get; set; } 19 | public string NickName { get; set; } 20 | public string UserPassword { get; set; } 21 | public string Email { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using TEST.ServiceReference1; 7 | 8 | namespace TEST 9 | { 10 | class Program 11 | { 12 | static void Main(string[] args) 13 | { 14 | ServiceReference1.Message mes = new Message() 15 | { 16 | MessageContent = "Hello... !!", 17 | MessageSender = "Narek" 18 | }; 19 | ServiceReference1.ChatableClient client = new ChatableClient(); 20 | // client.Send(mes); 21 | var list = client.GetMessages(); 22 | foreach (Message message in list) 23 | { 24 | Console.WriteLine(message.MessageSender); 25 | } 26 | 27 | Console.Read(); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/Chat_Library.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Chatters/ChatService/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Narek Yegoryan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Messages.Context.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated from a template. 4 | // 5 | // Manual changes to this file may cause unexpected behavior in your application. 6 | // Manual changes to this file will be overwritten if the code is regenerated. 7 | // 8 | //------------------------------------------------------------------------------ 9 | 10 | namespace Chat_Library 11 | { 12 | using System; 13 | using System.Data.Entity; 14 | using System.Data.Entity.Infrastructure; 15 | 16 | public partial class MessagesContext_ : DbContext 17 | { 18 | public MessagesContext_() 19 | : base("name=MessagesContext_") 20 | { 21 | } 22 | 23 | protected override void OnModelCreating(DbModelBuilder modelBuilder) 24 | { 25 | throw new UnintentionalCodeFirstException(); 26 | } 27 | 28 | public virtual DbSet Messages { get; set; } 29 | public virtual DbSet Users { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ChatSolution/Client/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Client.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/service.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ChatSolution/Client/Registration.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace Client 2 | { 3 | using System.Windows; 4 | using Chat; 5 | 6 | public partial class Registration 7 | { 8 | public Registration() 9 | { 10 | InitializeComponent(); 11 | } 12 | 13 | private async void Register_Click(object sender, RoutedEventArgs e) 14 | { 15 | if ((Username.Text == null || Username.Text.Length < 3) && (Password.Text == null || Password.Text.Length < 6) && Nickname == null ) 16 | { 17 | MessageBox.Show("Input correctly Credential \nPassword must by more than 6 symbol !!!"); 18 | } 19 | User user = new User 20 | { 21 | NickName = Nickname.Text, 22 | UserName = Username.Text, 23 | Email = Email.Text, 24 | UserPassword = Password.Text 25 | }; 26 | 27 | MainWindow._proxy.SendMail(user); 28 | if (await MainWindow._proxy.RegisterAsync(user)) 29 | { 30 | MessageBox.Show("User successfully registered..."); 31 | Close(); 32 | return; 33 | } 34 | MessageBox.Show("User with the same nickname was founded, try another nickname..."); 35 | Close(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Chatters/ChatService/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.ServiceModel; 5 | using System.Configuration; 6 | 7 | namespace Chatters 8 | { 9 | #region ChatService 10 | /// 11 | /// This class creates the initial ChatService which 12 | /// is used by all the connected chat clients. The app.config is used to creat the 13 | /// service bindings 14 | /// 15 | class Program 16 | { 17 | /// 18 | /// Main access point, creates the initial ChatService which 19 | /// is used by all the connected chat clients. The app.config is used to creat the 20 | /// service bindings 21 | /// 22 | /// The command line args 23 | static void Main(string[] args) 24 | { 25 | Uri uri = new Uri(ConfigurationManager.AppSettings["addr"]); 26 | ServiceHost host = new ServiceHost(typeof(Chatters.ChatService), uri); 27 | host.Open(); 28 | Console.WriteLine("Chat service listen on endpoint {0}", uri.ToString()); 29 | Console.WriteLine("Press ENTER to stop chat service..."); 30 | Console.ReadLine(); 31 | host.Abort(); 32 | host.Close(); 33 | } 34 | } 35 | #endregion 36 | } 37 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/IChatable.cs: -------------------------------------------------------------------------------- 1 | namespace Chat_Library 2 | { 3 | using System.Collections.Generic; 4 | using System.ServiceModel; 5 | using System.Threading.Tasks; 6 | 7 | [ServiceContract] 8 | public interface IChatable 9 | { 10 | [OperationContract] 11 | void Send(Message message); 12 | [OperationContract] 13 | Task> GetMessages(); 14 | [OperationContract] 15 | Task LoginAsync(User user); 16 | [OperationContract] 17 | Task RegisterAsync(User user); 18 | [OperationContract] 19 | void SendMail(User user); 20 | [OperationContract] 21 | List GetAllUsersAsync(); 22 | [OperationContract] 23 | Task> GetAllUsersAsyncFromDb(); 24 | [OperationContract] 25 | void RemoveFromList(User users); 26 | // added for PM 27 | 28 | #region PM 29 | 30 | 31 | 32 | [OperationContract] 33 | bool EnterExsitingRoom(User first, User second); 34 | [OperationContract] 35 | List GetAllRooms(); 36 | [OperationContract] 37 | int CreateRoom(User first); 38 | [OperationContract] 39 | void SendToRoom(int roomindex, Message message); 40 | [OperationContract] 41 | List GetRoomMessages(int index); 42 | [OperationContract] 43 | int GetIndex(User us); 44 | #endregion 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Chatters/Common/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Person")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Person")] 13 | [assembly: AssemblyCopyright("Copyright © 2007")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("113a7596-ad50-4afa-a5d7-154a2791b3ab")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/configuration.svcinfo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Chatters/ChatService/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Chat service")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("NikeSoft")] 12 | [assembly: AssemblyProduct("Chat service")] 13 | [assembly: AssemblyCopyright("Copyright © Nikola Paljetak 2006")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("502fde73-5223-43e7-9426-67df9d5451a1")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TEST")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TEST")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c9cfb7fc-96cf-45b3-a7d4-1e66487d0be2")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /ChatSolution/Chat_Library/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Chat_Library")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Chat_Library")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("4ed206c8-dab3-4723-a17b-677a47f19922")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/configuration.svcinfo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ChatSolution/Client/AboutWin.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Controls; 9 | using System.Windows.Data; 10 | using System.Windows.Documents; 11 | using System.Windows.Input; 12 | using System.Windows.Media; 13 | using System.Windows.Media.Imaging; 14 | using System.Windows.Shapes; 15 | 16 | namespace Client 17 | { 18 | /// 19 | /// Interaction logic for AboutWin.xaml 20 | /// 21 | public partial class AboutWin : Window 22 | { 23 | public AboutWin() 24 | { 25 | InitializeComponent(); 26 | } 27 | private void NarGithub_Click(object sender, RoutedEventArgs e) 28 | { 29 | Process.Start("https://github.com/narekye"); 30 | } 31 | 32 | private void VanGithub_Click(object sender, RoutedEventArgs e) 33 | { 34 | Process.Start("https://github.com/vanhakobyan"); 35 | 36 | } 37 | 38 | private void NarFB_Click(object sender, RoutedEventArgs e) 39 | { 40 | Process.Start("https://www.facebook.com/yegoryan.narek"); 41 | } 42 | 43 | 44 | 45 | private void VanFB_Click(object sender, RoutedEventArgs e) 46 | { 47 | Process.Start("https://www.facebook.com/VANHAKOBYAN"); 48 | } 49 | 50 | private void MainBrowser_Loaded(object sender, RoutedEventArgs e) 51 | { 52 | MainBrowser.Navigate("https://github.com/narekye/Chat_WCF_WPF"); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /ChatSolution/Client/AboutWin.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ChatSolution/Client/Login.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ChatSolution/Client/Login.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace Client 2 | { 3 | using System; 4 | using System.Windows; 5 | using Chat; 6 | using System.Windows.Input; 7 | 8 | public partial class Login 9 | { 10 | private static User user; 11 | private static ChatableClient chat = MainWindow._proxy; 12 | public Login() 13 | { 14 | InitializeComponent(); 15 | } 16 | 17 | private async void button_Click(object sender, RoutedEventArgs e) 18 | { 19 | if ((Login_.Text == null || Login_.Text == string.Empty) 20 | && (Password.Password == null || Password.Password == string.Empty) 21 | || (Password.Password.Length <= 6 && Password.Password.Length >= 15)) 22 | { 23 | MessageBox.Show("Please correctly enter the Login or password.."); 24 | } 25 | user = new User() 26 | { 27 | NickName = Login_.Text, 28 | UserPassword = Password.Password 29 | }; 30 | if (await chat.LoginAsync(user)) 31 | { 32 | MainWindow.user = user; 33 | MessageBox.Show("Logged in as: " + user.NickName); 34 | Close(); 35 | return; 36 | } 37 | MessageBox.Show("UserName or password incorrect.../nPlease correctly enter !!!"); 38 | Close(); 39 | } 40 | 41 | private void Password_KeyDown(object sender, KeyEventArgs e) 42 | { 43 | if (e.Key == Key.Enter) 44 | { 45 | button_Click(null, null); 46 | } 47 | } 48 | 49 | private async void ComboBox(object sender, EventArgs e) 50 | { 51 | Login_.Items.Clear(); 52 | var list = await chat.GetAllUsersAsyncFromDbAsync(); 53 | foreach (User user1 in list) 54 | { 55 | Login_.Items.Add(user1.NickName); 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Chatters/ChatService/ClassDiagram1.cd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ChatService.cs 8 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAACAACA= 9 | 10 | 11 | 12 | 13 | 14 | ChatService.cs 15 | EARgABAAAAAABAhAAAAEABQgAQEAAAAAAAAAEACAAAA= 16 | 17 | 18 | 19 | 20 | ChatService.cs 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | Program.cs 30 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA= 31 | 32 | 33 | 34 | 35 | 36 | ChatService.cs 37 | AAAAAAAAAAAABAgAAAAAABAAAAEAAAAAAAAAAAAAAAA= 38 | 39 | 40 | 41 | 42 | 43 | ChatService.cs 44 | AABAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAgAAAAAAAAA= 45 | 46 | 47 | 48 | 49 | 50 | ChatService.cs 51 | AABAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAgAAAAAAAAA= 52 | 53 | 54 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/Reference.svcmap: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | true 6 | true 7 | 8 | false 9 | false 10 | false 11 | 12 | 13 | true 14 | Auto 15 | true 16 | true 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Chatters/Chatters.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27004.2010 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{ADFF1AB8-CBE5-4575-90CB-04E1D40C210E}" 7 | ProjectSection(SolutionItems) = preProject 8 | ChatService\HOW TO CREATE CLIENT PROXY.txt = ChatService\HOW TO CREATE CLIENT PROXY.txt 9 | TODO.txt = TODO.txt 10 | EndProjectSection 11 | EndProject 12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatService", "ChatService\ChatService.csproj", "{DD577760-8113-409A-B2B8-DE6F8C267F69}" 13 | EndProject 14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{37999231-F81C-4638-974E-66D2D736D19C}" 15 | EndProject 16 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFChatter", "WPFChatter\WPFChatter.csproj", "{9AFE07B2-EBD3-4385-A533-CB58EDAF64EB}" 17 | EndProject 18 | Global 19 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 20 | Debug|Any CPU = Debug|Any CPU 21 | Release|Any CPU = Release|Any CPU 22 | EndGlobalSection 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 24 | {DD577760-8113-409A-B2B8-DE6F8C267F69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {DD577760-8113-409A-B2B8-DE6F8C267F69}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {DD577760-8113-409A-B2B8-DE6F8C267F69}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {DD577760-8113-409A-B2B8-DE6F8C267F69}.Release|Any CPU.Build.0 = Release|Any CPU 28 | {37999231-F81C-4638-974E-66D2D736D19C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 29 | {37999231-F81C-4638-974E-66D2D736D19C}.Debug|Any CPU.Build.0 = Debug|Any CPU 30 | {37999231-F81C-4638-974E-66D2D736D19C}.Release|Any CPU.ActiveCfg = Release|Any CPU 31 | {37999231-F81C-4638-974E-66D2D736D19C}.Release|Any CPU.Build.0 = Release|Any CPU 32 | {9AFE07B2-EBD3-4385-A533-CB58EDAF64EB}.Debug|Any CPU.ActiveCfg = Debug|x86 33 | {9AFE07B2-EBD3-4385-A533-CB58EDAF64EB}.Release|Any CPU.ActiveCfg = Debug|x86 34 | {9AFE07B2-EBD3-4385-A533-CB58EDAF64EB}.Release|Any CPU.Build.0 = Debug|x86 35 | EndGlobalSection 36 | GlobalSection(SolutionProperties) = preSolution 37 | HideSolutionNode = FALSE 38 | EndGlobalSection 39 | GlobalSection(ExtensibilityGlobals) = postSolution 40 | SolutionGuid = {C8BF33FE-B6B7-40FF-94AA-CD19F9434E2A} 41 | EndGlobalSection 42 | EndGlobal 43 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/Reference.svcmap: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | true 6 | true 7 | 8 | false 9 | false 10 | false 11 | 12 | 13 | true 14 | Auto 15 | true 16 | true 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /ChatSolution/Client/Feedback.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace Client 2 | { 3 | using System; 4 | using System.Net; 5 | using System.Net.Mail; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | using System.Windows.Input; 9 | 10 | public partial class Feedback 11 | { 12 | public Feedback() 13 | { 14 | InitializeComponent(); 15 | } 16 | 17 | private async void SendFeedback_Click(object sender, RoutedEventArgs e) 18 | { 19 | if ((Email.Text == null || !Email.Text.Contains("@") && Password.Password.Length < 6 && Text.Text == null)) 20 | { 21 | MessageBox.Show("Please input correct credential !!!"); 22 | } 23 | await Task.Run(() => 24 | { 25 | string text = Text.Text; 26 | string smtpAddress = "smtp.gmail.com"; 27 | string emailFrom = Email.Text; 28 | string password = Password.Password; 29 | string emailTo = "chatablenarvan@gmail.com"; 30 | string subject = "FeedBack"; 31 | string body = text; 32 | MailMessage mail = new MailMessage(); 33 | mail.From = new MailAddress(emailFrom); 34 | mail.To.Add(emailTo); 35 | mail.Subject = subject; 36 | mail.Body = body; 37 | mail.IsBodyHtml = true; 38 | using (SmtpClient smtp = new SmtpClient(smtpAddress, 587)) 39 | { 40 | smtp.Credentials = new NetworkCredential(emailFrom, password); 41 | smtp.EnableSsl = true; 42 | try 43 | { 44 | smtp.SendAsync(mail, new object()); 45 | MessageBox.Show("Your FeedBack Successfully Sent\n \t Thank You"); 46 | } 47 | catch (Exception) 48 | { 49 | MessageBox.Show("Input Correct Gmail and/or Password"); 50 | } 51 | } 52 | }); 53 | } 54 | private async void Send_KeyDown(object sender, KeyEventArgs e) 55 | { 56 | await Task.Run(() => 57 | { 58 | if (e.Key == Key.Enter) 59 | { 60 | SendFeedback_Click(null, null); 61 | } 62 | }); 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /ChatSolution/Client/Registration.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ChatSolution/Client/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("Client")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("Client")] 15 | [assembly: AssemblyCopyright("Copyright © 2017")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | //In order to begin building localizable applications, set 25 | //CultureYouAreCodingWith in your .csproj file 26 | //inside a . For example, if you are using US english 27 | //in your source files, set the to en-US. Then uncomment 28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 29 | //the line below to match the UICulture setting in the project file. 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | 34 | [assembly: ThemeInfo( 35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 36 | //(used if a resource is not found in the page, 37 | // or application resource dictionaries) 38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 39 | //(used if a resource is not found in the page, 40 | // app, or any theme specific resource dictionaries) 41 | )] 42 | 43 | 44 | // Version information for an assembly consists of the following four values: 45 | // 46 | // Major Version 47 | // Minor Version 48 | // Build Number 49 | // Revision 50 | // 51 | // You can specify all the values or you can default the Build and Revision Numbers 52 | // by using the '*' as shown below: 53 | // [assembly: AssemblyVersion("1.0.*")] 54 | [assembly: AssemblyVersion("1.0.0.0")] 55 | [assembly: AssemblyFileVersion("1.0.0.0")] 56 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/service1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /ChatSolution/TEST/Service References/ServiceReference1/service1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /ChatSolution/Client/Service References/Chat/Chat_Library.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /Chatters/Common/Common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Debug 4 | AnyCPU 5 | 8.0.50727 6 | 2.0 7 | {37999231-F81C-4638-974E-66D2D736D19C} 8 | Library 9 | Properties 10 | Person 11 | Person 12 | 13 | 14 | v2.0 15 | 16 | 17 | 18 | 19 | 2.0 20 | 21 | 22 | true 23 | full 24 | false 25 | bin\Debug\ 26 | DEBUG;TRACE 27 | prompt 28 | 4 29 | 30 | 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 60 | -------------------------------------------------------------------------------- /ChatSolution/Client/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 |