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() }); }
public IActionResult GetSubmission(SubmissionGridSearchModel model) { return(Ok(HttpContext.RequestServices.GetService <ISubmissionService>().GetSubmissions(((JMSPrincipal)User).ApplicationUser.Id, model))); }