Example #1
0
        private bool IsFreeTicket(TeamInGroup team)
        {
            if (team.Team != null)
            {
                return(team.Team.IsFreeTicket);
            }

            return(dbConnection.SingleById <Team>(team.TeamId).IsFreeTicket);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }