Ejemplo n.º 1
0
        public List<Cosa> Retrieve(int pageSize, int page, out long totalRows, string filtro, string filtro2 )
        {
            List<Parameter> parametros = new List<Parameter>();

            var db = new Db();
            var sqlDataFields = " SELECT * ";
            var sqlScalarField = "SELECT COUNT(datakey) ";
            var sqlDataFrom = new StringBuilder(" FROM toomuchdata ");
            bool first = true;
            var parmList = new List<object>();

            if(filtro!=null)
            {
                sqlDataFrom.AppendFormat(first ? " WHERE " : " AND ");
                sqlDataFrom.AppendFormat(" fielddata1 LIKE :fielddata1");
                parmList.AddRange(new[] { ":fielddata1", filtro });
                parametros.Add(new Parameter());
                first = false;
            }

            if (filtro2 != null)
            {
                sqlDataFrom.AppendFormat(first ? " WHERE " : " AND ");
                sqlDataFrom.AppendFormat(" fielddata1 LIKE :fielddata2");
                parmList.AddRange(new[] { ":fielddata2", filtro2 });
                first = false;
            }

            //Se saca el scalar
            var sqlScalar = string.Format("{0}{1}", sqlScalarField, sqlDataFrom);
            var limit = " LIMIT " + pageSize + " OFFSET " + (page - 1);
            sqlDataFrom.Append(limit);
            totalRows = (long)db.Scalar(sqlScalar,parmList.ToArray());

            return db.Read(string.Format("{0}{1}", sqlDataFields, sqlDataFrom), Make2, parmList.ToArray()).ToList();
        }