Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }