コード例 #1
0
        public async Task <ResponseApi> Handle(CreateChampionshipCommand request, CancellationToken cancellationToken)
        {
            _logger.LogInformation($"Create Championship : { JsonSerializer.Serialize(request)}");
            try
            {
                var validate = request.Validate(_championshipRepository, _teamRepository);
                if (!validate.IsValid)
                {
                    _logger.LogInformation($"ERROR - Create Championship : { JsonSerializer.Serialize(validate.Errors.Select(x => new { Campo = x.PropertyName, Erro = x.ErrorMessage }).ToList())}");
                    return(new ResponseApi(false, "Erro ao inserir o campeonato", validate.Errors.Select(x => new { Campo = x.PropertyName, Erro = x.ErrorMessage }).ToList()));
                }

                Championship championship = new Championship(request.ChampionshipName);
                championship.AddTeams(request.GetTeams());
                await _championshipRepository.Create(championship);

                var response = new { Id = championship.Id, ChampionshipName = championship.ChampionshipName, TeamIds = request.TeamsIds, isActive = championship.IsActive };
                _logger.LogInformation($"SUCCESS - Create Championship : { JsonSerializer.Serialize(response)}");

                return(new ResponseApi(true, "Campeonato Inserido com Sucesso",
                                       response));
            }
            catch (Exception e)
            {
                _logger.LogInformation($"ERROR - Create Championship : { JsonSerializer.Serialize(e)}");
                return(new ResponseApi(false, "Erro ao inserir o campeonato", e.InnerException.ToString()));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Post([FromBody] CreateChampionshipCommand createChampionshipCommand)
        {
            var response = await _mediator.Send(createChampionshipCommand);

            return(Ok(response));
        }