public IActionResult Index(string sortOrder, string searchString, string currentFilter, int?page, int?requestsPerPage) { this.viewModel = this.requestSorter.ConfigureSorting(sortOrder, currentFilter, searchString); var pageNumber = page ?? DEFAULT_PAGE_NUMBER; var requestsCount = requestsPerPage ?? DEFAULT_REQUESTS_PER_PAGE; userId = userManager.GetUserId(User); isTechnician = User.IsInRole(WebConstants.AdminRole) || User.IsInRole(WebConstants.HelpdeskRole); IQueryable <Request> requests; if (!String.IsNullOrEmpty(searchString)) { requests = this.requestService.GetBySearch(userId, isTechnician, searchString); } else if (!String.IsNullOrEmpty(currentFilter)) { requests = this.requestService.GetByFilter(userId, isTechnician, currentFilter); } else { requests = this.requestService.GetAll(userId, isTechnician); } requests = this.requestSorter.SortRequests(requests, sortOrder); var requestViewModels = this.mapper.Map <ICollection <RequestListingViewModel> >(requests).ToPagedList(pageNumber, requestsCount); this.viewModel.RequestListingViewModels = requestViewModels; return(this.View(this.viewModel)); }
public IActionResult Index(string sortOrder, string currentFilter, int?page, int?requestsPerPage, SearchModel searchModel) { RequestSortingViewModel model = this.requestSorter.ConfigureSorting(sortOrder, currentFilter, searchModel); if (model.RequestsPerPage != requestsPerPage) { model.RequestsPerPage = requestsPerPage; } var pageNumber = page ?? DEFAULT_PAGE_NUMBER; var requestsCount = model.RequestsPerPage ?? DEFAULT_REQUESTS_PER_PAGE; string userId = userManager.GetUserId(User); bool isTechnician = User.IsInRole(WebConstants.AdminRole) || User.IsInRole(WebConstants.HelpdeskRole); bool hasFilter = !String.IsNullOrEmpty(currentFilter) || currentFilter == "All"; bool hasSearch = HasSearchCriteria(searchModel); IQueryable <Request> requests = Enumerable.Empty <Request>().AsQueryable(); if (hasFilter) { requests = this.requestService.GetByFilter(userId, isTechnician, currentFilter); } if (hasSearch) { requests = this.requestService.GetBySearch(userId, isTechnician, searchModel, requests); } if (!hasFilter && !hasSearch) { requests = this.requestService.GetAll(userId, isTechnician); } var listModelRequests = requests.ProjectTo <RequestListingViewModel>(); listModelRequests = this.requestSorter.SortRequests(listModelRequests, sortOrder); model.Requests = listModelRequests.ToPagedList(pageNumber, requestsCount); model.Statuses = this.requestService.GetAllStatuses().Select(s => new SelectListItem { Text = s.Name, Value = s.Id.ToString() }).ToArray(); return(this.View(model)); }
public RequestSortingViewModel ConfigureSorting(string sortOrder, string currentFilter, string searchString) { var viewModel = new RequestSortingViewModel(); viewModel.CurrentSort = sortOrder; viewModel.CurrentFilter = currentFilter; viewModel.CurrentSearch = searchString; viewModel.NameSort = sortOrder == "Name" ? "name_desc" : "Name"; viewModel.StartDateSort = sortOrder == "StartDate" ? "startDate_desc" : "StartDate"; viewModel.EndDateSort = sortOrder == "EndDate" ? "endDate_desc" : "EndDate"; viewModel.IdSort = sortOrder == "Id" ? "id_desc" : "Id"; viewModel.StatusSort = sortOrder == "Status" ? "status_desc" : "Status"; viewModel.SubjectSort = sortOrder == "Subject" ? "subject_desc" : "Subject"; viewModel.AssignedToSort = sortOrder == "AssignedTo" ? "assignedTo_desc" : "AssignedTo"; return(viewModel); }
//Prepares the view model public RequestSortingViewModel ConfigureSorting(string sortOrder, string currentFilter, SearchModel searchModel) { var viewModel = new RequestSortingViewModel { CurrentSort = sortOrder, CurrentFilter = currentFilter, CurrentSearch = searchModel, NameSort = sortOrder == "Name" ? "name_desc" : "Name", StartDateSort = sortOrder == "StartDate" ? "startDate_desc" : "StartDate", EndDateSort = sortOrder == "EndDate" ? "endDate_desc" : "EndDate", IdSort = sortOrder == "Id" ? "id_desc" : "Id", StatusSort = sortOrder == "Status" ? "status_desc" : "Status", SubjectSort = sortOrder == "Subject" ? "subject_desc" : "Subject", AssignedToSort = sortOrder == "AssignedTo" ? "assignedTo_desc" : "AssignedTo" }; return(viewModel); }