コード例 #1
0
        private void Login_Load(object sender, EventArgs e)
        {
            if (_sharedDataSource.CurrentServerType != ServerType.Login)
            {
                _sharedDataSource.ClientState = ClientState.Startup;

                _sharedDataSource.AddMessage("GETSERVER:LOGIN");
            }
        }
コード例 #2
0
        private void InterfaceUpdated()
        {
            string message = _sharedDataSource.GetUserQueue();

            string[] messages = message.Split(':');

            SetControlPropertyThreadSafe(lblErrors, "Text", "");

            switch (messages[0])
            {
            case "SONGS":
                AddListControlPropertyThreadSafe(lstSongs, messages[1]);
                break;

            case "ERROR":
                if (messages.Length > 1)
                {
                    if (messages[1].StartsWith("No server of"))
                    {
                        SetControlPropertyThreadSafe(lblErrors, "Text", "Attempting to get streaming server.");
                        //wait for 4 seconds to ensure that a server has had time to spawn.
                        Thread.Sleep(4000);
                        _sharedDataSource.AddMessage("GETSERVER:STREAMING");
                    }
                    else
                    {
                        SetControlPropertyThreadSafe(btnLoadSongs, "Enabled", true);
                        SetControlPropertyThreadSafe(btnAdd, "Enabled", true);
                        SetControlPropertyThreadSafe(lblErrors, "Text", messages[1]);
                    }
                }
                break;

            case "RECOMMENDATION":
                if (messages.Length > 1)
                {
                    SetControlPropertyThreadSafe(lblRecommended, "Text", messages[1]);
                }
                break;
            }
        }
コード例 #3
0
        private void LoginProc(string message)
        {
            string[] splitMessage = message.Split(':');
            switch (splitMessage[0])
            {
            case "ADDED":
                _sharedDataSource.AddUserQueue(message);
                break;

            case "AUTH":
                _sharedDataSource.AddUserQueue(message);
                //we need to go back to the connection server.
                _sharedDataSource.AddMessage("DISCONNECT");
                _parent.NextServer     = _parent.CommServerDetails;
                _parent.NextServerType = ServerType.Communication;
                //we then need to send these messages when we have disconnected the writer to ensure that these do not get sent to the wrong server.
                while (_parent.WriterAlive)
                {
                }
                _sharedDataSource.AddMessage("CLIENT");
                _sharedDataSource.AddMessage("GETSERVER:STREAMING");
                break;

            case "ERROR":
                _sharedDataSource.AddUserQueue(message);
                break;

            case "DISCONNECT":

                _connectionState = NetworkConnectionState.Disconnecting;
                break;

            default:
                //we probably sent a bad message - we should handle this.
                break;
            }
        }
コード例 #4
0
 private void btnCreateAccount_Click(object sender, EventArgs e)
 {
     if (txtPassword.Text == "" || txtPasswordReEnter.Text == "")
     {
         MessageBox.Show("Password must not be empty.");
     }
     else if (txtPassword.Text.Contains(":"))
     {
         MessageBox.Show("Password must not contain colons.");
         txtPassword.Text        = "";
         txtPasswordReEnter.Text = "";
     }
     else if (txtPassword.Text == txtPasswordReEnter.Text)
     {
         _sharedDataSource.AddMessage("CREATE:" + txtUsername.Text + ":" + txtPassword.Text);
     }
     else
     {
         //there was an error that I did not think of
         MessageBox.Show("Error");
     }
 }