private DadosAtrasoRetorno Calcular(DadosAtraso dados) { return(new DadosAtrasoRetorno { Juros = ((dados.DiasAtraso * dados.Juros / 100M) * dados.Valor).Rnd2(), Multa = (dados.Valor * (dados.Multa / 100M)).Rnd2(), Valor = dados.Valor }); }
public ContasListagem AdicionarContas(ContasInclusao conta) { var dados = new DadosAtraso(); var calculo = new DadosAtrasoRetorno(); var retorno = ContasListagemMap(conta); if (retorno.DiasAtraso > 0) { dados = new DadosAtraso { DiasAtraso = retorno.DiasAtraso, Valor = conta.ValorOriginal }; switch (dados.DiasAtraso) { case int n when(n > 0 && n <= 3): dados.Juros = 0.1M; dados.Multa = 2M; break; case int n when(n > 3 && n < 5): dados.Juros = 0.2M; dados.Multa = 3M; break; case int n when(n > 5): dados.Juros = 0.3M; dados.Multa = 5M; break; default: break; } calculo = this.Calcular(dados); retorno.ValorCorrigido = calculo.ValorCorrigido; } else { dados.Valor = conta.ValorOriginal; retorno.ValorCorrigido = conta.ValorOriginal; } var contaModel = ContasMap(retorno); contaModel.DataVencimento = DateTime.Parse(conta.Vencimento); contaModel.PercJuros = dados.Juros; contaModel.PercMulta = dados.Multa; contaModel.ValorJuros = calculo.Juros; contaModel.ValorMulta = calculo.Multa; _context.Contas.Add(contaModel); _context.SaveChanges(); return(retorno); }