Beispiel #1
0
 public override void Insert(Plano obj)
 {
     //verificando se a Sigla informada já foi cadastrada
     if (planoRepository.GetBySigla(obj.Sigla) != null)
     {
         throw new Exception($"A Sigla {obj.Sigla} do Plano já encontra-se cadastrada.");
     }
     else
     {
         //gravando o Plano
         planoRepository.Insert(obj);
     }
 }
        public Task <Form> Insert(Form frm)
        {
            try
            {
                _context.BeginTransaction();


                if (frm.Minutos == null)
                {
                    throw new Exception("Necessário informar o número de minutos do plano");
                }

                if (frm.FranquiaInternet == null)
                {
                    throw new Exception("Necessário informar o número da franquia de internet do plano");
                }

                if (frm.Valor == null)
                {
                    throw new Exception("Necessário informar o valor do plano");
                }

                if (frm.TipoPlanoId == null)
                {
                    throw new Exception("Necessário informar o tipo do plano que está sendo cadastrado");
                }

                if (frm.OperadoraId == null)
                {
                    throw new Exception("Necessário informar a operadora que esse plano pertence");
                }

                if (frm.DDD == null || frm.DDD.Count == 0)
                {
                    throw new Exception("Necessário informar a lista de DDD que o plano irá pertencer");
                }


                var dddValido = new List <DDD.DDD>();

                foreach (var ddd in frm.DDD)
                {
                    var item = _dDDRepository.GetByDDD(new DDD.DDD()
                    {
                        Codigo = ddd
                    });

                    if (item == null)
                    {
                        throw new Exception($"DDD {ddd} inválido. Informar um código de área válido para cadastrar um plano");
                    }

                    dddValido.Add(item);
                }

                frm.StatusRegistro = Context.Model.StatusRegister.Active;

                var plano = _planoRepository.Insert(frm);
                frm.Id = plano.Id;

                foreach (var item in dddValido)
                {
                    _planoDDDRepository.Insert(new PlanoDDD.PlanoDDD()
                    {
                        DDDId   = item.Id,
                        PlanoId = frm.Id
                    });
                }

                _context.Commit();

                return(Task.FromResult(frm));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "PlanoService - Insert");
                _context.RollBack();
                throw ex;
            }
        }