public ActionResult ArticlesForReview(ArticlesReviewersViewModel articlesReviewersViewModel) { ApplicationDbContext dbContext = new ApplicationDbContext(); List <Article> articles = new List <Article>(); var userId = User.Identity.GetUserId(); articles = dbContext.Articles.Where(x => x.Reviews.Any(y => y.Reviewer.UserName == User.Identity.Name)).OrderBy(a => a.Reviews.Count).Take(10).ToList(); if (!String.IsNullOrEmpty(articlesReviewersViewModel.SearchPhrase)) { articles = articles.Where(a => a.Title.ToLower().Contains(articlesReviewersViewModel.SearchPhrase.ToLower()) || a.Status.ToString().ToLower().Contains(articlesReviewersViewModel.SearchPhrase.ToLower()) || a.ArticleName.ToLower().Contains(articlesReviewersViewModel.SearchPhrase.ToLower())).ToList(); } switch (articlesReviewersViewModel.SortBy) { case ArticleSortBy.Title: articles = articles.OrderBy(r => r.Title).ToList(); break; case ArticleSortBy.Status: articles = articles.OrderBy(r => r.Status).ToList(); break; case ArticleSortBy.ArticleName: articles = articles.OrderBy(r => r.ArticleName).ToList(); break; } ArticlesForReviewPartialModel articlesForReviewPartialModel = new ArticlesForReviewPartialModel { MaxPages = (int)Math.Ceiling((double)articles.Count / (double)articlesReviewersViewModel.ResultsForPage), Articles = articles.Skip((articlesReviewersViewModel.CurrentPage - 1) * articlesReviewersViewModel.ResultsForPage).Take(articlesReviewersViewModel.ResultsForPage).ToList(), }; return(PartialView("_ArticlesForReview", articlesForReviewPartialModel)); }
public ActionResult ArticlesForReview() { ArticlesReviewersViewModel articlesReviewersViewModel = new ArticlesReviewersViewModel(); articlesReviewersViewModel.Articles = dbContext.Articles.Where(x => x.Reviews.Any(y => y.Reviewer.UserName == User.Identity.Name)).OrderBy(a => a.Reviews.Count).Take(10).ToList(); articlesReviewersViewModel.CurrentPage = 1; articlesReviewersViewModel.ResultsForPage = 10; articlesReviewersViewModel.SortBy = Enums.ArticleSortBy.NumberOfAssignedReviewersAsc; articlesReviewersViewModel.NumberOfPages = (int)Math.Ceiling((double)dbContext.Articles.Count() / articlesReviewersViewModel.ResultsForPage); return(View(articlesReviewersViewModel)); }
public ActionResult ArticlesReviewers() { ArticlesReviewersViewModel arvm = new ArticlesReviewersViewModel(); ApplicationDbContext dbContext = new ApplicationDbContext(); arvm.Articles = dbContext.Articles.Where(a => a.Status != ArticleStatus.PositivelyReviewed && a.Status != ArticleStatus.NegativelyReviewed && a.Status != ArticleStatus.MinorChangesWithoutNewReview).OrderBy(a => a.Reviews.Count).Take(10).ToList(); arvm.CurrentPage = 1; arvm.ResultsForPage = 10; arvm.SortBy = Enums.ArticleSortBy.NumberOfAssignedReviewersAsc; arvm.NumberOfPages = (int)Math.Ceiling((double)dbContext.Articles.Count() / arvm.ResultsForPage); return(View(arvm)); }
public ActionResult ArticlesReviewers(ArticlesReviewersViewModel arvm) { ArticlesReviewersPartialModel nArpm = new ArticlesReviewersPartialModel(); ApplicationDbContext dbContext = new ApplicationDbContext(); List <Article> articles = new List <Article>(); articles = dbContext.Articles.Where(a => a.Status != ArticleStatus.PositivelyReviewed && a.Status != ArticleStatus.NegativelyReviewed && a.Status != ArticleStatus.MinorChangesWithoutNewReview).ToList(); if (!String.IsNullOrEmpty(arvm.SearchPhrase)) { articles = articles.Where(a => a.Title.ToLower().Contains(arvm.SearchPhrase.ToLower()) || a.MainAuthor.Name.ToLower().Contains(arvm.SearchPhrase.ToLower()) || a.MainAuthor.Surname.ToLower().Contains(arvm.SearchPhrase.ToLower())).ToList(); } switch (arvm.SortBy) { case ArticleSortBy.AddDate: articles = articles.OrderBy(a => a.Date).ToList(); break; case ArticleSortBy.Author: articles = articles.OrderBy(a => a.MainAuthor.Surname).ToList(); break; case ArticleSortBy.NumberOfAssignedReviewersAsc: articles = articles.OrderBy(a => a.Reviews.Count).ToList(); break; case ArticleSortBy.NumberOfAssignedReviewersDsc: articles = articles.OrderByDescending(a => a.Reviews.Count).ToList(); break; case ArticleSortBy.Title: articles = articles.OrderBy(a => a.Title).ToList(); break; } nArpm.MaxPages = (int)Math.Ceiling((double)articles.Count / (double)arvm.ResultsForPage); nArpm.Articles = articles.Skip((arvm.CurrentPage - 1) * arvm.ResultsForPage).Take(arvm.ResultsForPage).ToList(); return(PartialView("_ArticlesReviewers", nArpm)); }