/// <summary> /// get pagewise blog teasers based on the filters like category & tag /// </summary> /// <param name="selectedPage"></param> /// <param name="categoryID"></param> /// <param name="tagID"></param> /// <param name="blogArchivePageItemID"></param> /// <param name="totalPages"></param> /// <returns></returns> private List <Blog> GetBlogTeasersByFilters(int selectedPage, string categoryID, string tagID, string blogArchivePageItemID, out int totalPages) { List <Item> blogPageItems = new List <Item>(); List <Blog> blogsByPage = new List <Blog>(); totalPages = 1; Item blogArchivePageItem = !string.IsNullOrEmpty(blogArchivePageItemID) ? SitecoreUtility.GetItem(new ID(blogArchivePageItemID)) : null; if (blogArchivePageItem != null && blogArchivePageItem.HasChildren) { blogPageItems = SitecoreUtility.GetItemsByTemplate(blogArchivePageItem, References.Templates.BlogPage.ID) .Where(x => x.Fields[References.Templates.Blog.Fields.IsActive].Value == "1").ToList(); if (blogPageItems != null && blogPageItems.Count > 0) { int maxTeasersPerPage = Constants.MaxBlogTeasersPerPage; if (!string.IsNullOrEmpty(categoryID)) { Item categoryItem = SitecoreUtility.GetItem(new ID(categoryID)); if (categoryItem != null && categoryItem.Fields[References.Templates.BlogCategory.Fields.IsActive].Value == "1") { blogPageItems = blogPageItems.Where(x => x.Fields[References.Templates.Blog.Fields.BlogCategories].Value.Contains(categoryID)).ToList(); } } else if (!string.IsNullOrEmpty(tagID)) { Item tagItem = SitecoreUtility.GetItem(new ID(tagID)); if (tagItem != null && tagItem.Fields[References.Templates.BlogTag.Fields.IsActive].Value == "1") { blogPageItems = blogPageItems.Where(x => x.Fields[References.Templates.Blog.Fields.BlogTags].Value.Contains(tagID)).ToList(); } } if (blogPageItems != null && blogPageItems.Count > 0) { foreach (Item item in blogPageItems) { blogsByPage.Add(new Blog(item)); } } if (blogsByPage != null && blogsByPage.Count > 0) { blogsByPage = blogsByPage.OrderByDescending(x => x.PostedDateTime).ToList(); blogsByPage = SitecoreUtility.GetPagewiseRecords <Blog>(blogsByPage, maxTeasersPerPage, selectedPage, out totalPages); } } } return(blogsByPage); }