public void AddDivision(SeasonDivision division) { division.Season = this; if (division.GetTeamsThatBelongToDivision() != null) { division.GetTeamsThatBelongToDivision().ToList().ForEach(t => { if (Teams.Where(team => team.Parent.Id == t.Parent.Id).FirstOrDefault() == null) { AddTeam(t); } }); } if (Divisions.Where(d => d.Name.Equals(division.Name)).FirstOrDefault() == null) { Divisions.Add(division); division.Children.ToList().ForEach(cd => { AddDivision(cd); }); } else { //throw new SeasonException("Division was already added. " + division.Name); } }
public void AddChildDivision(SeasonDivision child) { if (Children.Where(c => c.Name.Equals(child.Name)).FirstOrDefault() == null) { Children.Add(child); child.Parent = this; } }
public SeasonDivision(string name, Season season, DivisionLevel level, SeasonDivision parent) { Name = name; Season = season; Level = level; Parent = parent; if (parent != null) { Parent.AddChildDivision(this); } }
public void AddDivisionToTeam(SeasonDivision division) { if (Divisions == null) { Divisions = new List <SeasonDivision>(); } if (!IsDivisionInList(division)) { Divisions.Add(division); } }
public void AddTeamToDivision(SeasonDivision division, SeasonTeam team) { //first if the division if (!team.IsDivisionInList(division)) { team.AddDivisionToTeam(division); } if (!division.IsTeamInList(team)) { division.AddTeam(team); } }
//this shouldn't be called without updating rankings first public Standings GetStandingsByDivision(SeasonDivision division) { //update the division rankings //create the standings //add the teams and assign ranks var standings = new Standings() { Name = division.Name }; standings.Teams = new List <StandingsTeam>(); division.Ranking.ToList().ForEach(sr => { ((StandingsTeam)sr.Team).Rank = sr.Rank; standings.Teams.Add((StandingsTeam)sr.Team); }); return(standings); }
public SeasonDivision(string name, Season season, DivisionLevel level, SeasonDivision parent, IList <SeasonDivision> children, IList <SeasonRanking> ranking) { Name = name; Season = season; Level = level; Parent = parent; if (parent != null) { Parent.AddChildDivision(this); } if (children != null) { Children = children; } if (ranking != null) { Ranking = ranking; } }
public static void UpdateDivisionRankings(SeasonDivision division) { var teams = Standings.SortTeams(division.Teams.ToList <StandingsTeam>()); if (division.Ranking == null || division.Ranking.Count == 0) { division.Ranking = new List <SeasonRanking>(); teams.ToList().ForEach(team => { division.Ranking.Add(new SeasonRanking((SeasonTeam)team, -1, division)); }); } int i = 1; teams.ToList().ForEach(team => { var rank = division.Ranking.Where(rank => rank.Team.Name.Equals(team.Name)).First(); rank.Rank = i++; //assign then increment }); }
public SeasonRanking(SeasonTeam team, int rank, SeasonDivision division) { Team = team; Rank = rank; Division = division; }
public bool IsDivisionInList(SeasonDivision division) { return(Divisions.ToList().Where(d => d.Name.Equals(division.Name)).FirstOrDefault() != null); }