Ejemplo n.º 1
0
 public TournamentsController(CvarcDbContext context,
                              TournamentGenerator tournamentGenerator,
                              GamesRepository gamesRepository)
 {
     this.context             = context;
     this.tournamentGenerator = tournamentGenerator;
     this.gamesRepository     = gamesRepository;
 }
Ejemplo n.º 2
0
        private static void StartNextRound(PutScoresInput scores, DataStore dataStore)
        {
            var currentRound = dataStore.GetCurrentRound(scores.tournamentId);

            if (currentRound == (int)RoundTypes.GROUP)
            {
                TournamentGenerator.CreateKnockoutStageGames(dataStore, dataStore.GetTournament(scores.tournamentId));
            }
            else
            {
                var winners = GetWinnersOfCurrentRound(scores, dataStore, currentRound);
                if (dataStore.GetCurrentRound(scores.tournamentId) != (int)RoundTypes.FINALS)
                {
                    TournamentGenerator.CreateKnockoutStageGames(dataStore, dataStore.GetTournament(scores.tournamentId), winners);
                }
            }
        }
Ejemplo n.º 3
0
        public Response GenerateTournament(int id)
        {
            Response response = new Response();

            if (id < 1)
            {
                AddErrorToResponse(response, "ID is not valid.");
                return(response);
            }

            var connectionString = _settings.TournamentDB;

            using (var dataStore = new DataStore(new SqlConnection(connectionString)))
            {
                if (dataStore.HasTournamentStarted(id))
                {
                    AddErrorToResponse(response, "Tournament has already been started!");
                    return(response);
                }

                var tournament = dataStore.GetTournament(id);
                if (DateTime.Compare(DateTime.Now, tournament.startDate) < 0) // If before start date
                {
                    AddErrorToResponse(response, "Cannot start tournament before start date!");
                    return(response);
                }

                dataStore.UpdateTournamentState(id);
                try
                {
                    TournamentGenerator startTournament = new TournamentGenerator();
                    startTournament.Create(dataStore, id);

                    dataStore.Commit();
                }
                catch (Exception e)
                {
                    AddErrorToResponse(response, e.Message);
                }
                return(response);
            }
        }