private async Task <IEnumerable <JobSummary> > GetFilteredOpenJobsForUser(User user, CancellationToken cancellationToken) { var openRequests = await _requestService.GetOpenJobsAsync(user, false, cancellationToken); if (openRequests == null) { return(null); } var filterSet = await _filterService.GetDefaultSortAndFilterSet(JobSet.UserOpenRequests_NotMatchingCriteria, null, new List <JobStatuses> { JobStatuses.Open }, user, cancellationToken); var filterRequest = new JobFilterRequest() { JobSet = JobSet.UserOpenRequests_NotMatchingCriteria, ResultsToShow = 1000, ResultsToShowIncrement = 20 }; filterRequest.UpdateFromFilterSet(filterSet); return(_filterService.SortAndFilterJobs(openRequests, filterRequest)); }
public async Task <IViewComponentResult> InvokeAsync(JobFilterViewModel jobFilterViewModel, CancellationToken cancellationToken) { if (jobFilterViewModel.FilterSet == null) { var jobStatuses = new List <JobStatuses>(); var user = await _authService.GetCurrentUser(HttpContext, cancellationToken); if (jobFilterViewModel.JobFilterRequest.HighlightJobId.HasValue) { int jobId = jobFilterViewModel.JobFilterRequest.HighlightJobId.Value; var job = await _requestService.GetJobSummaryAsync(jobId, cancellationToken); if (job != null) { jobStatuses.Add(job.JobStatus); } } if (jobFilterViewModel.JobFilterRequest.HighlightRequestId.HasValue) { int requestId = jobFilterViewModel.JobFilterRequest.HighlightRequestId.Value; var request = await _requestService.GetRequestSummaryAsync(requestId, cancellationToken); if (request != null) { jobStatuses = request.JobStatusDictionary().Keys.ToList(); } } jobFilterViewModel.FilterSet = await _filterService.GetDefaultSortAndFilterSet(jobFilterViewModel.JobFilterRequest.JobSet, jobFilterViewModel.JobFilterRequest.GroupId, jobStatuses, user, cancellationToken); } jobFilterViewModel.JobFilterRequest.UpdateFromFilterSet(jobFilterViewModel.FilterSet); return(View("JobFilterPanel", jobFilterViewModel)); }