private void Search(object sender, RoutedEventArgs e) { SendMessageToServer.SendMessageSerialize(new Server() { Name = SeachTextBox.Text, ActionForServer = ActionForServer.Search }); }
private void AddTextChatClick(object sender, RoutedEventArgs e) { var tC = new TextChat() { Name = NameTextChat.Text, IDServer = Server.ID, StatusObj = StatusObj.Add }; SendMessageToServer.SendMessageSerialize(tC); }
private void TabControlSet_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (a == TabControlSet.SelectedIndex) { return; } a = TabControlSet.SelectedIndex; var ob = new User() { ID = User.ID }; switch (TabControlSet.SelectedIndex) { case (0): break; case (1): ob.ActionFromUser = ActionFromUser.Loud; ob.ServerUser = new List <ServerUser>() { ServerUser }; break; case (2): ob.ActionFromUser = ActionFromUser.LoudFriends; break; case (3): ob.ActionFromUser = ActionFromUser.LoudReq; break; case (5): ob.ActionFromUser = ActionFromUser.LoudUserLog; break; default: break; } if (ob is null) { return; } SendMessageToServer.SendMessageSerialize(ob); }
private void EditingServerClick(object sender, RoutedEventArgs e) { var server = new Server() { ActionForServer = ActionForServer.Editing, ID = Server.ID, Name = Name.Text, Status = (Boolean)StatusServer.IsChecked, Info = Info.Text, Language = Language.Text }; Server = server; SendMessageToServer.SendMessageSerialize(server); }
private void ConnectionFromServer(object sender, RoutedEventArgs e) { if (SerchServers.SelectedIndex == -1) { return; } var server = SerchServersList[SerchServers.SelectedIndex]; var SU = new ServerUser() { IDServer = server.ID, IDUser = User.ID, StatusObj = StatusObj.Add, Name = User.Name }; SendMessageToServer.SendMessageSerialize(SU); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendMessage(object sender, RoutedEventArgs e) { if (String.IsNullOrWhiteSpace(MessagePop.Text)) { return; } SendMessageToServer.SendMessageSerialize(new Message() { IDServerUser = ServerUser.ID, IDTextChat = TextChats[ListTextChat.SelectedIndex].ID, Text = MessagePop.Text, Date = DateTime.Now, }); MessagePop.Text = ""; }
/// <summary> /// Посылает запрос подзагрузки сервера, тобишь текстовых чатов /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ServerWasSelected(object sender, SelectionChangedEventArgs e) { if (ListServers.SelectedIndex == -1) { return; } ListUserMessage.ItemsSource = new List <Message>(); sendMessageButton.IsEnabled = false; Server = Servers[ListServers.SelectedIndex]; serverName.Text = Server.Name; ServerUser = User.ServerUser.First(x => x.IDServer == Server.ID); nickNameUser.Text = ServerUser.Name; Server.ActionOnServer = ActionOnServer.Connect; SendMessageToServer.SendMessageSerialize(Server); }
/// <summary> /// Запускает окно поиска сервера /// И отправляет информацию об этом событии серверу. private void SearchServer() { SendMessageToServer.SendMessageSerialize(new Server() { ActionForServer = ActionForServer.Search }); ServerSearch = new ServerSearchWindow(User); this.EventUpServerSearch += new Action <List <Server> >(ServerSearch.UpServerSearch); this.EventUpOpinion += new Action <List <Opinion> >(ServerSearch.UpOpinion); this.EventUpServersFromUser += new Action <List <Server> >(ServerSearch.UpServerFromUser); ServerSearch.ShowDialog(); this.EventUpServerSearch -= new Action <List <Server> >(ServerSearch.UpServerSearch); this.EventUpOpinion -= new Action <List <Opinion> >(ServerSearch.UpOpinion); this.EventUpServersFromUser -= new Action <List <Server> >(ServerSearch.UpServerFromUser); ServerSearch = null; }
private void DisСonnectionFromServer(object sender, RoutedEventArgs e) { if (SerchServers.SelectedIndex == -1) { return; } var server = SerchServersList[SerchServers.SelectedIndex]; if (UserServerList.FirstOrDefault(x => x.ID == server.ID) is null) { return; } var SU = new ServerUser() { ID = User.ServerUser.FirstOrDefault(x => x.IDServer == server.ID).ID, StatusObj = StatusObj.Delete }; SendMessageToServer.SendMessageSerialize(SU); }
private void ServersList_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SerchServers.SelectedIndex == -1 && ServersList.SelectedIndex == -1) { OpinionList.ItemsSource = new List <Opinion>(); ServerName.Text = ""; ServerInfo.Text = ""; return; } if (ServersList.SelectedIndex == -1) { return; } SerchServers.ItemsSource = SerchServersList; SerchServers.SelectedIndex = -1; SendMessageToServer.SendMessageSerialize(new Server() { ID = UserServerList[ServersList.SelectedIndex].ID, ActionForServer = ActionForServer.LoudOpinion }); LoudInfo(UserServerList[ServersList.SelectedIndex]); }
/// <summary> /// Прослушивает поток, на наличие сообщений от сервера /// Прежде чем добавить какой-нибудь объект в swich подумай 10 раз! /// Т.к. создатель этого метода не шибко умный, тебе придется либо увеличивать switch /// Либо писать огромный метод, который будет все это обрабатывать, что тоже не оч. верно /// </summary> private void TakeMessageOfServer() { Object ob = null; do { try { ob = SendMessageToServer.TakeMessageSerialize(); } catch (Exception) { break; } switch (ob) { /// Получаем сообщения и отправляем их на текстовые чаты case Message message: var text = TextChats.Find(x => x.ID == message.IDTextChat); text.Message.Add(message); //// выполняются полиморфные вызовы EventUpMessage((IEnumerable <Message>)text.Message); break; /// Получаем пользователя и меняем его статус на сервере case ServerUser user: if (user.StatusObj == StatusObj.Add) { User.ServerUser.Add(user); var server = user.Server; Servers.Add(server); EventUpServer?.Invoke(Servers); EventUpServersFromUser?.Invoke(Servers); break; } else if (user.StatusObj == StatusObj.Delete) { User.ServerUser = User.ServerUser.Where(x => user.ID != x.ID).ToList(); var server = user.Server; var asd = Servers.Where(x => server.ID != x.ID).ToList(); Servers.Clear(); foreach (var item in asd) { Servers.Add(item); } EventUpServer?.Invoke(Servers); EventUpServersFromUser?.Invoke(Servers); break; } if (Users is null) { break; } var a = Users.FirstOrDefault(x => x.IDUser == user.IDUser); if (a is null) { break; } EventUpUserStatus(Users); break; /// Получаем пользователей на сервере запоминаем и отправляем в окно редактирования, если оно открыто case (List <ServerUser> SU): if (SU is null) { break; } if (WEditingServer is not null) { WEditingServer.StartEventOfObject(SU); return; } if (WFAU is not null) { EventUpFriendsAndUsers?.Invoke(SU); return; } Users = SU; EventUpUserStatus?.Invoke(SU); break; /// получаем список серверов у пользователя или в окне поиска (TODO) case (List <Server> Servers): if (Servers is null || Servers.Count() == 0) { break; } EventUpServerSearch(Servers); break; /// получаем сервер, если он обновился и отправляем в окно редактирования, если оно открыто case (Server Server): if (Server is null) { break; } if (WEditingServer is not null) { WEditingServer.StartEventOfObject(Server); } break; /// получаем текстовые чаты и отправляем их в окно редактирования, если оно открыто case List <TextChat> textChat: if (textChat is null) { break; } TextChats = textChat; this.EventUpTextChat?.Invoke(textChat); if (WEditingServer is not null) { WEditingServer.StartEventOfObject(textChat); } break; /// получаем Отзывы о сервере и отправляем их в окно редактирования, если оно открыто case List <Opinion> Opinions: if (Opinions is null) { break; } if (WEditingServer is not null) { WEditingServer.StartEventOfObject(Opinions); } EventUpOpinion(Opinions); break; /// получаем Роли на сервере и отправляем их в окно редактирования, если оно открыто case List <Role> Role: if (Role is null) { break; } if (WEditingServer is not null) { WEditingServer.StartEventOfObject(Role); } break; /// получаем Журнал событий сервера и отправляем его в окно редактирования, если оно открыто case List <EventLog> EL: if (EL is null) { break; } if (WEditingServer is not null) { WEditingServer.StartEventOfObject(EL); } break; /// получаем Журнал событий сервера и отправляем его в окно редактирования, если оно открыто case List <Request> RL: if (RL is null) { break; } EventUpFriendsAndUsers.Invoke(RL); break; case List <User> UL: if (UL is null) { break; } EventUpFriendsAndUsers.Invoke(UL); break; case List <UserLog> UL: if (UL is null) { break; } EventUpFriendsAndUsers.Invoke(UL); break; case User user: EventUpFriendsAndUsers.Invoke(user); break; case String str: if (str == "closestream") { Environment.Exit(0); } break; default: MessageBox .Show("Сервер отправил какой-то странный объект.." + ob.GetType().Name); break; } } while (true); }
private void Window_Closed(object sender, EventArgs e) { SendMessageToServer.SendMessageSerialize("closestream"); }