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())); } }
public async Task <IActionResult> Post([FromBody] CreateChampionshipCommand createChampionshipCommand) { var response = await _mediator.Send(createChampionshipCommand); return(Ok(response)); }