async Task <EntityViewModel <Topic, Reply> > GetViewModel(EntityViewModel <Topic, Reply> model) { var entity = await _entityStore.GetByIdAsync(model.Options.Id); if (entity == null) { throw new ArgumentNullException(); } var results = await _replyService .ConfigureQuery(async q => { // Hide private? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewHiddenReplies)) { q.HideHidden.True(); } // Hide spam? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewSpamReplies)) { q.HideSpam.True(); } // Hide deleted? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewDeletedReplies)) { q.HideDeleted.True(); } }) .GetResultsAsync(model.Options, model.Pager); // Set total on pager model.Pager.SetTotal(results?.Total ?? 0); model.Entity = entity; model.Replies = results; return(model); //// Return view model //return new EntityViewModel<Topic, Reply> //{ // Options = options, // Pager = pager, // Entity = entity, // Replies = results //}; }
async Task <EntityViewModel <Question, Answer> > GetViewModel( EntityOptions options, PagerOptions pager) { var entity = await _entityStore.GetByIdAsync(options.Id); if (entity == null) { throw new ArgumentNullException(); } var results = await _replyService .ConfigureQuery(async q => { // Hide private? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewHiddenAnswers)) { q.HideHidden.True(); } // Hide spam? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewSpamAnswers)) { q.HideSpam.True(); } // Hide deleted? if (!await _authorizationService.AuthorizeAsync(HttpContext.User, Permissions.ViewDeletedAnswers)) { q.HideDeleted.True(); } }) .GetResultsAsync(options, pager); // Set total on pager pager.SetTotal(results?.Total ?? 0); // Return view model return(new EntityViewModel <Question, Answer> { Options = options, Pager = pager, Entity = entity, Replies = results }); }