Example #1
0
        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);
        }
Example #2
0
 public Campeonato ObtenerCampeonatoPorId(int id)
 {
     return(repository.GetById(id));
 }