/// <summary> /// Gets the last article publicated /// </summary> /// <param name="page"></param> /// <param name="count"></param> /// <param name="noCache"></param> /// <returns></returns> public IEnumerable <Article> GetLastArticles(int page, int count, bool noCache = false) { #if DEBUG this.WriteDebugLine(); #endif var query = $"last:{page}:{count}"; var articles = cacheProvider.GetQuery(query); if (!articles.Any() || noCache) { #if DEBUG this.WriteDebugLine(message: "No cache"); #endif articles = GetReadableArticles(noCache) .Skip((page - 1) * count) .Take(count) .ToList(); cacheProvider.SetQuery(query, articles); } #if DEBUG this.WriteDebugLine(message: $"return {articles.Count()} articles"); #endif return(articles); }
/// <summary> /// Gets all active pages /// </summary> /// <returns></returns> public IEnumerable <Page> GetActivePages() { var query = string.Format(PagesQueryFormat, AllPagesQueryPart); var pages = cacheProvider.GetQuery(query); if (!pages.Any()) { pages = GetAll().Where(p => p.Active); foreach (var page in pages) { page.Author ??= configuration.DefaultAuthor; } cacheProvider.SetQuery(query, pages); } return(pages); }