Exemplo n.º 1
0
        public Mensaje ActualizarDisgregacionValorDeclarado(string jsonListaVista, int IdValorDeclarado,
                                                            string jsonListaEliminados, string jsonListaArchivos,
                                                            string jsonListaArchivosEliminados)
        {
            Mensaje mensaje = new Mensaje();

            try
            {
                using (DbContextTransaction Transaccion = context.Database.BeginTransaction())
                {
                    try
                    {
                        JavaScriptSerializer serializer = new JavaScriptSerializer();

                        dynamic jsonObject = serializer.Deserialize <dynamic>(jsonListaVista);
                        foreach (var registroList in jsonObject)
                        {
                            int IdValorDeclaradoDetalleDisgregado = registroList["IdValorDeclaradoDetalleDisgregado"];
                            if (IdValorDeclaradoDetalleDisgregado <= 0)
                            {
                                int     IdValorDeclaradoDetalle = int.Parse(registroList["IdValorDeclaradoDetalle"]);
                                short   IdRamoPoliza            = short.Parse(registroList["IdRamoPoliza"]);
                                short   IdTipoPoliza            = short.Parse(registroList["IdTipoPoliza"]);
                                decimal?ImporteValorDeclarado   = registroList["ImporteValorDeclarado"] != null?Decimal.Parse(registroList["ImporteValorDeclarado"]) : null;

                                short?IdUnidadMedida = registroList["IdUnidadMedida"] != null?short.Parse(registroList["IdUnidadMedida"]) : null;

                                decimal?Cantidad = registroList["Cantidad"] != null?Decimal.Parse(registroList["Cantidad"]) : null;

                                short IdMoneda = short.Parse(registroList["IdMoneda"]);

                                context.SP_I_ValorDeclaradoDetalleDisgregado(
                                    IdValorDeclaradoDetalle,
                                    IdRamoPoliza,
                                    IdTipoPoliza,
                                    IdUnidadMedida,
                                    Cantidad,
                                    IdMoneda,
                                    ImporteValorDeclarado
                                    );
                            }
                        }

                        dynamic jsonObjectEliminar = serializer.Deserialize <dynamic>(jsonListaEliminados);
                        foreach (var registroList in jsonObjectEliminar)
                        {
                            context.SP_D_ValorDeclaradoDetalleDisgregado(registroList["IdValorDeclaradoDetalleDisgregado"]);
                        }

                        ActualizacionArchivosValorDeclarado(IdValorDeclarado, jsonListaArchivos, jsonListaArchivosEliminados);
                        //--> Confirma los cambios y los almacena en mi ef y no lo envia al servidor-->
                        context.SaveChanges();
                        //--> confirma los cambios y lo envia al servidor
                        Transaccion.Commit();
                        mensaje.esError = false;
                    }
                    catch (Exception ex)
                    {
                        Transaccion.Rollback();
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                mensaje.mensaje = ex.Message;
                mensaje.esError = true;
            }
            return(mensaje);
        }