public BlogsDrop(IPortalLiquidContext portalLiquidContext, IDataAdapterDependencies dependencies) : base(portalLiquidContext) { if (dependencies == null) { throw new ArgumentNullException("dependencies"); } _dependencies = dependencies; _adapter = new WebsiteBlogAggregationDataAdapter(dependencies); _aggregation = new Lazy <IBlog>(() => _adapter.Select(), LazyThreadSafetyMode.None); }
public BlogPostsDrop(IPortalLiquidContext portalLiquidContext, IDataAdapterDependencies dependencies, int startRowIndex = 0, int pageSize = -1, string orderBy = "adx_date", string sortDirection = "desc") : base(portalLiquidContext) { Dependencies = dependencies; PortalLiquidContext = portalLiquidContext; SetParams(startRowIndex, pageSize, orderBy, sortDirection); _adapter = new WebsiteBlogAggregationDataAdapter(Dependencies, null, serviceContext => GetBlogPosts(serviceContext)); _posts = new Lazy <BlogPostDrop[]>(() => _adapter.SelectPosts(StartRowIndex, PageSize).Select(e => new BlogPostDrop(this, e)).ToArray(), LazyThreadSafetyMode.None); }
public WebsiteDrop(IPortalLiquidContext portalLiquidContext, IPortalViewEntity viewEntity, IDataAdapterDependencies dependencies) : base(portalLiquidContext, viewEntity) { _dependencies = dependencies; _eventAggregationDataAdapter = new WebsiteEventDataAdapter(_dependencies); _events = new Lazy <EventDrop[]>(() => _eventAggregationDataAdapter.SelectEvents().Select(e => new EventDrop(this, _dependencies, new Event(e))).ToArray(), LazyThreadSafetyMode.None); var blogDependencies = new PortalConfigurationDataAdapterDependencies(); _blogAggregationDataAdapter = new WebsiteBlogAggregationDataAdapter(blogDependencies); var urlProvider = blogDependencies.GetUrlProvider(); var serviceContext = dependencies.GetServiceContext(); _blogs = new Lazy <BlogDrop[]>(() => _blogAggregationDataAdapter.SelectBlogs() .Select(e => new BlogDrop(this, blogDependencies, new Blog(e.Entity, urlProvider.GetApplicationPath(serviceContext, e.Entity)))) .ToArray(), LazyThreadSafetyMode.None); var contextLanguageInfo = portalLiquidContext.ContextLanguageInfo; if (!contextLanguageInfo.IsCrmMultiLanguageEnabled) { this._languages = new Lazy <LanguageDrop[]>(() => new LanguageDrop[0]); // Initialize _languages as an empty collection. } else { var previewPermission = new PreviewPermission(PortalContext.Current.ServiceContext, PortalContext.Current.Website); if (previewPermission.IsEnabledAndPermitted) { this._languages = new Lazy <LanguageDrop[]>(() => contextLanguageInfo.ActiveWebsiteLanguages.Select(websiteLanguage => new LanguageDrop(this, websiteLanguage)).ToArray()); } else { this._languages = new Lazy <LanguageDrop[]>(() => contextLanguageInfo.ActiveWebsiteLanguages.Where(lang => lang.IsPublished).Select(websiteLanguage => new LanguageDrop(this, websiteLanguage)).ToArray()); } this.SelectedLanguage = new LanguageDrop(this, contextLanguageInfo.ContextLanguage); } }