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)); } }
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; }