using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TrackerLibrary; using TrackerLibrary.Models; namespace TrackerUI { public partial class CreateTournamentForm : Form, IPrizeRequester, ITeamRequester { List availableTeams = GlobalConfig.Connection.GetTeam_All(); List selectedTeams = new List(); List selectedPrizes = new List(); public CreateTournamentForm() { InitializeComponent(); WireUpLists(); } private void WireUpLists() { selectTeamDropDown.DataSource = null; selectTeamDropDown.DataSource = availableTeams; selectTeamDropDown.DisplayMember = "TeamName"; tournamentTeamsListBox.DataSource = null; tournamentTeamsListBox.DataSource = selectedTeams; tournamentTeamsListBox.DisplayMember = "TeamName"; prizesListBox.DataSource = null; prizesListBox.DataSource = selectedPrizes; prizesListBox.DisplayMember = "PlaceName"; } private void addTeamButton_Click(object sender, EventArgs e) { TeamModel t = (TeamModel)selectTeamDropDown.SelectedItem; if (t != null) { availableTeams.Remove(t); selectedTeams.Add(t); WireUpLists(); } } private void cratePrizeButton_Click(object sender, EventArgs e) { // Call the CreatePrizeForm CreatePrizeForm frm = new CreatePrizeForm(this); frm.Show(); } public void PrizeComplete(PrizeModel model) { // Get back from the form a PrizeModel // Take the PrizeModel and put it into our list of selected prizes selectedPrizes.Add(model); WireUpLists(); } public void TeamComplete(TeamModel model) { selectedTeams.Add(model); WireUpLists(); } private void createNewTeamLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { CreateTeamForm frm = new CreateTeamForm(this); frm.Show(); } private void removeSelectedPlayerButton_Click(object sender, EventArgs e) { TeamModel t = (TeamModel)tournamentTeamsListBox.SelectedItem; if (t != null) { selectedTeams.Remove(t); availableTeams.Add(t); WireUpLists(); } } private void removeSelectedPrizeButton_Click(object sender, EventArgs e) { PrizeModel p = (PrizeModel)prizesListBox.SelectedItem; if (p != null) { selectedPrizes.Remove(p); WireUpLists(); } } private void createTournamentButton_Click(object sender, EventArgs e) { //Validate data decimal fee = 0; bool feeAcceptable = decimal.TryParse(entryFeeValue.Text, out fee); if (!feeAcceptable) { MessageBox.Show("You need to enter a valid Entry Fee.", "Invalid Fee", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Create our tournament model TournamentModel tm = new TournamentModel(); tm.TournamentName = tournamentNameValue.Text; tm.EntryFee = fee; tm.Prizes = selectedPrizes; tm.EnteredTeams = selectedTeams; // TODO Wireup our matchups TournamentLogic.CreateRounds(tm); // Finally create the tournament entry // Create all of the prizes entries // Create all of team entries GlobalConfig.Connection.CreateTournament(tm); tm.AlertUsersToNewRound(); TournamentViewerForm frm = new TournamentViewerForm(tm); frm.Show(); this.Close(); } } }