示例#1
0
        /// <summary>
        /// Render dynamic Navigation
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            //Initialize parameter
            ParseParams(parameters);

            #region Try get template cache

            /*
             * Check storing Navigation result in cache
             * If all the Navigations are not updated then get the cache result
             * If not rebuild the data and recache
             */
            var cacheName       = string.Join("_", parameters);
            var cacheNavigation = StateManager.GetApplication <CacheNavigation>(cacheName);

            if (cacheNavigation != null)
            {
                var template = _widgetTemplateService.GetTemplate(Template) ??
                               _widgetTemplateService.GetTemplate(GetSetup().DefaultTemplate);
                if (template == null)
                {
                    throw new Exception(string.Format("Template {0} is not found", Template));
                }

                var lastCreated   = _clientNavigationService.GetAll().Max(t => t.Created);
                var lastUpdated   = _clientNavigationService.GetAll().Max(t => t.LastUpdate) ?? DateTime.MinValue;
                var dataCacheTime = lastCreated > lastUpdated ? lastCreated : lastUpdated;

                lastCreated = template.Created;
                lastUpdated = template.LastUpdate ?? DateTime.MinValue;
                var templateCacheTime = lastCreated > lastUpdated ? lastCreated : lastUpdated;

                if (cacheNavigation.DataCacheTime == dataCacheTime && cacheNavigation.TemplateCacheTime == templateCacheTime)
                {
                    return(cacheNavigation.Content);
                }
            }

            #endregion

            var renderTemplate = _widgetTemplateService.GetTemplateByName(Template) ??
                                 _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            //Get Navigations
            var data = _clientNavigationService.GenerateNavigations(ParentId, ShowParentNavigation);

            /*
             * Create cache version of this widget and store in Application
             */
            cacheNavigation = new CacheNavigation
            {
                Content           = _widgetTemplateService.ParseTemplate(renderTemplate, data),
                DataCacheTime     = DateTime.UtcNow,
                TemplateCacheTime = DateTime.UtcNow
            };
            HttpContext.Current.Application[cacheName] = cacheNavigation;

            return(cacheNavigation.Content);
        }
示例#2
0
        /// <summary>
        /// Render News widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);
            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            var model = _newsService.GetNewsDetails(NewsId);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _documentService.GetProtectedDocumentWidget(Path);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            var model = _eventScheduleService.GetEventSchedulesWidget(CategoryId, Total, DateFormat, TimeFormat);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#5
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _pageService.GetPageLinkWidget(PageId, RenderHtmlLink, ClassName, Title);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _clientNavigationService.GenerateSiteMap().ToList();

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#7
0
        /// <summary>
        /// Render News widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _newsService.GetNewsListing(PageIndex, PageSize, Total, NewsTypeEnum, NewsCategoryId, NewsStatusEnum);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#8
0
        /// <summary>
        /// Render testimonial widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _testimonialService.GetRandom(Number);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#9
0
        /// <summary>
        /// Render News widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _associateService.GetAssociateListingWidget(AssociateTypeId, LocationId, CompanyTypeId, AssociateStatus);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#10
0
        /// <summary>
        /// Render News widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _newsCategoryService.GetCategoryListing();

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#11
0
        /// <summary>
        /// Render testimonial widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _subscriptionService.GetContentUpdates();

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#12
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _noticeService.GetNoticesWidgets(NoticeTypeId, Number);

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#13
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _rotatingImageGroupService.GetRotatingImageWidget(GroupId);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_RotatingImage_Message_InvalidGroupId"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _documentService.GetProtectedDocumentFilesWidget(Path, Total);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_ProtectedDocumentFiles_Message_InvalidPath"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#15
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _rssFeedService.GetRssFeedWidget(RssFeedId, Number);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_RSSFeeds_Message_InvalidRssFeedId"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#16
0
        /// <summary>
        /// Render News widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _socialMediaTokenService.GetFeed(TokenId, Total);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_SocialFeed_Message_InvalidToken"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#17
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _pollAnswerService.GetPollResultsWidget(PollAnswerIdsString);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_PollResult_Message_InvalidPollAnswerIds"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#18
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            ParseParams(parameters);

            var model = _pageService.GetBreadcrumbs(PageId);

            if (model == null)
            {
                return(_localizedResourceService.T("Widget_Breadcrumb_Message_InvalidPageId"));
            }

            var template = _widgetTemplateService.GetTemplateByName(Template) ??
                           _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

            return(_widgetTemplateService.ParseTemplate(template, model));
        }
示例#19
0
        /// <summary>
        /// Render testimonial widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            var subscriptionConfiguration = _siteSettingService.LoadSetting <SubscriptionConfigurationSetting>();

            if (!subscriptionConfiguration.DisableNotifySubscribers)
            {
                ParseParams(parameters);

                var model = _subscriptionService.GenerateSubscription(ModuleEnum, WorkContext.CurrentContact.Email, Parameters);

                var template = _widgetTemplateService.GetTemplateByName(Template) ??
                               _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

                return(_widgetTemplateService.ParseTemplate(template, model));
            }

            return(string.Empty);
        }
示例#20
0
        /// <summary>
        /// Render widget
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override string Render(string[] parameters)
        {
            if (HttpContext.Current.Items["RenderSearchAlready"] == null)
            {
                // Prevent duplicate render
                HttpContext.Current.Items["RenderSearchAlready"] = new object();

                ParseParams(parameters);

                var model = _pageService.SearchPages(Keyword);

                var template = _widgetTemplateService.GetTemplateByName(Template) ?? _widgetTemplateService.GetTemplateByName(GetSetup().DefaultTemplate);

                return(_widgetTemplateService.ParseTemplate(template, model));
            }

            return(string.Empty);
        }