public async Task Update(int id, DeudaUpdateDto model) { var entry = await _context.Deuda.FirstAsync(x => x.IdDeuda == id); if (entry.EstadoDeuda == Enums.EstadoDeuda.Cancelada) { return; //No procesamos nada } if (model.IdTasa.HasValue) { entry.IdTasa = model.IdTasa.Value; } if (model.IdCliente.HasValue) { entry.IdCliente = model.IdCliente.Value; } if (model.Pagos.Count > 0)//Validamos siempre que no estemos recibiendo un arreglo vacio { //No podemos eliminar pagos, simplemente agregamos los nuevos pagos o modificamos los existentes: foreach (var item in model.Pagos) { await _context.Pago.AddAsync(new Pago { IdDeuda = entry.IdDeuda, MontoPago = item.MontoPago, Fecha = Convert.ToDateTime(item.Fecha) }); entry.MontoAcumulado -= item.MontoPago; if (entry.MontoAcumulado <= 0) { entry.EstadoDeuda = Enums.EstadoDeuda.Cancelada; } } } await _context.SaveChangesAsync(); }
public async Task <ActionResult> Update(int id, DeudaUpdateDto model) { await _service.Update(id, model); return(Ok()); }