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
                });
            }
        }