public void ImpactarPagos(Siniestro siniestro, Pago pago) { using (var repositorio = new DISEntities()) { var existente = repositorio.Siniestros.FirstOrDefault(s => s.CUSPP == siniestro.CUSPP); if (!ExistePago(existente.SiniestroId, pago.ArchivoId)) { pago.SiniestroId = existente.SiniestroId; existente.Pagos.Add(pago); repositorio.SaveChanges(); } else { var masPago = repositorio.Pagos.Where( x => x.ArchivoId == pago.ArchivoId && x.SiniestroId == existente.SiniestroId).ToList(); var sumaMintoTatal = masPago.Sum(x => x.Monto) + pago.Monto; var sumaMintoVc = masPago.Sum(x => x.PagoVC) + pago.PagoVC; existente.Pagos.FirstOrDefault().Monto = sumaMintoTatal; existente.Pagos.FirstOrDefault().PagoVC = sumaMintoVc; repositorio.SaveChanges(); } } }
public void ImpactarNegocio(Siniestro siniestro, Pago pago) { using (var repositorio = new DISEntities()) { if (Existe(siniestro)) { ImpactarPagos(siniestro, pago); return; } else { siniestro.TipoSolicitudId = 1; repositorio.Siniestros.Add(siniestro); repositorio.SaveChanges(); ImpactarPagos(siniestro, pago); return; } } }