public ArticlesCountViewModel Execute(ArticlesCountInputModel inputModel) { IDocumentCollection stats; var draftCount = _database .Statistics <Article>(out stats) .Where(x => !x.IsPublished) .LongCount(); var history = _database.Query <Article>() .Where(x => x.PublishedDate > DateTime.Now.Subtract(new TimeSpan(30, 0, 0, 0))) .ToList() .GroupBy(x => x.PublishedDate.Date) .Select(x => new DateCountViewModal { PostedDate = x.Key.ToString("MM/dd"), DraftArticleCount = x.Sum(a => a.IsPublished ? 0 : 1), PostedArticleCount = x.Sum(a => a.IsPublished ? 1 : 0), }); return(new ArticlesCountViewModel { Total = stats.Count, Draft = draftCount, History = history }); }
public CommentsCountViewModel Execute(CommentsCountInputModel inputModel) { IDocumentCollection info; var spamCount = _database .Statistics <Comment>(out info) .Where(x => x.IsPotentialSpam) .LongCount(); var history = _database.Query <Comment>() .Where(x => x.PublishedDate > DateTime.Now.Subtract(new TimeSpan(30, 0, 0, 0))) .ToList() .GroupBy(x => x.PublishedDate.Date) .Select(x => new DateCountViewModal { PostedDate = x.Key.ToString("MM/dd"), SpamCount = x.Sum(a => a.IsPotentialSpam ? 1 : 0), PostedCommentsCount = x.Sum(a => a.IsApproved ? 1 : 0), }); return(new CommentsCountViewModel { Total = info.Count, Spam = spamCount, History = history }); }
public ArticleViewModel Execute(ArticleInputModel inputModel) { var article = _database.Query <Article>().FirstOrDefault(x => x.Id == inputModel.Uri); if (article == null) { return(new ArticleViewModel()); } var user = _database.Query <User>().SingleOrDefault(u => u.Id == article.AuthorId); var model = article.DynamicMap <ArticleViewModel>(); model.Author = user.FullName(); return(model); }
public BasicInformationViewModel Execute(BasicInformationInputModel inputModel) { var user = _database.Query <User>() .SingleOrDefault(x => x.Id == _securityContext.CurrentIdentity.Name) ?? new User(); return(user.DynamicMap <BasicInformationViewModel>()); }
public RecentDraftsViewModel Execute(RecentDraftsInputModel inputModel) { var articles = _database.Query <Article>() .OrderByDescending(x => x.PublishedDate) .Where(x => !x.IsPublished) .Take(5); return(new RecentDraftsViewModel(articles.Select(x => x.DynamicMap <RecentDraftViewModel>()))); }
public AuthorsViewModel Execute(AuthorsInputModel inputModel) { var authors = _database.Query <User>().ToList(); return(new AuthorsViewModel { Authors = authors.Select(x => x.DynamicMap <AuthorViewModel>()) }); }
public IEnumerable <RecentCommentViewModel> Execute(RecentCommentInputModel inputModel) { var recentComments = _database .Query <Comment>() .OrderByDescending(x => x.PublishedDate) .Take(5); return(recentComments.Select(x => x.DynamicMap <RecentCommentViewModel>())); }
public DeleteArticleViewModel Execute(DeleteArticleInputModel inputModel) { _database.Delete <Article>(inputModel.Id); _database.Query <Comment>() .Where(x => x.ArticleUri == inputModel.Id) .Each(x => _database.Delete(x)); return(new DeleteArticleViewModel()); }
public ComposeViewModel Execute(ComposeInputModel inputModel) { if (string.IsNullOrEmpty(inputModel.Id)) { return(new ComposeViewModel()); } var article = _database.Query <Article>() .First(x => x.Id == inputModel.Id); return(article.DynamicMap <ComposeViewModel>()); }
public ArchiveViewModel Execute(ArchiveInputModel inputModel) { var articles = _database.Query <Article>() .Where(x => x.IsPublished) .ToList(); return(new ArchiveViewModel { Items = articles .GroupBy(x => x.PublishedDate.Year, x => x.DynamicMap <ArchiveItemViewModel>()) .ToDictionary(x => x.Key, x => x.ToList()) }); }
public DeleteCommentViewModel Execute(DeleteCommentInputModel inputModel) { var comment = _database.Query <Comment>() .FirstOrDefault(x => x.Id == inputModel.Id); if (comment != null) { _database.Decrement <Article>(comment.ArticleUri, x => x.CommentsCount); _database.Delete(comment); } return(new DeleteCommentViewModel()); }
public ArticleSummariesViewModel Execute(ArticleSummariesInputModel inputModel) { var articles = _database.Query <Article>() .Where(x => x.IsPublished) .OrderByDescending(x => x.PublishedDate) .Take(10).ToList(); var summaries = articles.Select(a => { //TODO: improve var user = _database.Query <User>().SingleOrDefault(u => u.Id == a.AuthorId); var article = a.DynamicMap <ArticleSummaryViewModel>(); article.Author = user.FullName(); return(article); }); return(new ArticleSummariesViewModel { Summaries = summaries }); }
public CommentsViewModel Execute(CommentsInputModel inputModel) { var comments = _database .Query <Comment>() .Where(x => x.ArticleUri.Equals(inputModel.Uri)) .OrderByDescending(x => x.PublishedDate) .ToList(); return(new CommentsViewModel { Uri = inputModel.Uri, Comments = comments.Select(x => x.DynamicMap <CommentViewModel>()) }); }
public ManageCommentsViewModel Execute(ManageCommentsInputModel inputModel) { long totalCount; var comments = _database .Query <Comment>() // .WithCount<Comment>(out totalCount) //.AsQueryable<Comment>() .FilteryBySpam(inputModel.ShowSpam) .OrderByDescending(x => x.PublishedDate) .Page(inputModel) .ToList(); return(new ManageCommentsViewModel { Comments = comments.Select(x => x.DynamicMap <ManageCommentViewModel>()), //TotalPages = totalCount.TotalPages(inputModel.Count), ShowSpam = inputModel.ShowSpam }); }