//************************************************************************************************************************ private List <LanguageData> FetchItemVersionData(Item itemToProcess, string filterBy, string selectedLanguage) { return(SitecoreItemHelper.GetItemLanguages(itemToProcess, filterBy, selectedLanguage)); }
//************************************************************************************************************************ private List <VersionData> ExtractItemVersions(string contentRoot, Database objDatabase, bool includeChildItems, string contentType, string filterBy, string selectedLanguage) { try { Log.Info("*********************Sitecore Version Tracker: START-Extracting Item Versions **********************", this); var objVersionData = new List <VersionData>(); var contentRootItem = SitecoreItemHelper.GetItemByPath(contentRoot, objDatabase); if (contentRootItem != null) { if (includeChildItems) { // GetDescendants()- This can be optimized later (in next phase)... // As next update we would be adding pagination also... var allItems = contentRootItem.Axes.GetDescendants().ToList(); allItems.Add(contentRootItem); foreach (var itemToProcess in allItems) { objVersionData.Add(new VersionData { ItemGuid = itemToProcess.ID.ToGuid(), ItemPath = itemToProcess.Paths.FullPath, ItemName = itemToProcess.Name, TotalLanguages = SitecoreItemHelper.GetItemLanguageCount(itemToProcess), IsPageItem = SitecoreItemHelper.IsPageItem(itemToProcess), EditorUrl = itemToProcess.GetContentEditorUrl(), LanguageDataList = FetchItemVersionData(itemToProcess, filterBy, selectedLanguage) }); } } else { objVersionData.Add(new VersionData { ItemGuid = contentRootItem.ID.ToGuid(), ItemPath = contentRootItem.Paths.FullPath, ItemName = contentRootItem.Name, TotalLanguages = SitecoreItemHelper.GetItemLanguageCount(contentRootItem), IsPageItem = SitecoreItemHelper.IsPageItem(contentRootItem), EditorUrl = contentRootItem.GetContentEditorUrl(), LanguageDataList = FetchItemVersionData(contentRootItem, filterBy, selectedLanguage) }); } switch (contentType) { //filter by Page/data Item... case "0": return(objVersionData.Where(x => x.LanguageDataList.Any() && x.IsPageItem).ToList()); case "1": return(objVersionData.Where(x => x.LanguageDataList.Any() && (!x.IsPageItem)).ToList()); default: return(objVersionData.Where(x => x.LanguageDataList.Any()).ToList()); } } Log.Info("*********************Sitecore Version Tracker: END-Extracting Item Versions **********************", this); ltlReport.Text = CustomHelper.GetErrorMessage(Constants.Messages.ErrorOccured); return(new List <VersionData>()); } catch (Exception ex) { Log.Error("*********************Sitecore Version Tracker | Error while extracting versions data **********************", ex.Message); } return(new List <VersionData>()); }