public List <RisorsaElenco> RecuperaRisorseElenco(int?idTema, string testo, string orderBy, int startrowNum, int endRowNum, out int rows)
        {
            List <RisorsaElenco> risorse = new List <RisorsaElenco>();

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;

            string sSql = "spFTS_RicercaRisorse";

            sseo             = new SqlServerExecuteObject();
            sseo.CommandText = sSql;
            sseo.CommandType = CommandType.StoredProcedure;
            sseo.SqlParameters.AddWithValue("@stringaRicerca", testo);
            sseo.SqlParameters.AddWithValue("@criterio", 0);
            sseo.SqlParameters.AddWithValue("@tipo", "");
            sseo.SqlParameters.AddWithValue("@ID_GEN", idTema.HasValue ? (object)idTema.Value : DBNull.Value);
            sseo.SqlParameters.AddWithValue("@ID_CT", DBNull.Value);
            sseo.SqlParameters.AddWithValue("@livelloAccesso", 0);

            SqlParameter prm = new SqlParameter("@stringaRicercaModificata", SqlDbType.VarChar, 300);

            prm.Direction = ParameterDirection.Output;

            sseo.SqlParameters.Add(prm);

            dr = SqlProvider.ExecuteReaderObject(sseo);



            while (dr.Read())
            {
                RisorsaElenco risorsa = RiempiIstanza(dr);

                risorse.Add(risorsa);
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }

            rows = risorse.Count;

            return(risorse.Skip(startrowNum).Take(endRowNum - startrowNum).ToList());
        }
        private RisorsaElenco RiempiIstanza(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            RisorsaElenco risorsa = new RisorsaElenco();

            risorsa.ID             = dr.GetGuid(2);
            risorsa.TipoContenuto  = TipoContenutoRisorsaRepository.Instance.RecuperaTipoContenutoRisorsa(dr.GetInt32(20));
            risorsa.Tema           = TemaRepository.Instance.RecuperaTema(dr.GetInt32(10));
            risorsa.Titolo         = dr.GetString(5);
            risorsa.Scala          = dr.GetString(7);
            risorsa.Url            = dr.IsDBNull(4) ? "" : dr.GetString(4);
            risorsa.UrlWms         = dr.IsDBNull(15) ? "" : dr.GetString(15);
            risorsa.UrlGoogleEarth = dr.IsDBNull(17) ? "" : dr.GetString(17);
            risorsa.Tipo           = dr.GetString(8);

            return(risorsa);
        }