public async Task <Response> EditarDeclaracionPatrimonioPersonal([FromBody] ViewModelDeclaracionPatrimonioPersonal viewModelDeclaracionPatrimonioPersonal) { try { if (!ModelState.IsValid) { return(new Response { IsSuccess = false, Message = Mensaje.ModeloInvalido }); } if ( viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .DescripcionOtros != null ) { viewModelDeclaracionPatrimonioPersonal.OtroIngresoActual .DescripcionOtros = viewModelDeclaracionPatrimonioPersonal.OtroIngresoActual .DescripcionOtros.ToString().ToUpper(); } if ( viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .Observaciones != null ) { viewModelDeclaracionPatrimonioPersonal.OtroIngresoActual .Observaciones = viewModelDeclaracionPatrimonioPersonal.OtroIngresoActual .Observaciones.ToString().ToUpper(); } var modeloActual = await db.DeclaracionPatrimonioPersonal .Where(w => w.IdDeclaracionPatrimonioPersonal == viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalActual .IdDeclaracionPatrimonioPersonal ).FirstOrDefaultAsync(); if (modeloActual == null) { return(new Response { IsSuccess = false, Message = Mensaje.RegistroNoEncontrado }); } using (var transaction = await db.Database.BeginTransactionAsync()) { modeloActual.TotalEfectivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalActual .TotalEfectivo; modeloActual.TotalPasivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalActual .TotalPasivo; modeloActual.TotalPatrimonio = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalActual .TotalPatrimonio; modeloActual.FechaDeclaracion = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalActual .FechaDeclaracion; db.DeclaracionPatrimonioPersonal.Update(modeloActual); await db.SaveChangesAsync(); if ( viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .IdDeclaracionPatrimonioPersonal > 0 ) { var modeloPasado = await db.DeclaracionPatrimonioPersonal .Where(w => w.IdDeclaracionPatrimonioPersonal == viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .IdDeclaracionPatrimonioPersonal ).FirstOrDefaultAsync(); modeloPasado.TotalEfectivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalEfectivo; modeloPasado.TotalPasivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalPasivo; modeloPasado.TotalPatrimonio = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalPatrimonio; modeloPasado.FechaDeclaracion = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .FechaDeclaracion; db.DeclaracionPatrimonioPersonal.Update(modeloPasado); await db.SaveChangesAsync(); } else { var modeloPasado = new DeclaracionPatrimonioPersonal { FechaDeclaracion = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .FechaDeclaracion, TotalEfectivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalEfectivo, TotalBienInmueble = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalBienInmueble, TotalBienMueble = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalBienMueble, TotalPasivo = viewModelDeclaracionPatrimonioPersonal .DeclaracionPatrimonioPersonalPasado .TotalPasivo, IdEmpleado = modeloActual.IdEmpleado }; await db.DeclaracionPatrimonioPersonal.AddAsync(modeloPasado); await db.AddAsync(modeloPasado); } if ( viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IdOtroIngreso > 0 ) { var modeloOtroIngreso = await db.OtroIngreso .Where(w => w.IdOtroIngreso == viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IdOtroIngreso ).FirstOrDefaultAsync(); modeloOtroIngreso.IngresoArriendos = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoArriendos; modeloOtroIngreso.IngresoConyuge = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoConyuge; modeloOtroIngreso.IngresoNegocioParticular = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoNegocioParticular; modeloOtroIngreso.IngresoRentasFinancieras = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoRentasFinancieras; modeloOtroIngreso.OtrosIngresos = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .OtrosIngresos; modeloOtroIngreso.DescripcionOtros = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .DescripcionOtros; modeloOtroIngreso.Total = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .Total; modeloOtroIngreso.Observaciones = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .Observaciones; db.OtroIngreso.Update(modeloOtroIngreso); await db.SaveChangesAsync(); } else { var modeloOtrosIngresos = new OtroIngreso { IdDeclaracionPatrimonioPersonal = modeloActual.IdDeclaracionPatrimonioPersonal, IngresoArriendos = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoArriendos, IngresoConyuge = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoConyuge, IngresoNegocioParticular = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoNegocioParticular, IngresoRentasFinancieras = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .IngresoRentasFinancieras, OtrosIngresos = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .OtrosIngresos, DescripcionOtros = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .DescripcionOtros, Total = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .Total, Observaciones = viewModelDeclaracionPatrimonioPersonal .OtroIngresoActual .Observaciones, }; await db.OtroIngreso.AddAsync(modeloOtrosIngresos); await db.SaveChangesAsync(); } transaction.Commit(); } return(new Response { IsSuccess = true, Message = Mensaje.GuardadoSatisfactorio }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = Mensaje.Excepcion }); } }