public static BannerCollection FetchBannersByPageTemplateAndRegion(string templateCode, string regionCode, Int32 returnRows, string relativePath) { Banner banner = null; BannerCollection collection = new BannerCollection(); Database db = Global.CreateDatabase(); DbCommand command = db.GetSqlStringCommand("SELECT TOP " + returnRows.ToString() + " banner_BannerAds.BannerId, banner_BannerAds.Code, " + "banner_BannerAds.Name, banner_BannerAds.BannerFile, banner_BannerAds.CodeSnippet " + "FROM banner_BannerAds WHERE BannerID IN " + "(SELECT banner_BannerAds.BannerId " + "FROM banner_BannerAds " + "INNER JOIN banner_BannerPageTemplates ON banner_BannerAds.BannerId = banner_BannerPageTemplates.BannerId " + "INNER JOIN site_PageTemplates ON banner_BannerPageTemplates.TemplateId = site_PageTemplates.TemplateId " + "INNER JOIN banner_BannerDestinations ON banner_BannerAds.BannerId = banner_BannerDestinations.BannerId " + "INNER JOIN travel_Destinations ON banner_BannerDestinations.DestinationId = travel_Destinations.DestinationId " + "WHERE IsActive = 1 AND site_PageTemplates.Code = @TemplateCode " + "AND travel_Destinations.RegionId IN (SELECT RegionId FROM Regions WHERE Code = @RegionCode)) " + "ORDER BY NEWID()"); db.AddInParameter(command, "@TemplateCode", DbType.String, templateCode); db.AddInParameter(command, "@RegionCode", DbType.String, regionCode); using (IDataReader dr = db.ExecuteReader(command)) { while (dr.Read()) { banner = new Banner(); banner._bannerId = dr.GetInt32(0); banner._code = dr.GetString(1); banner._name = dr.GetString(2); banner._bannerFile = dr.GetString(3); banner._codeSnippet = FunctionsPlus.FunctionsPlus.Replace(dr.GetString(4), "~/", relativePath); collection.Add(banner); } } return collection; }