Esempio n. 1
0
        public async Task <IActionResult> StartTournament([FromBody] StartTournament startTournament)
        {
            if (startTournament.PlayerIds.Count() > 16)
            {
                return(BadRequest());
            }
            else
            {
                var    userId = accountService.GetUserId();
                string tournamentId;
                int    newTournament;

                if (startTournament.TournamentId == "")
                {
                    newTournament = await service.CreateTournamentAsync(startTournament, userId);

                    tournamentId = newTournament.ToString();
                }
                else
                {
                    tournamentId = startTournament.TournamentId;
                }
                return(Json(tournamentId));
            }
        }
Esempio n. 2
0
    public async Task StartAsync(StartTournament cmd)
    {
        var result = ResultsUtil.Eval(
            State.TournamentExists(),
            State.TournamentDidNotStart(),
            State.EightTeamsToStartTournament());

        // Randomize seed
        var seed = DateTime.Now.Millisecond;

        var task = result switch
        {
            Results.Unit => PersistPublishAsync(new TournamentStarted(cmd.TournamentId, State.Teams, seed, cmd.TraceId, cmd.InvokerUserId)),
            Results x => PublishErrorAsync(new ErrorHasOccurred((int)x, x.ToString(), cmd.TraceId, cmd.InvokerUserId))
        };

        await task;
    }