private Dictionary <SeasonDivisionsModel, TeamModel[]> doTeamStuff(SeasonDivisionsModel sdm, DivisionModel d) { d.DivisionTeams = GlobalConfig.Connection.GetDivisionTeams(sdm); // TODO work out where teams is best places division or sdm sdm.teams = d.DivisionTeams; int arraySize = d.DivisionTeams.Count; teamsArray = new TeamModel[arraySize]; if ((arraySize % 2) == 1) { TeamModel bye = GlobalConfig.Connection.GetBye(); teamsArray = new TeamModel[arraySize + 1]; teamsArray[arraySize] = bye; } int i = 0; foreach (TeamModel team in d.DivisionTeams) { team.TeamMembers = GlobalConfig.Connection.GetSeasonDivisionTeamMembers(seasonID, d.DivisionID, team.TeamID); teamsArray[i] = team; i++; } // add skipped dates to divisionModel List <SkippedDatesModel> skDates = GlobalConfig.Connection.GetSkippedDates(sdm); foreach (SkippedDatesModel sk in skDates) { d.DivisionSkippedDates.Add(sk.DateToSkip); } sdm.skippedDates = skDates; divTeams.Add(sdm, teamsArray); return(divTeams); }
private void createDivisionButton_Click(object sender, EventArgs e) { { // make sure form is valid // == "" checks incase data was valid but was deleted before pressing create if ((nameValid == true) && (DivisionNameTextbox.Text != "") && (numberValid == true) && (DivisionNumberTextbox.Text != "") && (startDateValid == true)) { // create a division model DivisionModel model = createDivision(); sdm = createSeasonDivisionsModel(model); createSkippedDates(sdm); //GlobalConfig.Connection.createSeasonDivisions(sdm); callingForm.DivisionComplete(model); updateData(); MessageBox.Show("Division Successfully Created"); if (method == "createNewDivisionLinkLabel_LinkClicked") { this.Close(); //MessageBox.Show("From Create Division Form"); } //clearForm(); } else { formFilledIn(); } } }
/// <summary> /// When dates have been successfully added to Division "frame" /// </summary> /// <param name="model"></param>t public void DatesComplete(SeasonDivisionsModel model) { sdm.StartDate = model.StartDate; wireUpDivisionListBox(); wireUpTeamsDivisionComboBox(); WireUpDivisionComboBox(); }
/// <summary> /// What happens when user makes a Division selection /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DivisionNameComboBox_SelectedValueChanged(object sender, EventArgs e) { //clears team listbox teamsListBox.DataSource = null; // i.e. if a Division has been selected if (formReady() == true) { // Get/Create Division Model that has been selected dm = (DivisionModel)DivisionNameComboBox.SelectedItem; sdm = GlobalConfig.Connection.GetSeasonDivisionModel(dm); //Display Division details DisplayDivisionNumber(dm); sdm.skippedDates = getSkippedDates(sdm); updateSkippedDatesBox(); DisplayDivisionStartDate(sdm); originalDivName = dm.DivisionName; divNames.Clear(); getDivNames(divs); originalDivNumber = dm.DivisionNumber; divNumbers.Clear(); getDivNumbers(divs); selectedTeams = getDivisionTeams(sdm); teamsAvailable = getAvailableTeams(sdm); WireupTeamLists(teamsAvailable, selectedTeams); UpdateDivName(DivisionNameComboBox); UpdateDivNumber(DivNumberLabel); } else { resetForm(); } }
// TODO : make it so available teams only includes those not assigned to a division /// <summary> /// removes teams already assigned to divison from /// list of all teams /// </summary> /// <param name="dm"></param> private List <TeamModel> getAvailableTeams(SeasonDivisionsModel sdm) { // Get ALL teams teamsAvailable = GlobalConfig.Connection.GetAllTeams(); //// Add Selected Teams to a temp list. //// WHY???? no idea but cant make it work without doing this. //// I thought foreach in selected remove from available would work but nope //foreach (TeamModel team in selectedTeams) //{ // int id = team.TeamID; // foreach(TeamModel aTeam in teamsAvailable) // { // if(id == aTeam.TeamID) // { // tempTeamsList.Add(aTeam); // } // } //} //// if teamsAvailable list has any of the teams in the temp list remove them from //// teamsAvailable list //foreach (TeamModel temp in tempTeamsList) //{ // teamsAvailable.Remove(temp); //} //11:42pm 11/1/18 learning Linq is a must saved a lot of thinking and coding teamsAvailable.RemoveAll(x => selectedTeams.Any(y => y.TeamID == x.TeamID)); return(teamsAvailable); }
/// <summary> /// Wires up Teams List Box to display selected teams names /// </summary> private void wireupTeamsListBox() { dm = (DivisionModel)teamsDivisionComboBox.SelectedItem; sdm = GlobalConfig.Connection.GetSeasonDivisionModel(dm); teamsListBox.DataSource = null; teamsListBox.DataSource = GlobalConfig.Connection.GetDivisionTeams(sdm); teamsListBox.DisplayMember = "TeamName"; }
private Dictionary <DivisionModel, List <RoundModel> > doRoundStuff(SeasonDivisionsModel sdm, DivisionModel d) { List <RoundModel> rounds = new List <RoundModel>(); DateTime startDate; int RoundNumber = 1; DateTime roundDate; // Start Date of Division startDate = sdm.StartDate; // New Round Model for each Round in Division RoundModel rm = new RoundModel(); // Division ID for round Model rm.SeasonDivisionsID = sdm.SeasonDivisionsID; // intial date of current date providing date is not a skipped date roundDate = startDate; int roundLength; // If divisionTeamsCount is Odd means a bye is added if (d.DivisionTeams.Count % 2 == 1) { roundLength = d.DivisionTeams.Count; } else // If no bye added number of rounds is one less than number of teams { roundLength = d.DivisionTeams.Count - 1; } for (int i = 0; i < roundLength; i++) { // Iterate round number rm.RoundNumber = RoundNumber++; // if RoundDate is a skipped date if (isSkippedDate(d, roundDate)) { // could be mutiple skipped dates in a row while (isSkippedDate(d, roundDate)) { roundDate = roundDate.AddDays(7); rm.RoundDate = roundDate; } } else { rm.RoundDate = roundDate; } GlobalConfig.Connection.CreateRound(rm); rounds.Add(rm); roundDate = roundDate.AddDays(7); } d.DivisionRounds = rounds; divRounds.Add(d, rounds); return(divRounds); }
public DivisionDatesForm(IDivisionDatesRequester caller, SeasonDivisionsModel sd, DivisionModel dm) { callingForm = caller; InitializeComponent(); sdm = sd; division = dm; seasonID = sdm.SeasonID; WireUpLabels(); }
private SeasonDivisionsModel createSeasonDivisionsModel(DivisionModel model) { SeasonDivisionsModel sdm = new SeasonDivisionsModel(); sdm.SeasonID = model.SeasonID; sdm.DivisionID = model.DivisionID; sdm.StartDate = model.StartDate; return(GlobalConfig.Connection.createSeasonDivisions(sdm)); }
public void AddStartDate(SeasonDivisionsModel sdm) { using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("InSeasonDivisionsID", sdm.SeasonDivisionsID); p.Add("@InStartDate", sdm.StartDate); connection.Execute("spAddStartDate", p, commandType: CommandType.StoredProcedure); } }
/// <summary> /// Gets skipped date for division from the DB /// Converts skipped date field into List of DateTime /// populates the skipped dates list box /// which can be manipulated /// </summary> private List <SkippedDatesModel> getSkippedDates(SeasonDivisionsModel sdm) { List <SkippedDatesModel> sd = GlobalConfig.Connection.GetSkippedDates(sdm); skippedDates = new List <DateTime>(); foreach (SkippedDatesModel skm in sd) { skippedDates.Add(skm.DateToSkip); OriginalskippedDates.Add(skm.DateToSkip); } return(sd); }
public List <TeamModel> GetTeamsNotInSeason(SeasonDivisionsModel model) { List <TeamModel> output; using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@InSeasonDivisionsID", model.SeasonDivisionsID); output = connection.Query <TeamModel>("spGetTeamsNotInThisSeason", p, commandType: CommandType.StoredProcedure).ToList(); } return(output); }
private void doDivisionStuff() { divs = GlobalConfig.Connection.GetSeasonDivisions(seasonID); foreach (DivisionModel d in divs) { SeasonDivisionsModel sdm = GlobalConfig.Connection.GetSeasonDivisionModel(d); // Do team Stuff divTeams = doTeamStuff(sdm, d); divRounds = doRoundStuff(sdm, d); divGames = GenerateGames(sdm, d, teamsArray); } }
public List <PersonModel> GetSeasonPlayers(SeasonDivisionsModel sdm) { List <PersonModel> output; using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@InSeasonID", sdm.SeasonID); output = connection.Query <PersonModel>("spGetSeasonPlayers", p, commandType: CommandType.StoredProcedure).ToList(); //} } return(output); }
/// <summary> /// Create SkippedDates Model and Update DB et.al /// </summary> /// <param name="model"></param> private void createSkippedDates(SeasonDivisionsModel model) { List <SkippedDatesModel> skModels = new List <SkippedDatesModel>(); foreach (DateTime date in skippedDates) { SkippedDatesModel skDates = new SkippedDatesModel(model.SeasonDivisionsID, date); //skDates.SeasonDivisionsID = model.SeasonDivisionsID; //skDates.DateToSkip = date; GlobalConfig.Connection.CreateSkippedDates(skDates); skModels.Add(skDates); } sdm.skippedDates = skModels; skippedDates = new List <DateTime>(); }
public CreateTeamForm(ITeamRequester caller) { InitializeComponent(); callingForm = caller; //createSampleData(); HeadingLabel.Text = callingForm.DivisionName(); sdm = callingForm.SeasonDivision(); StackFrame frame = new StackFrame(1, true); method = (frame.GetMethod().Name); // wireUpPlayerDropDown(); WireupVenueDropDown(); getTeamNames(teams); }
private Dictionary <DivisionModel, List <GameModel> > GenerateGames (SeasonDivisionsModel sdm, DivisionModel d, TeamModel[] teams) { divGames = new Dictionary <DivisionModel, List <GameModel> >(); // Create a List to hold games in the division List <GameModel> roundGames = new List <GameModel>(); // New Game Model for each game GameModel game = new GameModel(); int numberOfTeams = teams.Length; // int numberofGamesPerRound = numberOfTeams / 2; // round robin number of rounds is one less than the number of teams int numberOfRounds = numberOfTeams - 1; RoundModel rm = new RoundModel(); Console.WriteLine($"{d.DivisionName}"); for (int i = 0; i < numberOfRounds; i++) { Console.WriteLine($"Round Number {i + 1}"); // g + 1 else get a blank team team rounds start at 1 rm = GlobalConfig.Connection.getRoundModel(sdm, i + 1); for (int g = 0; g < numberofGamesPerRound; g++) { game.RoundID = rm.RoundID; game.GameDate = rm.RoundDate; //Console.WriteLine($"Round {a + 1}"); Console.WriteLine($"{teams[g].TeamName} PLAYS {teams[numberOfTeams - 1 - g].TeamName} "); game.HomeTeamModel = teams[g]; game.HomeTeamPlayers = teams[g].TeamMembers; game.AwayTeamModel = teams[numberOfTeams - 1 - g]; game.AwayTeamPlayers = teams[numberOfTeams - 1 - g].TeamMembers; roundGames.Add(game); GlobalConfig.Connection.CreateGame(game); } RotateTeams(teams); } divGames.Add(d, roundGames); return(divGames); }
public RoundModel getRoundModel(SeasonDivisionsModel sdm, int g) { List <RoundModel> output; RoundModel model = new RoundModel(); using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@InSeasonDivisionsID", sdm.SeasonDivisionsID); p.Add("@InRoundNumber", g); output = connection.Query <RoundModel>("spGetRoundModel", p, commandType: CommandType.StoredProcedure).ToList(); } foreach (RoundModel r in output) { model = r; } return(model); }
public List <DivisionTeamsModel> GetSeasonTeams(SeasonDivisionsModel sdm) { List <DivisionTeamsModel> output; using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@InSeasonID", sdm.SeasonID); output = connection.Query <DivisionTeamsModel>("spGetSeasonTeams", p, commandType: CommandType.StoredProcedure).ToList(); //foreach (TeamModel team in output) //{ // p = new DynamicParameters(); // p.Add("@TeamID", team.TeamID); // team.TeamMembers = connection.Query<PersonModel>("spGetRoster", p, commandType: CommandType.StoredProcedure).ToList(); //} } return(output); }
public SeasonDivisionsModel createSeasonDivisions(SeasonDivisionsModel model) { using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@SeasonDivisionsID", 0, dbType: DbType.Int32, direction: ParameterDirection.Output); p.Add("@SeasonID", model.SeasonID); p.Add("@DivisionID", model.DivisionID); p.Add("@StartDate", model.StartDate.Date); connection.Execute("spSeasonDivisions", p, commandType: CommandType.StoredProcedure); // grabs newly created ID from database and returns it as part of the current Model // https://stackoverflow.com/questions/13151861/fetch-last-inserted-id-form-stored-procedure-in-mysql var id = p.Get <int?>("SeasonDivisionsID"); model.SeasonDivisionsID = Convert.ToInt32(id); return(model); } }
public SeasonDivisionsModel GetSeasonDivisionModel(DivisionModel model) { List <SeasonDivisionsModel> output; using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(db))) { var p = new DynamicParameters(); p.Add("@InDivisionID", model.DivisionID); p.Add("@InSeasonID", model.SeasonID); output = connection.Query <SeasonDivisionsModel>("spGetSeasonDivisionsModel", p, commandType: CommandType.StoredProcedure).ToList(); } SeasonDivisionsModel sm = new SeasonDivisionsModel(); foreach (SeasonDivisionsModel x in output) { sm.SeasonDivisionsID = x.SeasonDivisionsID; sm.SeasonID = model.SeasonID; sm.DivisionID = model.DivisionID; sm.StartDate = x.StartDate; } return(sm); }
public List <TeamModel> GetTeamsNotInSeason(SeasonDivisionsModel model) { throw new NotImplementedException(); }
public SeasonDivisionsModel createSeasonDivisions(SeasonDivisionsModel model) { throw new NotImplementedException(); }
public List <SkippedDatesModel> GetSkippedDates(SeasonDivisionsModel model) { throw new NotImplementedException(); }
public List <DivisionTeamsModel> GetSeasonTeams(SeasonDivisionsModel sdm) { throw new NotImplementedException(); }
public void AddStartDate(SeasonDivisionsModel sdm) { throw new NotImplementedException(); }
public List <PersonModel> GetPlayersNotInThisSeason(SeasonDivisionsModel sdm) { throw new NotImplementedException(); }
public void DivisionComplete(SeasonDivisionsModel model) { throw new NotImplementedException(); }
public RoundModel getRoundModel(SeasonDivisionsModel sdm, int g) { throw new NotImplementedException(); }
/// <summary> /// Gets Division Teams from datasource /// </summary> /// <param name="dm"></param> private List <TeamModel> getDivisionTeams(SeasonDivisionsModel sdm) { selectedTeams = GlobalConfig.Connection.GetDivisionTeams(sdm); return(selectedTeams); }