Exemplo n.º 1
0
        public async Task<IEnumerable<Request>> FilterRequestsAsync(RequestSearch specifiedRequest, IQueryable<Request> requests)
        {
            if (specifiedRequest.Description != null)
            {
                requests = requests.Where(x => x.Description.Contains(specifiedRequest.Description));
            }

            if (specifiedRequest.Location != null)
            {
                requests = requests.Where(x => x.Location.Contains(specifiedRequest.Location));
            }

            if (specifiedRequest.NullableCreatedDate != null)
            {
                requests = requests.Where(x => x.CreatedDate == specifiedRequest.NullableCreatedDate);
            }

            if (specifiedRequest.NullableEndDate != null)
            {
                requests = requests.Where(x => x.EndDate == specifiedRequest.NullableEndDate);
            }

            if (specifiedRequest.RequestStatus != RequestStatus.All)
            {
                switch (specifiedRequest.RequestStatus)
                {
                    case RequestStatus.Unassigned:
                        requests = requests.Where(x => x.Completed == false && !x.AssigneeId.HasValue);
                        break;
                    case RequestStatus.Assigned:
                        requests = requests.Where(x => x.Completed == false && x.AssigneeId.HasValue);
                        break;
                    case RequestStatus.Completed:
                        requests = requests.Where(x => x.Completed == true);
                        break;
                    default:
                        throw new ArgumentException("A valid request status was not selected.");
                }
            }
            return await requests.ToListAsync();
        }
Exemplo n.º 2
0
        public async Task<ActionResult> VolunteerRequestIndex(RequestSearch specifiedRequest)
        {
            var volunteersRequest = await _requestSvc.GetRequestForUserAsync(_webSecurity.CurrentUserId);

            var openRequests = await _requestSvc.GetOpenRequestsAsync();

            return View("VolunteerRequestAssignment", new VolunteerRequestIndexViewModel()
            {
                RequestAssignedToVolunteer = volunteersRequest,
                OpenRequests = openRequests
            });
        }
Exemplo n.º 3
0
        public async Task<ActionResult> Filter(RequestSearch specifiedRequest, string sortField, string sortOrder)
        {
            IQueryable<Request> requests = db.Requests.Include(r => r.Creator).Include(r => r.Assignee);

            IEnumerable<Request> filteredRequests = await _requestSvc.FilterRequestsAsync(specifiedRequest, requests);

            IOrderedEnumerable<Request> sortedRequests = _requestSvc.SortRequests(sortField, sortOrder, filteredRequests);

            ViewBag.SortOrderParam   = String.IsNullOrEmpty(sortOrder) ? "desc" : sortOrder;
            ViewBag.SortFieldParam   = String.IsNullOrEmpty(sortOrder) ? "EndDate" : sortField;
            ViewBag.SpecifiedRequest = specifiedRequest;

            return View("Index", new AdminRequestIndexViewModel()
            {
                Requests = sortedRequests,
                RequestSearch = specifiedRequest
            });
        }