public void obtenerDataSource(string idMenu) { Conexion conexion = new Conexion(); DataRow[] config = conexion.SelectDataTable("select bd.Id_Base_Datos, bd.str_Ruta_Base_Datos, ma.ID_Menu from tbl_M_Menú_Aplicaciones ma " + "inner join tbl_M_Bases_Datos bd on bd.Id_Base_Datos = ma.Id_Base_Datos where ma.ID_Menu = " + idMenu, null).Select(); if (config.Count() > 0) { DataRow dr = config[0]; System.Web.HttpContext.Current.Session["dataSource"] = dr.Field<string>("str_Ruta_Base_Datos"); } }
public void ValidateRangoRespuestas(string idRegistro) { int r = 0; Conexion conexion = new Conexion(); string datasource = System.Web.HttpContext.Current.Session["dataSource"].ToString(); string[] aux = null; DataRow infoTabla = (conexion.SelectDataTable("SELECT MAX(resp.Valor) FROM tbl_M_Preguntas preg " +"INNER JOIN tbl_M_Cantidad_Respuestas resp ON preg.Cantidad_Prosibles_Respuestas = resp.Cantidad_Id " +"and preg.Encuesta = "+idRegistro, datasource).Select())[0]; //IEnumerable<DataRow> infoTabla = rango.AsEnumerable().Where(x => x["Encuesta"].ToString() == idRegistro); try { r = Int32.Parse(infoTabla[0].ToString()); DataRow cantidadCaras = (conexion.SelectDataTable("SELECT Cantidad_Caras FROM tbl_M_Cantidad_Respuestas WHERE Valor = " + r, datasource).Select())[0]; aux = (cantidadCaras[0].ToString()).Split(','); } catch (Exception e){} //System.Web.HttpContext.Current.Session["rango"] = r; System.Web.HttpContext.Current.Session["permisos"] = aux; }
public ActionResult validarInicio(Usuario u, string recordarme) { Conexion conexion = new Conexion(); DataRow[] rows = conexion.SelectDataTable("SELECT Id_Usuario, Nombre_Usuario, Clave_Usuario, str_Organización FROM tbl_M_Usuarios WHERE Id_Usuario = '" + u.idUsuario + "' AND Clave_Usuario = '" + u.clave + "'", null).Select(); if (rows.Count() > 0) { DataRow dr = rows[0]; u.nomUsuario = dr.Field<string>("Nombre_Usuario"); u.nomOrganizacion = dr.Field<string>("str_Organización"); ViewBag.Error = null; System.Web.HttpContext.Current.Session["usuario"] = u; System.Web.HttpContext.Current.Session["recordarUsuario"] = 1; return RedirectToAction("Menu", "Menu"); } else { ViewBag.Error = "Usuario y/o clave incorrectos"; u.clave = ""; return View("Index", u); } }
// Generación de menú de sistemas public string GenerateMenuSistemas() { string menu = ""; //menu += "<ul class='nav-sub'>"; Conexion conexion = new Conexion(); DataRow[] sistemas = conexion.SelectDataTable("select ubd.Id_Usuario, bd.Id_Base_Datos, bd.str_Descripción_Base_Datos from tbl_M_Bases_Datos bd " + "inner join tbl_M_Usuarios_X_Base_Datos ubd on ubd.Id_Base_Datos = bd.Id_Base_Datos " + "inner join tbl_M_Usuarios u on u.Id_Usuario = ubd.Id_Usuario where ubd.Id_Usuario = '" + usuario.idUsuario + "'", null).Select(); //IEnumerable<DataRow> sistemas = sist.AsEnumerable().Where(x => x["Id_Usuario"].ToString() == idUsuario); if (sistemas.Count() > 0) { foreach (DataRow dr in sistemas) { string MenuName = dr["str_Descripción_Base_Datos"].ToString(); int MenuID = Int32.Parse(dr["Id_Base_Datos"].ToString()); DataTable menus = conexion.SelectDataTable("SELECT u.Id_Usuario, ma.ID_Menu, ma.Descripcion, ma.Id_Papa, ma.Icono_Bootstrap, ma.Id_Base_Datos, ma.Url, ma.Tipo, ma.Id_Registro FROM tbl_M_Bases_Datos bd " +"INNER JOIN tbl_M_Menú_Aplicaciones ma ON bd.Id_Base_Datos = ma.Id_Base_Datos INNER JOIN tbl_M_Roles r ON bd.Id_Base_Datos = r.Id_Base_Datos " +"INNER JOIN tbl_M_Roles_X_Autorizacion ra ON ma.ID_Menu = ra.Id_Menu AND r.Id_Rol = ra.ID_Rol INNER JOIN tbl_M_Usuarios_X_Base_Datos ubd ON bd.Id_Base_Datos = ubd.Id_Base_Datos " +"INNER JOIN tbl_M_Usuarios u ON ubd.Id_Usuario = u.Id_Usuario INNER JOIN tbl_M_Usuarios_X_Roles ur ON r.Id_Rol = ur.Id_Rol AND u.Id_Usuario = ur.Id_Usuario where u.Id_Usuario = '" + usuario.idUsuario + "' AND ma.Id_Base_Datos = " + MenuID, null); IEnumerable<DataRow> rows = menus.AsEnumerable().Where(x => Int32.Parse(x["Id_Papa"].ToString()) == 0); if (rows.Count() > 0) { //String submenu = "#submenu" + MenuID; menu += "<li class='nav-dropdown'><a href='' id='sistema' title='" + MenuName + "'><i class='fa fa-fw fa-moon-o'></i>" + MenuName+"</a>"; string subMenu = ""; menu += GenerateMenuTotal(rows, subMenu, MenuID, menus); } /*else { menu += "<li><a href='' id='"+MenuID+"' title='sistema'><i class='fa fa-fw fa-moon-o'></i>" + MenuName + "</a>"; }*/ menu += "</li>"; } } //menu += "</ul>"; return menu; }
//public List<DataRow> ValidateForeignKey(string tablaCarga) //{ // Conexion conexion = new Conexion(); // DataRow[] empr = conexion.SelectDataTable("SELECT CTU.TABLE_NAME, KCU.COLUMN_NAME[COLUMN], CTU2.TABLE_NAME[REFERENCED_TABLE], KCU2.COLUMN_NAME[REFERENCED_COLUMN], " // +"CTU.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE CTU " // +"JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU ON KCU.CONSTRAINT_NAME = CTU.CONSTRAINT_NAME AND KCU.CONSTRAINT_SCHEMA = CTU.CONSTRAINT_SCHEMA " // +"JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC ON RC.CONSTRAINT_NAME = CTU.CONSTRAINT_NAME AND RC.CONSTRAINT_SCHEMA = CTU.CONSTRAINT_SCHEMA " // +"JOIN INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE CTU2 ON CTU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME AND CTU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA " // +"JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 ON KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA", Session["dataSource"].ToString()).Select(); // List<DataRow> infoTabla = empr.AsEnumerable().Where(x => x["TABLE_NAME"].ToString() == tablaCarga && x["CONSTRAINT_NAME"].ToString().StartsWith("FK_")).ToList(); // return infoTabla; //} public string ValidateKey(string tablaCarga, string datasource) { string pk = ""; Conexion conexion = new Conexion(); DataRow[] infoTabla = conexion.SelectDataTable("select t.table_name, c.column_name, t.constraint_type from information_schema.table_constraints t " + "inner join information_schema.key_column_usage c on t.constraint_name = c.constraint_name where t.table_name = '" + tablaCarga + "' and t.constraint_type = 'PRIMARY KEY'", datasource).Select(); //List<DataRow> infoTabla = empr.AsEnumerable().Where(x => x["TABLE_NAME"].ToString() == tablaCarga && x["CONSTRAINT_TYPE"].ToString() == "PRIMARY KEY").ToList(); //foreach (DataRow dr in infoTabla) //{ DataRow dr = infoTabla[0]; pk = dr["COLUMN_NAME"].ToString(); //} return pk; }
public string LoadParameters(string parametros, string tablaCarga, string tipoControl, string nombreCampo, string Query, List<Dimension> dim, string dimension, int idParam) { //string parametros = ""; Conexion conexion = new Conexion(); IEnumerable<DataRow> datos; string datasource = System.Web.HttpContext.Current.Session["dataSource"].ToString(); //DataRow[] datos = conexion.SelectDataTable("select * from "+tablaCarga, Session["dataSource"].ToString()).Select(); if (!Query.Equals("")) { datos = conexion.SelectDataTable(Query, datasource).Select(); //IEnumerable<DataRow> row = datos.AsEnumerable().Where(x => condicion); } else { datos = conexion.SelectDataTable("select * from " + tablaCarga, datasource).Select(); } //IEnumerable<DataRow> row = param.AsEnumerable().Where(x => x["Id_Menu"].ToString() == idMenu); if (datos.Count() > 0) { string nomPK = ValidateKey(tablaCarga, datasource); if (tipoControl.Contains("check")) { if (datos.Count() > 1) { parametros += "<input type='checkbox' class='param"+idParam+"' name='" + nombreCampo + "' value='0' checked> Todas<br>"; List<string> aux = new List<string>(); aux.Add("Todas"); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "checkbox" }); } foreach (DataRow dr in datos) { var id = dr[nomPK]; string nombre = dr[nombreCampo].ToString(); if (datos.Count() == 1) { parametros += "<input type='checkbox' class='param"+idParam+"' name='" + nombreCampo + "' value='" + id + "' checked> " + nombre + "<br>"; List<string> aux = new List<string>(); aux.Add(id.ToString()); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "checkbox" }); } else { parametros += "<input type='checkbox' class='param"+idParam+"' name='" + nombreCampo + "' value='" + id + "'> " + nombre + "<br>"; } //parametros += "<input type='checkbox' id='" + id + "' value='" + id + "'>" + nombre; //parametros += "<option value='" + id + "'>" + nombre + "</option>"; //dimensiones.Add(new Dimension { nombreTabla = tablaCarga, nombreColumna = nomPK, valorColumna = id.ToString(), tipoControl = tipoControl }); } } else if (tipoControl.Contains("drop")) { parametros += "<select name='" + nombreCampo + "' class='form-control' id='param"+idParam+"'>"; selects.Add(idParam); if (datos.Count() > 1) { parametros += "<option value='0' selected>Todas</option>"; List<string> aux = new List<string>(); aux.Add("Todas"); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "select" }); } foreach (DataRow dr in datos) { //string pk = ValidateKey(tablaCarga); var id = dr[nomPK]; string nombre = dr[nombreCampo].ToString(); if (datos.Count() == 1) { parametros += "<option value='" + id + "' selected>" + nombre + "</option>"; List<string> aux = new List<string>(); aux.Add(id.ToString()); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "select" }); } else { parametros += "<option value='" + id + "'>" + nombre + "</option>"; } //parametros += "<input type='checkbox' id='" + id + "' value='" + id + "'>" + nombre; //dimensiones.Add(new Dimension { nombreTabla = tablaCarga, nombreColumna = nomPK, valorColumna = id.ToString(), tipoControl = tipoControl }); } parametros += "</select>"; }else if (tipoControl.Contains("radio")) { //parametros += "<select name='" + nombreCampo + "' class='form-control' id='select2'>"; parametros += "<div class='radio'>"; if (datos.Count() > 1) { parametros += "<label><input type='radio' id='param"+idParam+"' name='"+nombreCampo+"' value='0' checked> Todas</label><br/>"; List<string> aux = new List<string>(); aux.Add("Todas"); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "radiobutton" }); } foreach (DataRow dr in datos) { //string pk = ValidateKey(tablaCarga); var id = dr[nomPK]; string nombre = dr[nombreCampo].ToString(); if (datos.Count() == 1) { //parametros += "<option value='" + id + "'selected>" + nombre + "</option>"; parametros += "<label><input type='radio' id='param"+idParam+"' name='" + nombreCampo + "' value='" + id + "' checked> "+nombre+"</label>"; List<string> aux = new List<string>(); aux.Add(id.ToString()); dim.Add(new Dimension { nombreDimension = dimension, idControl = idParam, nombrePK = nomPK, valores = aux, tipoControl = "radiobutton" }); } else { parametros += "<label><input type='radio' id='param"+idParam+"' name='" + nombreCampo + "' value='" + id + "'> " + nombre + "</label><br/>"; } } parametros += "</div>"; } } return parametros; }
// Generación de parametros para reportes public string GenerateParameters(string idMenu, string idRegistro, List<Dimension>dim) { string parametros = ""; Conexion conexion = new Conexion(); //string condicion = ""; //Boolean b = false; conexion.obtenerDataSource(idMenu); DataRow[] param = conexion.SelectDataTable("select Id_Parametro, Dimension, Tabla_Carga, Tipo_Control, Nombre_Campo, Query_Dinamico from tbl_M_Parametros_Consulta_Tablero_Control where Id_Menu = " + idMenu, null).Select(); //IEnumerable<DataRow> row = param.AsEnumerable().Where(x => x["Id_Menu"].ToString() == idMenu); //parametros += "<li class='list-group-item'><div class='name'>Empresa</div><input type='checkbox' id='" + u.nitOrganizacion + "' name='cEmpresa' value='" + u.nitOrganizacion + "' checked> " + u.nomOrganizacion; if (param.Count() > 0) { foreach (DataRow dr in param) { int Id = Int32.Parse(dr["Id_Parametro"].ToString()); string Dimension = dr["Dimension"].ToString(); string NomMenu = Dimension.Replace(" ", ""); string TablaCarga = dr["Tabla_Carga"].ToString(); string TipoControl = dr["Tipo_Control"].ToString().ToLower(); string NombreCampo = dr["Nombre_Campo"].ToString(); string Query = dr["Query_Dinamico"].ToString(); parametros += "<li class='list-group-item'><a href='#menu" + NomMenu + "' class='name' data-toggle='collapse' aria-expanded='true'>" + Dimension + " <i class='fa fa-caret-down'></i></a><div class='collapse in' id='menu" + NomMenu + "' aria-expanded='true'>"; string tmp = ""; if (!Query.Equals("")) { Query = Query.Replace("_User_", usuario.idUsuario); Query = Query.Replace("_Encuesta_", idRegistro); } if (TipoControl.Equals("textbox")) { parametros += "<input type='text' id='param"+Id+"' name='" + NombreCampo + "' value=''></div>"; List<string> aux = new List<string>(); dim.Add(new Dimension { nombreDimension = Dimension, idControl = Id, valores = aux, tipoControl = "textbox"}); } else if (TipoControl.Equals("date")) { parametros += "<input type='text' value='' class='form-control' id='param" + Id + "' name='" + NombreCampo + "'></div>"; dates.Add(Id); List<string> aux = new List<string>(); dim.Add(new Dimension { nombreDimension = Dimension, idControl = Id, valores = aux, tipoControl = "date" }); } else if (TipoControl.Equals("textarea")) { parametros += "<textarea class='form-control' id='param"+Id+"' name='" + NombreCampo + "' rows='3'></textarea></div>"; List<string> aux = new List<string>(); dim.Add(new Dimension { nombreDimension = Dimension, idControl = Id, valores = aux, tipoControl = "textarea" }); } else { parametros += LoadParameters(tmp, TablaCarga, TipoControl, NombreCampo, Query, dim, Dimension, Id); parametros += "</div>"; } parametros += "</li>"; } } System.Web.HttpContext.Current.Session["paramDates"] = dates; System.Web.HttpContext.Current.Session["paramSelects"] = selects; return parametros; }