public EventOccurrencesDrop(IPortalLiquidContext portalLiquidContext,
                                    IDataAdapterDependencies dependencies,
                                    bool isMin,
                                    bool isMax,
                                    DateTime?min = null,
                                    DateTime?max = null)
            : base(portalLiquidContext)
        {
            var eventAggregationDataAdapter = new WebsiteEventDataAdapter(dependencies);

            if (eventAggregationDataAdapter == null)
            {
                throw new ArgumentNullException("dependencies");
            }

            _adapter = eventAggregationDataAdapter;

            SetParams(dependencies, isMin, isMax, min, max);
        }
Example #2
0
        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);
            }
        }