예제 #1
0
        private void MessageSorter(byte[] buffer, int start, int length, Socket clientSocket)
        {
            string            content  = Encoding.Default.GetString(buffer, 0, length);
            MessageDictionary messageD = new MessageDictionary(content);

            ShowMessage("从" + clientSocket.RemoteEndPoint.ToString() + "接收消息:" + content + "\n");
            CommandType command = (CommandType)Enum.Parse(typeof(CommandType), messageD[MesKeyStr.CommandType]);

            switch (command)
            {
            case CommandType.Login:
            {
                LoginEvent?.Invoke(this, new LoginEventArgs()
                    {
                        UserID        = messageD[MesKeyStr.UserID],
                        PassWord      = messageD[MesKeyStr.PassWord],
                        ReceiveSocket = clientSocket
                    });

                break;
            }

            case CommandType.Logout:
            {
                LogoutEvent?.Invoke(this, new User(messageD[MesKeyStr.UserID], messageD[MesKeyStr.NickName]));
                break;
            }

            case CommandType.SignUp:
            {
                SignUpEvent?.Invoke(this, new SignUpEventArgs(clientSocket, messageD[MesKeyStr.NickName], messageD[MesKeyStr.PassWord]));
                break;
            }

            case CommandType.GroupMessage:
            {
                GroupMessageEvent?.Invoke(this, messageD);
                break;
            }

            case CommandType.PrivateMessage:
            {
                PrivateMessageEvent?.Invoke(this, messageD);
                break;
            }

            case CommandType.UserJoin:
            case CommandType.UserQuit:
            case CommandType.LoginResult:
            case CommandType.SignUpResult:
            case CommandType.ServerDisconnect:
            case CommandType.Remove:
            {
                ShowMessage("收到错误的消息类型!");
                throw new Exception("收到错误的消息类型!");
            }
            }
        }
예제 #2
0
        private void Setup()
        {
            TextField streamIDText = this.Q <TextField>("StreamIDText");
            Button    submitButton = this.Q <Button>("SubmitButton");
            Button    logoutButton = this.Q <Button>("LogoutButton");

            submitButton.RegisterCallback <ClickEvent>(ev => OnSubmit.Invoke(streamIDText.text));
            logoutButton.RegisterCallback <ClickEvent>(ev => LogoutEvent.Invoke());
        }
예제 #3
0
        private void SubscribeEvents()
        {
            events.Add(
                eventAggregator.GetEvent <LogoutEvent>(),
                eventAggregator.GetEvent <LogoutEvent>().Subscribe(() => LogoutEvent?.Invoke()));

            events.Add(
                eventAggregator.GetEvent <QuitApplicationEvent>(),
                eventAggregator.GetEvent <QuitApplicationEvent>().Subscribe(() => QuitApplicationEvent?.Invoke()));
        }
예제 #4
0
        public void Logout()
        {
            LoggedIn = false;
            Stop();
            CurrentStation = null;
            _playlist.ClearSongs();
            _playlist.ClearHistory();
            _playlist.Current = null;
            _pandora.Logout();
            Email    = string.Empty;
            Password = string.Empty;

            LogoutEvent?.Invoke(this);
            _cqman.SendStatusUpdate(QueryStatusValue.Disconnected);
        }
예제 #5
0
 /// <summary>
 /// Naciśnięcie przycisku wylogowywania
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void LogoutButtonClicked(object sender, EventArgs e)
 {
     LogoutEvent?.Invoke(sender, e);
 }
예제 #6
0
 private void OnLogoutClicked(object sender, EventArgs arguments)
 {
     _wifiObserver.StopListening();
     LogoutEvent?.Invoke(sender, arguments);
 }
예제 #7
0
 internal void FireLogoutEvent() => LogoutEvent?.Invoke(this, new LoginEventArgs()
 {
 });
예제 #8
0
 private void MainView_FormClosed(object sender, FormClosedEventArgs e)
 {
     service.Logut();
     service.UnSubScribeAll();
     LogoutEvent?.Invoke(this, e);
 }
예제 #9
0
 private void logOutToolStripMenuItem_Click(object sender, EventArgs e)
 {
     service.Logut();
     service.UnSubScribeAll();
     LogoutEvent?.Invoke(this, e);
 }
 public void RaiseLogoutEvent()
 {
     LogoutEvent?.Invoke(this, EventArgs.Empty);
 }