Exemple #1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                var leaderBoardProvider = new LeaderBoardProvider();

                List <Player> playerList = (List <Player>)playersBindingSource.DataSource;

                decimal winnings = 0;
                decimal.TryParse(txtWinnings.Text, out winnings);
                LeaderBoard leaderBoard = leaderBoardProvider.AddPlayer(txtPlayerName.Text, winnings, playerList);

                lblMedian.Text = string.Format("{0:C}", leaderBoard.Median);
                lblMean.Text   = string.Format("{0:C}", leaderBoard.Mean);

                playersBindingSource            = new BindingSource();
                playersBindingSource.DataSource = leaderBoard.Players;
                dgPlayer.DataSource             = playersBindingSource;
                dgPlayer.Update();
                dgPlayer.Refresh();

                txtPlayerName.Text   = string.Empty;
                txtWinnings.Text     = string.Empty;
                pnlAddPlayer.Visible = false;
                btnAddPlayer.Visible = true;
            }
            catch (Exception ex)
            {
                lblMessage.Visible = true;
                lblMessage.Text    = ex.Message;
            }
        }
Exemple #2
0
        private void SaveData()
        {
            var leaderBoard = new LeaderBoard()
            {
                Mean    = Parse(lblMedian.Text),
                Median  = Parse(lblMedian.Text),
                Players = (List <Player>)playersBindingSource.DataSource
            };
            LeaderBoardProvider leaderBoardProvider = new LeaderBoardProvider();

            leaderBoardProvider.SaveLeaderBoard(leaderBoard);
        }
Exemple #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            var leaderBoardProvider = new LeaderBoardProvider();
            var leaderBoard         = leaderBoardProvider.GetLeaderBoard();

            lblMedian.Text = string.Format("{0:C}", leaderBoard.Median);
            lblMean.Text   = string.Format("{0:C}", leaderBoard.Mean);

            if (leaderBoard.Players != null)
            {
                playersBindingSource.DataSource = leaderBoard.Players;
                dgPlayer.DataSource             = playersBindingSource;
            }
            else
            {
                lblMessage.Visible = true;
                lblMessage.Text    = "There are no players to display";
            }
        }
Exemple #4
0
        private void dgPlayer_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if ((e.RowIndex >= 0) &&
                (e.ColumnIndex == dgPlayer.Columns["Edit"].Index ||
                 e.ColumnIndex == dgPlayer.Columns["Save"].Index ||
                 e.ColumnIndex == dgPlayer.Columns["Cancel"].Index ||
                 e.ColumnIndex == dgPlayer.Columns["Delete"].Index))
            {
                DataGridViewCell colName     = dgPlayer.Rows[e.RowIndex].Cells["Player Name"];
                DataGridViewCell colWinnings = dgPlayer.Rows[e.RowIndex].Cells["Winnings"];


                if (e.ColumnIndex == dgPlayer.Columns["Cancel"].Index)
                {
                    dgPlayer.Columns["Edit"].Visible   = true;
                    dgPlayer.Columns["Save"].Visible   = false;
                    dgPlayer.Columns["Cancel"].Visible = false;

                    //revert changes to orignal amounts
                    colWinnings.Value = lblOrigWinnings.Text;

                    colName.ReadOnly     = true;
                    colWinnings.ReadOnly = true;
                    dgPlayer.Rows[e.RowIndex].ReadOnly = true;
                    dgPlayer.ReadOnly = true;
                    return;
                }

                if (e.ColumnIndex == dgPlayer.Columns["Save"].Index)
                {
                    try
                    {
                        var           leaderBoardProvider = new LeaderBoardProvider();
                        var           player     = (Player)dgPlayer.Rows[e.RowIndex].DataBoundItem;
                        List <Player> playerList = (List <Player>)playersBindingSource.DataSource;

                        var leaderBoard = leaderBoardProvider.UpdatePlayer(player, playerList);
                        lblMedian.Text = string.Format("{0:C}", leaderBoard.Median);
                        lblMean.Text   = string.Format("{0:C}", leaderBoard.Mean);

                        playersBindingSource            = new BindingSource();
                        playersBindingSource.DataSource = leaderBoard.Players;
                        dgPlayer.DataSource             = playersBindingSource;
                        dgPlayer.Update();
                        dgPlayer.Refresh();

                        dgPlayer.Columns["Edit"].Visible   = true;
                        dgPlayer.Columns["Delete"].Visible = true;
                        dgPlayer.Columns["Save"].Visible   = false;
                        dgPlayer.Columns["Cancel"].Visible = false;

                        colWinnings.ReadOnly = true;
                        dgPlayer.Rows[e.RowIndex].ReadOnly = true;
                        dgPlayer.ReadOnly = true;
                        return;
                    }
                    catch (Exception ex)
                    {
                        lblMessage.Visible = true;
                        lblMessage.Text    = ex.Message;
                    }
                }

                if (e.ColumnIndex == dgPlayer.Columns["Delete"].Index)
                {
                    try
                    {
                        string            message = "Are you sure you want to delete this record?";
                        string            caption = "Delete Player";
                        MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                        DialogResult      result;

                        result = MessageBox.Show(message, caption, buttons);
                        if (result == DialogResult.Yes)
                        {
                            var           leaderBoardProvider = new LeaderBoardProvider();
                            var           player     = (Player)dgPlayer.Rows[e.RowIndex].DataBoundItem;
                            List <Player> playerList = (List <Player>)playersBindingSource.DataSource;

                            var leaderBoard = leaderBoardProvider.DeletePlayer(player, playerList);

                            if ((leaderBoard.Players == null) || (leaderBoard.Players.Count == 0))
                            {
                                lblMedian.Text = "0";
                                lblMean.Text   = "0";
                                //leaderBoard = new LeaderBoard();
                                leaderBoard.Players = new List <Player>();
                            }
                            else
                            {
                                lblMedian.Text = string.Format("{0:C}", leaderBoard.Median);
                                lblMean.Text   = string.Format("{0:C}", leaderBoard.Mean);
                            }
                            playersBindingSource            = new BindingSource();
                            playersBindingSource.DataSource = leaderBoard.Players;
                            dgPlayer.DataSource             = playersBindingSource;
                            dgPlayer.Update();
                            dgPlayer.Refresh();

                            dgPlayer.Columns["Edit"].Visible   = true;
                            dgPlayer.Columns["Save"].Visible   = false;
                            dgPlayer.Columns["Cancel"].Visible = false;
                            return;
                        }
                        else
                        {
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        lblMessage.Visible = true;
                        lblMessage.Text    = ex.Message;
                    }
                }

                lblOrigWinnings.Text = colWinnings.Value.ToString();
                dgPlayer.ReadOnly    = false;
                dgPlayer.Rows[e.RowIndex].ReadOnly = false;
                colWinnings.ReadOnly = false;

                dgPlayer.Columns["Edit"].Visible   = false;
                dgPlayer.Columns["Delete"].Visible = false;
                dgPlayer.Columns["Save"].Visible   = true;
                dgPlayer.Columns["Cancel"].Visible = true;
            }
            else
            {
                return;
            }
        }