/// <summary>
        ///
        /// </summary>
        /// <param name="objeto"></param>
        /// <param name="accion"></param>
        /// <param name="pantalla"></param>
        public void insertaNuevoOEliminado(object objeto, string accion, string pantalla, string ip)
        {
            StringBuilder valores = new StringBuilder();
            string        campos  = string.Empty;
            string        usuario = string.Empty;
            HttpContext   context = HttpContext.Current;

            if (context.Session["userName"] != null)
            {
                usuario = context.Session["userName"].ToString();
            }

            PropertyInfo[] listaProperties = objeto.GetType().GetProperties();

            foreach (PropertyInfo item in listaProperties)
            {
                if (campos == string.Empty)
                {
                    campos = item.Name;
                    valores.Append((item.GetValue(objeto) != null ? item.GetValue(objeto).ToString() : string.Empty));
                }
                else
                {
                    campos += string.Concat("|", item.Name);
                    valores.Append(string.Concat("|", (item.GetValue(objeto) != null ? item.GetValue(objeto).ToString() : string.Empty)));
                }
            }

            try
            {
                using (ICPruebaEntities db = new ICPruebaEntities())
                {
                    LogActualizaciones reg = new LogActualizaciones();
                    reg.NombrePantalla    = pantalla;
                    reg.ColumnaModificada = campos;
                    reg.Valor_Nuevo       = valores.ToString();
                    reg.Valor_Anterior    = string.Empty;
                    reg.Fecha             = DateTime.Now;
                    reg.Direccion_IP      = ip;
                    reg.Accion            = accion;
                    reg.Activo            = 1;
                    reg.Usuario           = usuario;
                    db.LogActualizaciones.Add(reg);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Inserta en bitacora la modificacion que se ha realizado
        /// </summary>
        /// <param name="objeto">Objeto entity que se modifica</param>
        /// <param name="campoID">Campo id de la tabla que se modifica</param>
        /// <param name="id">Id del registro que se modifica</param>
        /// <param name="pantalla">Pantalla que se modifica</param>
        public void insertaBitacoraModificacion(object objeto, string campoID, int id, string pantalla, string ip)
        {
            Type   tipe  = objeto.GetType();
            string campo = string.Empty;
            string valor = string.Empty;

            PropertyInfo[] listaProperties   = objeto.GetType().GetProperties();
            string         valorActual       = string.Empty;
            bool           existeCambio      = false;
            StringBuilder  valorModificado   = new StringBuilder();
            StringBuilder  valorAnterior     = new StringBuilder();
            string         camposModificados = string.Empty;
            string         nombreTabla       = (tipe.BaseType.Name == "Object" ? tipe.Name : tipe.BaseType.Name);
            string         consulta          = string.Concat("SELECT * FROM ", nombreTabla, " WHERE " + campoID + "=", id.ToString());
            string         usuario           = string.Empty;
            HttpContext    context           = HttpContext.Current;

            if (context.Session["userName"] != null)
            {
                usuario = context.Session["userName"].ToString();
            }
            bool nollave = (tipe.BaseType.Name == "Object" ? true : false);

            using (SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["sqlServer"].ToString()))
            {
                try {
                    con.Open();
                    SqlCommand    comand = new SqlCommand(consulta, con);
                    SqlDataReader reader = comand.ExecuteReader();
                    while (reader.Read())
                    {
                        foreach (PropertyInfo pro in listaProperties)
                        {
                            if (pro.DeclaringType.Name == nombreTabla)
                            {
                                string Nombrecampo = string.Empty;
                                if (pro.Name == "Servicio1")
                                {
                                    Nombrecampo = "Servicio";
                                }
                                else if (pro.Name == "Tarifa1")
                                {
                                    Nombrecampo = "Tarifa";
                                }
                                else if (pro.Name == "Acreedor1")
                                {
                                    Nombrecampo = "Acreedor";
                                }
                                else if (pro.Name == "Usuario1")
                                {
                                    Nombrecampo = "Usuario";
                                }
                                else if (pro.Name == "Concepto1")
                                {
                                    Nombrecampo = "Concepto";
                                }
                                else if (pro.Name == "Grupo1")
                                {
                                    Nombrecampo = "Grupo";
                                }
                                else if (pro.Name == "Moneda1")
                                {
                                    Nombrecampo = "Moneda";
                                }
                                else
                                {
                                    Nombrecampo = pro.Name;
                                }

                                valorActual = (reader[Nombrecampo] != null ? reader[Nombrecampo].ToString() : string.Empty);
                                //valor = pro.GetValue(objeto).ToString();
                                if (!valorActual.Equals((pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty)))
                                {
                                    if (camposModificados.Equals(string.Empty))
                                    {
                                        camposModificados = pro.Name;
                                        valorAnterior.Append(valorActual);
                                        valorModificado.Append(pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty);
                                    }
                                    else
                                    {
                                        camposModificados += "|" + pro.Name;
                                        valorAnterior.Append("|" + valorActual);
                                        valorModificado.Append("|" + (pro.GetValue(objeto) != null ? pro.GetValue(objeto).ToString() : string.Empty));
                                    }

                                    existeCambio = true;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    throw ex;
                }
            }

            if (existeCambio)
            {
                ICPruebaEntities   db  = new ICPruebaEntities();
                LogActualizaciones reg = new LogActualizaciones();
                reg.NombrePantalla    = pantalla;
                reg.ColumnaModificada = camposModificados;
                reg.Valor_Nuevo       = valorModificado.ToString();
                reg.Valor_Anterior    = valorAnterior.ToString();
                reg.Fecha             = DateTime.Now;
                reg.Direccion_IP      = ip;
                reg.Accion            = "Modificacion";
                reg.Activo            = 1;
                reg.Usuario           = usuario;
                db.LogActualizaciones.Add(reg);
                db.SaveChanges();
            }
        }
Exemple #3
0
        public JsonResult llenaGrid(int lineaNegocio, int start, int limit, string NombrePantalla, string ColumnaModificada, string Valor_Nuevo, string Valor_Anterior,
                                    string Fecha, string Direccion_IP, string Accion, string Usuario)
        {
            List <object> listaParametros = new List <object>();
            object        respuesta       = null;
            int           total;
            Consultas     aux      = new Consultas();
            StringBuilder consulta = new StringBuilder();
            Dictionary <string, string> auxFechas = new Dictionary <string, string>();


            try
            {
                StringBuilder consultaAnterior = new StringBuilder();
                consultaAnterior = (StringBuilder)Session["consulta"];
                LogActualizaciones tmp = new LogActualizaciones();
                tmp.NombrePantalla    = NombrePantalla;
                tmp.ColumnaModificada = ColumnaModificada;
                tmp.Valor_Nuevo       = Valor_Nuevo;
                tmp.Valor_Anterior    = Valor_Anterior;
                tmp.Direccion_IP      = Direccion_IP;
                tmp.Accion            = Accion;
                tmp.Usuario           = Usuario;
                auxFechas.Add("Fecha", Fecha);
                string consultaInicial = string.Empty;
                consulta = aux.consultaFinal(tmp, "WHERE Activo=@p0", auxFechas, out consultaInicial);

                if (consultaAnterior == null) // primera consulta
                {
                    Session["consulta"] = consulta;
                }
                else if (start != 0 && consultaAnterior.Equals(consulta)) // cuando se le da al paginar
                {
                    consulta = consultaAnterior;
                }
                else if (!consulta.Equals(consultaAnterior) && !consultaInicial.Equals(consulta.ToString()) && start == 0)
                {
                    Session["consulta"] = consulta;
                }
                else if (consulta.Length > consultaAnterior.Length)
                {
                    Session["consulta"] = consulta;
                }
                else if (!consulta.Equals(consultaAnterior) && !consulta.ToString().Equals(consultaInicial))
                {
                    Session["consulta"] = consulta;
                }
                else if (consulta.ToString().Equals(consultaInicial) && NombrePantalla != null)
                {
                    Session["consulta"] = consulta;
                }
                else
                {
                    consulta            = consultaAnterior;
                    Session["consulta"] = consulta;
                }

                DbSqlQuery <LogActualizaciones> catParametros = db.LogActualizaciones.SqlQuery(consulta.ToString(), 1);

                string lDia     = string.Empty;
                string lMes     = string.Empty;
                string lHora    = string.Empty;
                string lMinuto  = string.Empty;
                string lSegundo = string.Empty;

                foreach (var elemento in catParametros)
                {
                    int dia     = Convert.ToDateTime(elemento.Fecha).Day;
                    int mes     = Convert.ToDateTime(elemento.Fecha).Month;
                    int hora    = Convert.ToDateTime(elemento.Fecha).Hour;
                    int minuto  = Convert.ToDateTime(elemento.Fecha).Minute;
                    int segundo = Convert.ToDateTime(elemento.Fecha).Second;

                    lDia     = (dia >= 0 && dia < 9) ? ("0" + dia).ToString() : dia.ToString();
                    lMes     = (mes >= 0 && mes < 9) ? ("0" + mes).ToString() : mes.ToString();
                    lHora    = (hora >= 0 && hora < 9) ? ("0" + hora).ToString() : hora.ToString();
                    lMinuto  = (minuto >= 0 && minuto < 9) ? ("0" + minuto).ToString() : minuto.ToString();
                    lSegundo = (segundo >= 0 && segundo < 9) ? ("0" + segundo).ToString() : segundo.ToString();

                    listaParametros.Add(new
                    {
                        Id                = elemento.Id,
                        NombrePantalla    = elemento.NombrePantalla,
                        ColumnaModificada = elemento.ColumnaModificada,
                        Valor_Nuevo       = elemento.Valor_Nuevo,
                        Valor_Anterior    = elemento.Valor_Anterior,
                        Fecha             = lDia + "-" + lMes + "-" + Convert.ToDateTime(elemento.Fecha).Year + " " + lHora + ":" + lMinuto + ":" + lSegundo,
                        Direccion_IP      = elemento.Direccion_IP,
                        Accion            = elemento.Accion,
                        Usuario           = elemento.Usuario,
                        Activo            = elemento.Activo
                    });
                }
                total           = listaParametros.Count();
                listaParametros = listaParametros.Skip(start).Take(limit).ToList();
                respuesta       = new { success = true, results = listaParametros, total = total };
            }
            catch (Exception ex)
            {
                respuesta = new { success = false, results = ex.Message.ToString() };
            }

            return(Json(respuesta, JsonRequestBehavior.AllowGet));
        }