Пример #1
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);
        }
Пример #2
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));
        }