Ejemplo n.º 1
0
 public IActionResult Post([FromBody] Pagamento pagamento)
 {
     try
     {
         _repo.Incluir(pagamento);
         return(Ok(_repo.SelecionarTudo()));
     }
     catch (System.Exception)
     {
         return(StatusCode(500));
     }
 }
        public void RegistrarPagamento(DateTime data, IEnumerable <ICompromissoPagamento> compromissosPagamento)
        {
            Pagamento pagamento = new Pagamento
            {
                DataPagamento = data,
                ValorTotal    = compromissosPagamento.Sum(comp => comp.ValorPago)
            };

            foreach (var compromisso in compromissosPagamento)
            {
                if (compromisso is Mensalidade)
                {
                    MensalidadeService.QuitarMensalidade((Mensalidade)compromisso, data);
                }
                else if (compromisso is Emprestimo)
                {
                    var emprestimo = (Emprestimo)compromisso;
                    if (emprestimo.ValorPago < emprestimo.ValorDevido)
                    {
                        EmprestimoService.RealizarPagamentoParcial(emprestimo, data);
                    }
                    else
                    {
                        EmprestimoService.QuitarEmprestimo(emprestimo, data);
                    }
                }

                pagamento.ItensPagamento.Add(new ItemPagamento
                {
                    Id   = compromisso.Id,
                    Tipo = compromisso is Mensalidade ? Enumerados.ItemPagamentoEnum.Mensalidade : Enumerados.ItemPagamentoEnum.Emprestimo
                });
            }

            repositorio.Incluir(pagamento);
            repositorio.Commit();
        }