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"); }
// 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); }
// 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)); }
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); }
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"); }