Bitboxx.DNNModules.BBImageStory.BusinessController.GetModifiedSearchDocuments C# (CSharp) Method

GetModifiedSearchDocuments() public method

public GetModifiedSearchDocuments ( DotNetNuke.Entities.Modules.ModuleInfo modInfo, System.DateTime beginDate ) : IList
modInfo DotNetNuke.Entities.Modules.ModuleInfo
beginDate System.DateTime
return IList
        public override IList<SearchDocument> GetModifiedSearchDocuments(ModuleInfo modInfo, DateTime beginDate)
        {
            string partition = (string)modInfo.ModuleSettings["Partitioning"];

            int partModuleId = -1;
            int partPortalId = -1;

            switch (partition)
            {
                case "1":
                    partModuleId = modInfo.ModuleID;
                    break;
                case "2":
                    partPortalId = modInfo.PortalID;
                    break;
                case "3":
                    partPortalId = modInfo.PortalID;
                    partModuleId = modInfo.ModuleID;
                    break;
            }

            var searchDocuments = new List<SearchDocument>();

            LocaleController lc = new LocaleController();
            Dictionary<string, Locale> loc = lc.GetLocales(modInfo.PortalID);
            foreach (KeyValuePair<string, Locale> item in loc)
            {
                string cultureCode = item.Value.Culture.Name;
                List<StoryInfo> stories = DbController.Instance.GetStories(partModuleId, partPortalId, "STORY", cultureCode, false).ToList();
                

                foreach (StoryInfo story in stories)
                {
                    DateTime lastmodified = ((DateTime)story.LastModifiedOnDate).ToUniversalTime();

                    if (lastmodified > beginDate.ToUniversalTime() && lastmodified < DateTime.UtcNow)
                    {
                        var strContent = HtmlUtils.Clean(story.Story, false);

                        // Get the description string
                        var description = strContent.Length <= 500 ? strContent : HtmlUtils.Shorten(strContent, 500, "...");

                        var searchDoc = new SearchDocument
                        {
                            UniqueKey = story.StoryId.ToString(),
                            PortalId = modInfo.PortalID,
                            ModuleId = modInfo.ModuleID,
                            ModuleDefId = modInfo.ModuleDefID,
                            Title = story.Title,
                            Description = description,
                            Body = strContent,
                            ModifiedTimeUtc = lastmodified,
                            AuthorUserId = (story.CreatedByUserID ?? -1),
                            CultureCode = cultureCode,
                            IsActive = (story.StartDate == null || story.StartDate < DateTime.Now) && (story.EndDate == null || story.EndDate + new TimeSpan(1, 0, 0, 0) >= DateTime.Now),
                            SearchTypeId = 1,
                            QueryString = "#view/"+story.StoryId.ToString()
                        };

                        if (modInfo.Terms != null && modInfo.Terms.Count > 0)
                        {
                            searchDoc.Tags = CollectHierarchicalTags(modInfo.Terms);
                        }

                        searchDocuments.Add(searchDoc);
                    }
                }

            }
            return searchDocuments;
        }