private void buttonAdd_Click(object sender, EventArgs e)
        {
            PlayerForm playerForm = new PlayerForm();

            List <Team> teams = db.Teams.ToList();

            playerForm.listBoxPastTeams.DataSource    = teams;
            playerForm.listBoxPastTeams.ValueMember   = "Id";
            playerForm.listBoxPastTeams.DisplayMember = "Name";

            DialogResult result = playerForm.ShowDialog(this);

            if (result == DialogResult.Cancel)
            {
                return;
            }

            Player player = new Player();

            player.Age  = (int)playerForm.numericUpDownAge.Value;
            player.Name = playerForm.textBoxName.Text.ToString();

            teams.Clear();
            foreach (var item in playerForm.listBoxPastTeams.SelectedItems)
            {
                teams.Add((Team)item);
            }

            player.Teams = teams;
            db.Players.Add(player);
            db.SaveChanges();

            MessageBox.Show("New player was created");
        }
        private void buttonUpdate_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count < 1)
            {
                return;
            }

            int  index     = dataGridView1.SelectedRows[0].Index;
            int  id        = 0;
            bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);

            if (converted == false)
            {
                return;
            }

            Player player = db.Players.Find(id);

            PlayerForm playerForm = new PlayerForm();

            playerForm.textBoxName.Text       = player.Name;
            playerForm.numericUpDownAge.Value = player.Age;

            List <Team> teams = db.Teams.ToList();

            playerForm.listBoxPastTeams.DataSource    = teams;
            playerForm.listBoxPastTeams.ValueMember   = "Id";
            playerForm.listBoxPastTeams.DisplayMember = "Name";
            foreach (Team t in player.Teams)
            {
                playerForm.listBoxPastTeams.SelectedItem = t;
            }

            DialogResult result = playerForm.ShowDialog(this);

            if (result == DialogResult.Cancel)
            {
                return;
            }

            player.Age  = (int)playerForm.numericUpDownAge.Value;
            player.Name = playerForm.textBoxName.Text.ToString();

            foreach (var team in teams)
            {
                if (playerForm.listBoxPastTeams.SelectedItems.Contains(team))
                {
                    if (!player.Teams.Contains(team))
                    {
                        player.Teams.Add(team);
                    }
                }
                else
                {
                    if (!player.Teams.Contains(team))
                    {
                        player.Teams.Remove(team);
                    }
                }
            }

            db.Entry(player).State = EntityState.Modified;
            db.SaveChanges();

            MessageBox.Show("Player was updated");
        }