public static int CantidadDePublicacionesAComprar(String descripcion = null, RangoFechas rango = null, List <Rubro> rubros = null) { var parametros = new List <QueryParameter>(); String sql = "select count(*) as cantidad " + GetBusquedaQuery(descripcion, rango, rubros, parametros); var dt = DataBase.GetInstance().TypedQuery(sql, parametros.ToArray()); return(Convert.ToInt32(dt.Rows[0]["cantidad"])); }
public static String GetBusquedaQuery(String descripcion, RangoFechas rango, List <Rubro> rubros, List <QueryParameter> parametros) { var condiciones = new List <String>(); if (descripcion != null && !descripcion.Trim().Equals("")) { var condicion = "upper(descripcion) like @descripcionParam"; condiciones.Add(condicion); parametros.Add(new QueryParameter("descripcionParam", SqlDbType.NVarChar, "%" + descripcion.ToUpper() + "%")); } if (rango != null) { var condicion = String.Format("fecha_espectaculo between @inicio and @fin"); condiciones.Add(condicion); parametros.Add(new QueryParameter("inicio", SqlDbType.DateTime, rango.inicio)); parametros.Add(new QueryParameter("fin", SqlDbType.DateTime, rango.fin)); } else { var condicion = String.Format("fecha_espectaculo >= @fechaActualSistema"); condiciones.Add(condicion); parametros.Add(new QueryParameter("fechaActualSistema", SqlDbType.DateTime, Contexto.FechaActual)); } if (rubros != null && rubros.Count != 0) { var filtrosRubro = new List <String>(); foreach (Rubro r in rubros) { var s = String.Format("rubro_id = {0}", r.id); filtrosRubro.Add(s); } var condicion = "(" + filtrosRubro.Aggregate((x, y) => x + " or " + y) + ")"; condiciones.Add(condicion); } String condicionWhere = String.Format("where estado = '{0}' and (fecha_vencimiento > @fechaActual or fecha_vencimiento is null ) ", new Publicado().Codigo()); parametros.Add(new QueryParameter("fechaActual", SqlDbType.DateTime, Contexto.FechaActual)); if (condiciones.Count != 0) { condicionWhere += " and " + condiciones.Aggregate((prod, next) => prod + " and " + next); } var sql = "from COMPUMUNDOHIPERMEGARED.PublicacionesView " + condicionWhere; return(sql); }
public static List <Publicacion> FiltrarPublicacionesAComprar(String descripcion = null, RangoFechas rango = null, List <Rubro> rubros = null, Pagina pag = null) { if (pag == null) { pag = new Pagina(1, 10); } var parametros = new List <QueryParameter>(); String sql = "select * " + GetBusquedaQuery(descripcion, rango, rubros, parametros) + " order by grado_comision desc, fecha_espectaculo asc " + String.Format(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", pag.FirstResultIndex(), pag.pageSize); var dt = DataBase.GetInstance().TypedQuery(sql, parametros.ToArray()); return(PublicacionesFromDataTable(dt)); }