Example #1
0
        public async Task <IEnumerable <Storing.Wiki> > GetPopularWikisAsync(uint count, bool description = false)
        {
            IEnumerable <Models.Wiki> wikis = await(from wiki in _db.Wiki
                                                    orderby wiki.HitCount descending
                                                    select wiki)
                                              .Take((int)count).ToListAsync();

            return(await Task.WhenAll(wikis.Select(async w =>
            {
                Storing.Wiki wiki = Mapper.Map(w);
                wiki.HtmlDescription = (description) ? await GetHTMLAsync(w.Id) : null;
                return wiki;
            })));
        }
Example #2
0
        private async Task <Storing.Wiki> GetWikiWithHTMLAsync(int wikiId)
        {
            var modelsWiki = await(from inwiki in _db.Wiki
                                   where inwiki.Id == wikiId
                                   select inwiki)
                             .Include(o => o.WikiHtmlDescription)
                             .SingleAsync();

            modelsWiki.HitCount += 1;
            var dbSave = _db.SaveChangesAsync();

            Storing.Wiki wiki = Mapper.Map(modelsWiki);
            if (wiki.HtmlDescription == null)
            {
                wiki.HtmlDescription = await GetHTMLAsync(wikiId);
            }
            await dbSave;

            return(wiki);
        }