Пример #1
0
        protected override void LoadNewItem()
        {
            List <Term> terms = null;

            // Stream: get terms from module settings
            if (ModuleConfiguration.ModuleDefinition.DefinitionName == Const.StreamModuleDefinitionName)
            {
                var settings = new StreamSettingsRepository().GetSettings(ModuleConfiguration);
                terms = settings.IncludeTerms;
            }

            // Agent: get terms from current tab
            if (ModuleConfiguration.ModuleDefinition.DefinitionName == Const.AgentModuleDefinitionName)
            {
                terms = PortalSettings.ActiveTab.Terms;

                txtAgentModuleId.Text = ModuleId.ToString();
            }

            if (!terms.IsNullOrEmpty())
            {
                var termSelector = new TermSelector();
                termSelector.SelectTerms(selTerms, terms);
            }

            buttonUpdate.Text = LocalizeString("Add.Text");
        }
Пример #2
0
        // TODO: Pass parameters via specific node, remove it after processing?
        public List <MenuNode> ManipulateNodes(List <MenuNode> nodes, PortalSettings portalSettings)
        {
            try {
                var config     = NewsConfig.GetInstance(portalSettings.PortalId).NodeManipulator;
                var parentNode = FindNodeByTabId(nodes, config.ParentNodeTabId);
                if (parentNode != null)
                {
                    var streamModule = ModuleController.Instance.GetModule(config.StreamModuleId, config.StreamModuleTabId, false);
                    if (streamModule != null)
                    {
                        var settingsRepository = new StreamSettingsRepository();
                        var settings           = settingsRepository.GetSettings(streamModule);
                        var newsEntries        = GetNewsEntries(settings, settings.PageSize, portalSettings.PortalId);
                        foreach (var newsEntry in newsEntries)
                        {
                            parentNode.Children.Add(CreateMenuNode(newsEntry, parentNode, streamModule));
                        }
                    }
                    else
                    {
                        LogAdminAlert($"Could not find Stream module with ModuleID={config.StreamModuleId} on page with TabID={config.StreamModuleTabId}.", portalSettings.PortalId);
                    }
                }
                else
                {
                    LogAdminAlert($"Could not find parent node with TabID={config.ParentNodeTabId}.", portalSettings.PortalId);
                }
            } catch (Exception ex) {
                Exceptions.LogException(ex);
            }

            return(nodes);
        }
Пример #3
0
        // REVIEW: Move to business logic layer
        protected IEnumerable <StreamModuleViewModel> GetStreamModules(
            int thematicWeight,
            int structuralWeight,
            IList <Term> terms)
        {
            var moduleController   = new ModuleController();
            var settingsRepository = new StreamSettingsRepository();

            return(moduleController.GetModulesByDefinition(PortalId, Const.StreamModuleDefinitionName)
                   .Cast <ModuleInfo> ()
                   .Where(m => !m.IsDeleted)
                   .Where(m => StreamModuleViewModel.IsNewsEntryWillBePassedByModule(settingsRepository.GetSettings(m),
                                                                                     thematicWeight, structuralWeight, terms))
                   .Select(m => new StreamModuleViewModel(
                               m,
                               settingsRepository.GetSettings(m),
                               ViewModelContext,
                               thematicWeight,
                               structuralWeight,
                               terms))
                   .OrderBy(m => m.ModuleTitle));
        }
Пример #4
0
        public override IList <SearchDocument> GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
        {
            var searchDocs = new List <SearchDocument> ();
            var settings   = new StreamSettingsRepository().GetSettings(moduleInfo);

            // get news entries
            var newsEntries = GetNewsEntries(
                moduleInfo.ModuleID, moduleInfo.PortalID,
                new WeightRange(settings.MinThematicWeight, settings.MaxThematicWeight),
                new WeightRange(settings.MinStructuralWeight, settings.MaxStructuralWeight),
                settings.ShowAllNews, settings.IncludeTerms
                );

            var portalAlias    = PortalAliasController.Instance.GetPortalAliasesByPortalId(moduleInfo.PortalID).First(pa => pa.IsPrimary);
            var portalSettings = new PortalSettings(moduleInfo.TabID, portalAlias);

            // create search documents
            foreach (var newsEntry in newsEntries)
            {
                var now = DateTime.Now;
                if (newsEntry.AgentModuleId == null && // get only news entries w/o agent modules
                    newsEntry.ContentItem.LastModifiedOnDate.ToUniversalTime() > beginDateUtc.ToUniversalTime())
                {
                    searchDocs.Add(new SearchDocument {
                        PortalId        = moduleInfo.PortalID,
                        AuthorUserId    = newsEntry.ContentItem.CreatedByUserID,
                        Title           = newsEntry.Title,
                        Body            = HtmlUtils.StripTags(HttpUtility.HtmlDecode(newsEntry.Description), false),
                        Tags            = newsEntry.ContentItem.Terms.Select(t => t.Name),
                        ModifiedTimeUtc = newsEntry.ContentItem.LastModifiedOnDate.ToUniversalTime(),
                        UniqueKey       = string.Format(Const.Prefix + "_{0}", newsEntry.EntryId),
                        Url             = Globals.NavigateURL(moduleInfo.TabID, portalSettings, "", null),
                        IsActive        = newsEntry.IsPublished(now)
                    });
                }
            }

            return(searchDocs);
        }
Пример #5
0
        protected override void LoadNewItem()
        {
            List <Term> terms = null;

            // Stream: get terms from module settings
            if (ModuleConfiguration.ModuleDefinition.DefinitionName == Const.StreamModuleDefinitionName)
            {
                var settings = new StreamSettingsRepository().GetSettings(ModuleConfiguration);
                terms = settings.IncludeTerms;
            }

            // Agent: get terms from current tab
            if (ModuleConfiguration.ModuleDefinition.DefinitionName == Const.AgentModuleDefinitionName)
            {
                terms = PortalSettings.ActiveTab.Terms;
            }

            termsTerms.Terms    = terms ?? new List <Term> ();
            termsTerms.PortalId = PortalId;
            termsTerms.DataBind();

            buttonUpdate.Text = LocalizeString("Add.Text");
        }