Exemplo n.º 1
0
        public async Task <List <ImpostodeRenda> > CalcularImpostodeRenda()
        {
            try
            {
                //Remove todos os itens da tabela Imposto de Renda.
                await ExcluirImpostodeRenda();

                var impostodeRenda = new ImpostodeRenda();
                List <ImpostodeRenda> listaImpostodeRenda = new List <ImpostodeRenda>();

                var    salarioMinimo      = _salarioMinimoService.ListarSalarioMinimoAsync();
                int    salarioMinimoId    = salarioMinimo.Result.Select(sl => sl.Id).FirstOrDefault();
                double salarioMinimoValor = salarioMinimo.Result.Select(sl => sl.Valor).Sum();

                var listaContribuinte = _contribuinteService.ListarContribuinteAsync();

                if (listaContribuinte.Result.Count > 0)
                {
                    for (int i = 0; i < listaContribuinte.Result.Count; i++)
                    {
                        //Inicia o cálculo do Imposto de renda do contribuinte.
                        impostodeRenda = new ImpostodeRenda {
                            ContribuinteId = listaContribuinte.Result[i].Id, SalarioMinimoId = salarioMinimoId, Valor = CalcularAliquota(listaContribuinte.Result[i], salarioMinimoValor)
                        };
                        await IncluirImpostodeRendaAsync(impostodeRenda);
                    }

                    listaImpostodeRenda = await ListarImpostodeRendaAsync();

                    return(listaImpostodeRenda);
                }

                return(listaImpostodeRenda);
            }
            catch (ApplicationException e)
            {
                throw new ApplicationException(e.Message);
            }
        }
Exemplo n.º 2
0
 public async Task IncluirImpostodeRendaAsync(ImpostodeRenda obj)
 {
     _context.Add(obj);
     await _context.SaveChangesAsync();
 }