示例#1
0
        public SubmissionGridModel GetSubmissions(long userID, SubmissionGridSearchModel model)
        {
            var context       = _serviceProvider.GetService <ApplicationDbContext>();
            var allSubmission = context.Submission.Where(x => x.UserID == userID);

            if (!string.IsNullOrEmpty(model.Title))
            {
                allSubmission = allSubmission.Where(x => EF.Functions.ILike(x.Title, model.Title));
            }
            if (!string.IsNullOrEmpty(model.Keywords))
            {
                allSubmission = allSubmission.Where(x => EF.Functions.ILike(x.Keywords, $"%{model.Keywords}%"));
            }
            if (model.Status.HasValue)
            {
                allSubmission = allSubmission.Where(x => x.SubmissionStatus == model.Status.Value);
            }
            var sortField = "UpdatedDate";
            var sortOrder = "desc";

            if (!string.IsNullOrEmpty(model.sortField) && !string.IsNullOrEmpty(model.sortOrder))
            {
                sortField = model.sortField; sortOrder = model.sortOrder;
            }
            var filteredSubmission = allSubmission.Select(x => new
            {
                x.Id,
                x.Title,
                x.Keywords,
                x.UpdatedDate,
                x.SubmissionStatus,
                x.CreatedDate,
            });

            filteredSubmission = filteredSubmission.OrderBy(sortField, sortOrder == "asc");
            var submissions = filteredSubmission.Skip((model.pageIndex - 1) * model.pageSize).Take(model.pageSize);

            return(new SubmissionGridModel
            {
                Data = submissions.Select(x => new SubmissionGridRowModel
                {
                    Keywords = x.Keywords,
                    LastActivityDate = x.UpdatedDate.ToString("dd MMM yyyy"),
                    SubmissionDate = x.CreatedDate.ToString("dd MMM yyyy"),
                    Title = x.Title,
                    SubmissionId = x.Id,
                    Status = x.SubmissionStatus.ToString()
                }).ToList(),
                ItemsCount = allSubmission.Count()
            });
        }
示例#2
0
 public IActionResult GetSubmission(SubmissionGridSearchModel model)
 {
     return(Ok(HttpContext.RequestServices.GetService <ISubmissionService>().GetSubmissions(((JMSPrincipal)User).ApplicationUser.Id, model)));
 }