public Task <Form> Update(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 plano = _planoRepository.Get(frm);

                if (plano == null)
                {
                    throw new Exception("Plano não encontrado, verifique o plano que está tentando atualizar");
                }

                plano.Minutos          = frm.Minutos;
                plano.FranquiaInternet = frm.FranquiaInternet;
                plano.Valor            = frm.Valor;
                plano.TipoPlanoId      = frm.TipoPlanoId;
                plano.OperadoraId      = frm.OperadoraId;

                var planosDDD = _planoDDDRepository.ListByPlano(new PlanoDDD.PlanoDDD()
                {
                    PlanoId = plano.Id
                }).ToList();

                foreach (var item in planosDDD)
                {
                    _planoDDDRepository.Delete(item);
                }

                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);
                }

                _planoRepository.Update(plano);

                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 - Update");
                _context.RollBack();
                throw ex;
            }
        }
Beispiel #2
0
 public List <Plano> GetPlanos()
 => _planoRepository.Get();
        public IEnumerable <Plano> GetAll()
        {
            IEnumerable <Plano> planos = _planoRepository.Get();

            return(planos);
        }