private bool IsFreeTicket(TeamInGroup team) { if (team.Team != null) { return(team.Team.IsFreeTicket); } return(dbConnection.SingleById <Team>(team.TeamId).IsFreeTicket); }
private List <Match> GenerateMatchesForGroup(List <TeamInGroup> teams, int finalDayCompetitionId) { if (teams == null) { return(new List <Match>()); } var orderedTeams = teams.OrderBy(x => x.Settlement).ToList(); int bracketSize = FindSmallestPossibleBracket(teams.Count); FillWithFreilos(orderedTeams, bracketSize); // TODO SSH DI?!? orderedTeams = SingleKoTeamSorter.Sort(orderedTeams); var matches = new List <Match>(); int counter = 0; while (orderedTeams.Any()) { TeamInGroup homeTeam = orderedTeams.First(); TeamInGroup guestTeam = orderedTeams.Skip(1).First(); orderedTeams.Remove(homeTeam); orderedTeams.Remove(guestTeam); var match = new Match { HomeTeamId = homeTeam.TeamId, GuestTeamId = guestTeam.TeamId, RoundOrder = counter, CupRound = 1, FinalDayCompetitionId = finalDayCompetitionId }; // TODO SSH: 0/4 müssen konfigurierbar sein // TODO SSH Code Duplication.. if (IsFreeTicket(homeTeam)) { match.HomeTeamScore = 0; match.GuestTeamScore = 4; match.ResultDate = DateTime.Now; match.RegisterDate = DateTime.Now; match.PlayDate = DateTime.Now; } if (IsFreeTicket(guestTeam)) { match.HomeTeamScore = 4; match.GuestTeamScore = 0; match.RegisterDate = DateTime.Now; match.ResultDate = DateTime.Now; match.PlayDate = DateTime.Now; } matches.Add(match); counter++; } return(matches); }
private void PutOverSpecificTeam(int teamId, int groupId) { int maxSettlementInGroup = 0; var existingTeamsInGroup = Db.Select <TeamInGroup>(x => x.GroupId == groupId); if (existingTeamsInGroup.Any()) { maxSettlementInGroup = existingTeamsInGroup.Max(x => x.Settlement); } var teamInGroup = new TeamInGroup { TeamId = teamId, GroupId = groupId, Settlement = maxSettlementInGroup + 1 }; Db.Insert(teamInGroup); }