Beispiel #1
0
 public IActionResult GetRejectedSubmission(RejectedSubmissionGridSearchModel model)
 {
     if (User.IsInRole(RoleName.SectionEditor))
     {
         return(Ok(HttpContext.RequestServices.GetService <ISubmissionService>().GetRejectedSubmissions(TenantID, model, ((JMSPrincipal)User).ApplicationUser.Id)));
     }
     return(Ok(HttpContext.RequestServices.GetService <ISubmissionService>().GetRejectedSubmissions(TenantID, model)));
 }
Beispiel #2
0
        public RejectedSubmissionGridModel GetRejectedSubmissions(string journalPath, RejectedSubmissionGridSearchModel model, long?editerID = null)
        {
            var context      = _serviceProvider.GetService <ApplicationDbContext>();
            var statuses     = new SubmissionStatus[] { SubmissionStatus.Submission, SubmissionStatus.Review };
            var dbSubmission = context.Submission.Where(x => x.User.Tenant.JournalPath == journalPath && x.SubmissionStatus == SubmissionStatus.Rejected);

            if (editerID.HasValue)
            {
                dbSubmission = dbSubmission.Where(x => x.EditorId == editerID);
            }
            var submissions = dbSubmission.Select(x => new
            {
                x.User.FirstName,
                x.User.LastName,
                x.UpdatedDate,
                x.Prefix,
                x.SubmissionStatus,
                SubmissionID = x.Id,
                x.Subtitle,
                x.Title
            });

            if (!string.IsNullOrEmpty(model.SrchText))
            {
                submissions = submissions.Where(x => EF.Functions.ILike(x.Subtitle, $"%{model.SrchText}%") || EF.Functions.ILike(x.Title, $"%{model.SrchText}%") || EF.Functions.ILike(x.Prefix, $"%{model.SrchText}%"));
            }
            if (!string.IsNullOrEmpty(model.Author))
            {
                submissions = submissions.Where(x => EF.Functions.ILike(x.FirstName + " " + x.LastName, $"%{model.Author}%"));
            }

            if (string.IsNullOrEmpty(model.sortOrder) || model.sortOrder == "desc")
            {
                submissions = submissions.OrderByDescending(x => x.UpdatedDate);
            }
            else
            {
                submissions = submissions.OrderBy(x => x.UpdatedDate);
            }
            return(new RejectedSubmissionGridModel
            {
                ItemsCount = submissions.Count(),
                Data = submissions.Skip((model.pageIndex - 1) * model.pageSize).Take(model.pageSize).ToList().Select(x => new RejectedSubmissionGridRowModel
                {
                    FirstName = x.FirstName,
                    LastName = x.LastName,
                    LastUpdated = x.UpdatedDate.ToString("dd MMM yyyy"),
                    Prefix = x.Prefix,
                    SubmissionID = x.SubmissionID,
                    SubTitle = x.Subtitle,
                    Title = x.Title
                })
            });
        }