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); }
public IActionResult AddContas([FromBody][Required] ContasInclusao conta) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } else { return(StatusCode(200, contasService.AdicionarContas(conta))); } }
private ContasListagem ContasListagemMap(ContasInclusao conta) { var ret = new ContasListagem { Nome = conta.Nome, DataPagamento = DateTime.Parse(conta.Pagamento), ValorOriginal = conta.ValorOriginal, DiasAtraso = DateTime.Parse(conta.Pagamento).Subtract(DateTime.Parse(conta.Vencimento)).Days > 0 ? DateTime.Parse(conta.Pagamento).Subtract(DateTime.Parse(conta.Vencimento)).Days : 0, ValorCorrigido = 0M }; return(ret); }