public async Task <CampeonatoModel> Insert(CampeonatoModel model) { if (string.IsNullOrEmpty(model.Id)) { model.Id = Guid.NewGuid().ToString(); } else { var campeonato = _campeonatoRepository.GetById(model.Id); if (campeonato.Result != null && campeonato.Result.Id.Equals(model.Id)) { throw new BusinessRuleViolatedException($"Já existe um campeonato com o Id informado."); } } var validacao = new CampeonatoValidation().Validate(model); string mensagemErro = string.Empty; string separador = string.Empty; if (!validacao.IsValid) { foreach (var erro in validacao.Errors) { mensagemErro += $"{separador}{erro.ErrorCode} - {erro.ErrorMessage}"; separador = " => "; } //validacao.Errors.Select(a => $"{a.ErrorCode} >> {a.ErrorMessage}"); throw new BusinessRuleViolatedException($"Campeonato com informações inválidas: {mensagemErro} "); } // verifica já existe campeonato var validExist = _campeonatoRepository.GetByModel(model.Name, model.Year); if (validExist.Result != null && !string.IsNullOrEmpty(validExist.Result.Id)) { ; } // insere campeonato var newCampeonato = new Campeonatos { Id = model.Id, Name = model.Name, Year = model.Year }; //newCampeonato.FinalClassification = campeonato await _campeonatoRepository.Insert(newCampeonato); return(model); }
public Campeonato ObtenerCampeonatoPorId(int id) { return(repository.GetById(id)); }