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