private void Search(object sender, RoutedEventArgs e)
 {
     SendMessageToServer.SendMessageSerialize(new Server()
     {
         Name = SeachTextBox.Text, ActionForServer = ActionForServer.Search
     });
 }
Beispiel #2
0
        private void AddTextChatClick(object sender, RoutedEventArgs e)
        {
            var tC = new TextChat()
            {
                Name      = NameTextChat.Text,
                IDServer  = Server.ID,
                StatusObj = StatusObj.Add
            };

            SendMessageToServer.SendMessageSerialize(tC);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        /// <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 = "";
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        /// <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);
        }
Beispiel #12
0
 private void Window_Closed(object sender, EventArgs e)
 {
     SendMessageToServer.SendMessageSerialize("closestream");
 }