private PeticionDataTableDto <IList <IList <string> > > ObtenPeticionDataTable() { String param; List <DataTableOrderColumn> orders = new List <DataTableOrderColumn>(); for (var index = 0; index < 6; index++) { var columnKey = "order[" + index + "][column]"; param = getFormKeyValue(columnKey); if (param != null) { var dirKey = "order[" + index + "][dir]"; var orderItem = new DataTableOrderColumn() { column = Int32.Parse(param), dir = getFormKeyValue(dirKey) }; orders.Add(orderItem); } } var dataTableRequest = new PeticionDataTableDto <IList <IList <string> > >() { draw = Int32.Parse(getFormKeyValue("draw")), length = Int32.Parse(getFormKeyValue("length")), start = Int32.Parse(getFormKeyValue("start")), search = getFormKeyValue("search"), order = orders }; return(dataTableRequest); }
public PeticionDataTableDto <IList <IList <string> > > ConsultaHistoricoEnvioDataTable(PeticionDataTableDto <IList <IList <string> > > peticionDataTableDto) { var builder = CreateDbParametersBuilder(); var query = CONSULTA_DATA_TABLE_HISTORICO_ENVIOS.Replace("#id", peticionDataTableDto.filtros["id"].ToString()); var documentosInstancia = AdoTemplate.QueryWithRowMapperDelegate(CommandType.Text, query, delegate(IDataReader reader, int rowNum) { return(CrearDocumentoDataTableInstancia(reader, rowNum)); }, builder.GetParameters()); peticionDataTableDto.recordsTotal = documentosInstancia.Count(); peticionDataTableDto.data = documentosInstancia.ToList(); return(peticionDataTableDto); }
public PeticionDataTableDto <IList <IList <string> > > ConsultaInformacionDataTable(PeticionDataTableDto <IList <IList <string> > > peticionDataTableDto) { var builder = CreateDbParametersBuilder(); var query = CONSULTA_DATA_TABLE_TODOS; var prefixDoc = "DOC"; var prefixTax = "TAX"; if (peticionDataTableDto.filtros.ContainsKey("periodicidad")) { var periodicidadStr = peticionDataTableDto.filtros["periodicidad"].ToString().Trim(); switch (periodicidadStr) { case "4": query = CONSULTA_DATA_TABLE_TODOS_ENVIOS; break; case "2": query = CONSULTA_DATA_TABLE_ENVIOS_MENSUAL; break; default: query = CONSULTA_DATA_TABLE_ULTIMOS_ENVIOS; break; } } else { prefixDoc = "T1"; prefixTax = "T1"; } if (peticionDataTableDto.filtros.ContainsKey("clavePizarra")) { query += " AND UPPER(" + prefixDoc + ".ClaveEmisora) LIKE '%' + UPPER('" + peticionDataTableDto.filtros["clavePizarra"] + "') + '%' "; } if (peticionDataTableDto.filtros.ContainsKey("taxonomia")) { query += " AND " + prefixTax + ".IdTaxonomiaXbrl= " + peticionDataTableDto.filtros["taxonomia"]; } if (peticionDataTableDto.filtros.ContainsKey("ejercicio")) { query += " AND " + prefixDoc + ".Anio= " + peticionDataTableDto.filtros["ejercicio"]; } if (peticionDataTableDto.filtros.ContainsKey("trimestre")) { query += " AND UPPER(isnull(" + prefixDoc + ".Trimestre,'')) = UPPER('" + peticionDataTableDto.filtros["trimestre"] + "') "; } if (peticionDataTableDto.filtros.ContainsKey("mensual")) { query += " AND MONTH(" + prefixDoc + ".FechaReporte) = " + peticionDataTableDto.filtros["mensual"]; } if (peticionDataTableDto.filtros.ContainsKey("periodicidad")) { query += " AND " + prefixTax + ".IdPeriodicidadReporte = " + peticionDataTableDto.filtros["periodicidad"]; } if (peticionDataTableDto.filtros.ContainsKey("search")) { var search = peticionDataTableDto.filtros["search"]; query += " AND (UPPER(isnull(" + prefixDoc + ".ClaveEmisora, '')) like UPPER('%" + search + "%') or UPPER(" + prefixTax + ".Nombre) like UPPER('%" + search + "%'))"; } if (peticionDataTableDto.order.Count > 0) { var orderQuery = String.Empty; foreach (var order in peticionDataTableDto.order) { if (order.column == 0) { if (order.dir == "desc") { orderQuery += "," + prefixDoc + ".IdDocumentoInstancia DESC"; } else { orderQuery += "," + prefixDoc + ".IdDocumentoInstancia"; } } if (order.column == 2) { if (order.dir == "desc") { orderQuery += "," + prefixDoc + ".FechaCreacion DESC"; } else { orderQuery += "," + prefixDoc + ".FechaCreacion"; } } if (order.column == 3) { if (order.dir == "desc") { orderQuery += "," + prefixDoc + ".ClaveEmisora DESC"; } else { orderQuery += "," + prefixDoc + ".ClaveEmisora"; } } if (order.column == 4) { if (order.dir == "desc") { orderQuery += ",CAST(YEAR(" + prefixDoc + ".FechaReporte) AS varchar) + isnull(' - ' + " + prefixDoc + ".Trimestre, '') DESC"; } else { orderQuery += ",CAST(YEAR(" + prefixDoc + ".FechaReporte) AS varchar) + isnull(' - ' + " + prefixDoc + ".Trimestre, '')"; } } if (order.column == 5) { if (order.dir == "desc") { orderQuery += "," + prefixTax + ".Taxonomia DESC"; } else { orderQuery += "," + prefixTax + ".Taxonomia"; } } } query += " ORDER BY " + orderQuery.Substring(1); } var documentosInstancia = AdoTemplate.QueryWithRowMapperDelegate(CommandType.Text, query, delegate(IDataReader reader, int rowNum) { return(CrearDocumentoDataTableInstancia(reader, rowNum)); }, builder.GetParameters()); peticionDataTableDto.recordsTotal = documentosInstancia.Count(); peticionDataTableDto.data = documentosInstancia.Skip(peticionDataTableDto.start).Take(peticionDataTableDto.length).ToList(); return(peticionDataTableDto); }
private IQueryable <RegistroAuditoria> AplicaOrdenamientosDataTable(IQueryable <RegistroAuditoria> query, PeticionDataTableDto dataTableRequest) { query = query.OrderByDescending(r => r.Fecha); foreach (var order in dataTableRequest.order) { if (order.column == 0) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.Fecha); } else { query = query.OrderBy(r => r.Fecha); } } if (order.column == 1) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.Empresa.NombreCorto); } else { query = query.OrderBy(r => r.Empresa.NombreCorto); } } if (order.column == 2) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.Modulo.Nombre); } else { query = query.OrderBy(r => r.Modulo.Nombre); } } if (order.column == 3) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.AccionAuditable.Nombre); } else { query = query.OrderBy(r => r.AccionAuditable.Nombre); } } if (order.column == 4) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.Usuario.Nombre) .ThenByDescending(r => r.Usuario.ApellidoPaterno) .ThenByDescending(r => r.Usuario.ApellidoMaterno); } else { query = query.OrderBy(r => r.Usuario.Nombre) .ThenBy(r => r.Usuario.ApellidoPaterno) .ThenBy(r => r.Usuario.ApellidoMaterno); } } if (order.column == 5) { if (order.dir == "desc") { query = query.OrderByDescending(r => r.Registro); } else { query = query.OrderBy(r => r.Registro); } } } return(query); }