コード例 #1
0
        public async Task <IActionResult> CreateTournament([FromForm] TournamentManagementViewModel tournament)
        {
            if (!ModelState.IsValid)
            {
                tournament.Result = new BaseResponseWrapper
                {
                    StatusCode = Models.Responses.StatusCode.BadRequest,
                    Message    = "The tournament team data sent is not valid"
                };
                TempData.Set("ViewModel", tournament);

                return(RedirectToAction(nameof(CreateTournament)));
            }

            try
            {
                await fantasySoccerService.AddTournamentAsync(new Tournament
                {
                    Name      = tournament.Name,
                    StartDate = tournament.StartDate,
                    EndDate   = tournament.EndDate
                });

                tournament.Result = new BaseResponseWrapper
                {
                    StatusCode = Models.Responses.StatusCode.OK,
                    Message    = "The tournament team has been created successfully"
                };
                TempData.Set("Result", tournament.Result);

                return(RedirectToAction(nameof(TournamentManagement)));
            }
            catch (Exception exception)
            {
                var statusCode = exception is TournamentStartDateMustBeOlderThanEndDateException ? Models.Responses.StatusCode.BadRequest : Models.Responses.StatusCode.InternalServerError;
                tournament.Result = new BaseResponseWrapper
                {
                    StatusCode = statusCode,
                    Message    = exception.Message
                };
                TempData.Set("ViewModel", tournament);

                return(RedirectToAction(nameof(CreateTournament)));
            }
        }