/// <summary> /// Filter to only current page and add pagination data to controls /// </summary> /// <param name="model"></param> /// <param name="currentPage"></param> /// <param name="pageSize"></param> /// <returns></returns> public static ServiceRequestApprovalModel Paginate(ServiceRequestApprovalModel model, int currentPage, int pageSize) { model.Controls.CurrentPage = currentPage; //set current page if (model.ServiceRequests.Count > pageSize) { model.Controls.TotalPages = (model.ServiceRequests.Count + pageSize - 1) / pageSize; //number of pages model.ServiceRequests = model.ServiceRequests.Skip(pageSize * currentPage).Take(pageSize).ToList(); //select current page } return(model); }
/// <summary> /// Returns all service request approval model for the user Id, ordered by Id /// </summary> /// <param name="srController">service request controller</param> /// <param name="userManager"></param> /// <param name="userId">requesting user</param> /// <param name="currentPage">current page</param> /// <param name="pageSize"></param> /// <returns></returns> public static ServiceRequestApprovalModel GetAllRequests(IServiceRequestController srController, IUserManager userManager, int userId, int currentPage, int pageSize) { var model = new ServiceRequestApprovalModel { Controls = new ServiceRequestApprovalControls() }; var srList = (from s in srController.GetServiceRequestsForRequestorId(userId, userId) where s.State != ServiceRequestState.Cancelled orderby s.Id descending select s).ToList(); model.ServiceRequests = ConvertToTableModel(userManager, srList, userId); Paginate(model, currentPage, pageSize); model.Controls.FilterText = "All My Requests"; return(model); }
/// <summary> /// Get Department Request approvals and filter /// </summary> /// <param name="srController"></param> /// <param name="userManager"></param> /// <param name="userId"></param> /// <param name="currentPage"></param> /// <param name="pageSize"></param> /// <param name="state"></param> /// <returns></returns> public static ServiceRequestApprovalModel GetDepartmentRequests(IServiceRequestController srController, IUserManager userManager, int userId, int currentPage, int pageSize, ServiceRequestState state) { var model = new ServiceRequestApprovalModel { Controls = new ServiceRequestApprovalControls() }; var srList = (from s in srController.GetServiceRequestsForApproverId(userId) where s.State == state orderby s.Id descending select s).ToList(); model.ServiceRequests = ConvertToTableModel(userManager, srList, userId); Paginate(model, currentPage, pageSize); model.Controls.FilterText = $"Filtered Department Requests by {state}"; return(model); }
/// <summary> /// display the home/portal page /// </summary> /// <returns></returns> public ActionResult Index(int pageId = 0) { //default of my service requests filtered by incomplete ServiceRequestApprovalModel model = new ServiceRequestApprovalModel(); try { model = ServiceRequestApprovalHelper.GetMyRequests(_serviceRequestController, _userManager, UserId, pageId, _pageSize, ServiceRequestState.Incomplete); } catch (Exception exception) { TempData["MessageType"] = WebMessageType.Failure; TempData["Message"] = $"Failed to retrieve any service requests, {exception.Message}"; } if (model.Controls == null) { model.Controls = new ServiceRequestApprovalControls(); } return(View("Index", model)); }
/// <summary> /// Returns all service request approval model for the user Id, filtered, and ordered by id /// </summary> /// <param name="srController">service request controller</param> /// <param name="userManager"></param> /// <param name="userId">requesting user</param> /// <param name="currentPage">current page</param> /// <param name="pageSize">page size</param> /// <param name="state">state to filter by</param> /// <returns></returns> public static ServiceRequestApprovalModel GetMyRequests(IServiceRequestController srController, IUserManager userManager, int userId, int currentPage, int pageSize, ServiceRequestState state) { var model = new ServiceRequestApprovalModel { Controls = new ServiceRequestApprovalControls() }; // retrieve filtered data var srList = (from s in srController.GetServiceRequestsForRequestorId(userId, userId) where s.State == state && s.State == state orderby s.Id descending select s).ToList(); model.ServiceRequests = ConvertToTableModel(userManager, srList, userId); Paginate(model, currentPage, pageSize); model.Controls.FilterText = $"Filtered My Requests by {state}"; model.Controls.FilterState = state; //hints to pagination model.Controls.FilterStateRequired = true; return(model); }
/// <summary> /// Filter My Requests, all (except cancelled) /// </summary> /// <param name="pageId"></param> /// <returns></returns> public ActionResult AllServiceRequests(int pageId = 0) { ServiceRequestApprovalModel model = new ServiceRequestApprovalModel(); try { model = ServiceRequestApprovalHelper.GetAllRequests(_serviceRequestController, _userManager, UserId, pageId, _pageSize); } catch (Exception exception) { TempData["MessageType"] = WebMessageType.Failure; TempData["Message"] = $"Failed to retrieve any service requests, {exception.Message}"; } if (model.Controls != null) { model.Controls.FilterAction = "AllServiceRequests"; } else { model.Controls = new ServiceRequestApprovalControls(); } return(View("Index", model)); }