static void Main(string[] args) { #region AdminController adminController = new AdminController(); List <Client> clients = adminController.GetClients(); return; #endregion #region for ChatController ChatController chatController = new ChatController(); //ищем юзера с ИД = 3 (Богдан) User user1 = chatController.GetUserEntity(userId: 3); Console.WriteLine("user1.firstName = " + user1.firstName); //ищем юзера с логином = 380632762112 (Виталыч) User user2 = chatController.GetUserEntity(login: "******"); Console.WriteLine("user2.firstName = " + user2.firstName); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); //ищем группы в которые входит юзер с логином 380501046052 (Серж) List <Group> groups = chatController.GetUserGroups(login: "******"); groups.ForEach(t => Console.WriteLine("groups = " + t.id + " - " + t.name)); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); List <GroupUser> groupUsers = chatController.GetGroupUsers(groupId: 4); groupUsers.ForEach(u => Console.WriteLine("groupUsers.User.firstName = " + u.User.firstName)); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); //ищем месседжи группы с ИД 4 (Серж - Игорь) List <Message> messages = chatController.GetGroupMessages(groupId: 4); messages.ForEach(delegate(Message message) { //а тут достаем юзера для отображения ленты сообщений GroupUser groupUser = groupUsers.FirstOrDefault(gu => gu.id == message.groupUserId); //ну и сама лента месседжей Console.WriteLine("{0}->{1}->{2}", message.createdOn, groupUser.User.firstName, message.text); }); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); //достаем полноценный контент конкретного сообщения (файл, картинку или длинный текст) - выполнять только когда пользователь кликает на вложение byte[] contentDataBytes = chatController.GetContentDataBytes(messageId: new Guid("C397138F-297A-4488-A1F1-01E8A4026038")); Console.WriteLine("contentDataBytes.Length = " + contentDataBytes.Length); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); //добавление новой группы Group group = new Group() { name = "New Group", createdOn = DateTime.UtcNow, createdById = 1 }; group.id = chatController.AddGroup(group); Console.WriteLine("Новая группа {0} с ИД {1} создана", group.name, group.id); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); //добавление нового юзера в группу GroupUser grUser = new GroupUser() { addedById = 1, addedOn = DateTime.UtcNow, groupId = 7, userId = 1 }; grUser.id = chatController.AddGroupUser(grUser); Console.ReadKey(); #endregion ; return; #region just for console client int groupId = 4; Console.WriteLine("Choose user (just type number):"); Console.WriteLine("1 - Серж"); Console.WriteLine("2 - Игорь"); Console.WriteLine("3 - Богдан"); Console.WriteLine("4 - Виталий"); Console.WriteLine("5 - Анатолий"); int userId = Convert.ToInt32(Console.ReadLine()); string userLogin = string.Empty; string userName = string.Empty; switch (userId) { case 1: userLogin = "******"; userName = "******"; break; case 2: userLogin = "******"; userName = "******"; break; case 3: userLogin = "******"; userName = "******"; break; case 4: userLogin = "******"; userName = "******"; break; case 5: userLogin = "******"; userName = "******"; break; } Console.WriteLine(Environment.NewLine + "Welcome to chat, {0} ({1})", userName, userLogin); Console.WriteLine(Environment.NewLine + "--------------------" + Environment.NewLine); Console.ReadKey(); #endregion ; string url = "http://intensfitapi.azurewebsites.net"; //string url = "http://localhost:61889"; var hubConnection = new HubConnection(url, new Dictionary <string, string> { { "UserLogin", userLogin } }); //hubConnection.AddClientCertificate(X509Certificate.CreateFromCertFile("MyCert.cer")); //hubConnection.Headers.Add("HeaderKey", "HeaderValue"); /** Создаем прокси для работы из сети банка **/ //WebProxy proxy = new WebProxy("tmg.bank.lan", 8080) //{ // UseDefaultCredentials = false, // Credentials = new NetworkCredential("a.Tkachenko", "LBNdyu27$zxcv", "Bank") //}; //hubConnection.Proxy = proxy; var chat = hubConnection.CreateHubProxy("ChatHub"); chat.On <string, string>("addNewMessageToPage", (name, message) => { Console.Write(name + ": "); Console.WriteLine(message); }); hubConnection.Start().Wait(); chat.Invoke("Notify", "Console app", hubConnection.ConnectionId); string msg = null; while ((msg = Console.ReadLine()) != null) { //chat.Invoke("Send", "Console app", msg).Wait(); //chat.Invoke("Remove", msgEntity).Wait(); Message message = new Message(); message.id = Guid.NewGuid(); message.typeId = 1; message.text = msg; //message.participantId = 3; message.createdOn = DateTime.UtcNow; message.Content = new Content(); message.Content.messageId = message.id; message.Content.typeId = 1; message.Content.data = Encoding.ASCII.GetBytes("content file or huge text: " + message.text); message.GroupUser = new GroupUser() { User = new User() { cellphone = userLogin, firstName = userName }, groupId = groupId }; chat.Invoke("AddMessage", message).Wait(); } }