Esempio n. 1
0
        public async Task AdicionarDescontoPlano(Guid planoId, PlanoDesconto planoDesconto)
        {
            if (!planoDesconto.EhValido())
            {
                Notificar("A Quantidade de meses tem que ser maior que 0");
                return;
            }

            var planoValores = await _planoRepository.ObterValoresAtivosPlano(planoId);

            if (!ValidarValoresPlano(planoValores))
            {
                return;
            }

            var valorPlano = planoValores.FirstOrDefault();

            var descontosAtivos = await _planoRepository
                                  .ObterDescontoAtivos(valorPlano.Id);

            foreach (var desconto in descontosAtivos)
            {
                desconto.DesativarDesconto();
            }

            planoDesconto.AdicionarValor(valorPlano);

            await _planoRepository.AdicionarDesconto(planoDesconto);

            await _planoRepository.Commit();
        }