public ActionResult ViewAllWorkers(string searchName, string orderBy, string roleSpec, string depID, string viewType) { ViewBag.Supervisor = User.IsInRole("Supervisor"); var data = _data.Worker.AllWorkers(); data = SortingAndFilteringData.SortAndFilterWorkers(searchName, orderBy, roleSpec, depID, data); if (User.IsInRole("Supervisor")) { var user = _data.ApplicationUser.FindUserByID(User.Identity.GetUserId()); data = FilteringServices.FilterWorkersPerDepartment(user.Worker.DepartmentID, data); } ViewBag.SortOptions = _fillViewBag.WorkerSortingOptionsViewBag(); ViewBag.RoleOptions = _fillViewBag.AvailableRolesFilteringViewBag(); ViewBag.DepartmentOptions = _fillViewBag.AvailableDepartmentsFilteringViewBag(); ViewBag.Names = _fillViewBag.GetWorkerNamesForAutocomplete(data); ViewBag.Parameters = new List <string> { searchName, orderBy, roleSpec, depID }; if (string.IsNullOrEmpty(viewType)) { return(View(data)); } else { return(View("ViewAllWorkersList", data)); } }
/// <summary> /// Give me the List of Workers to sort and the parameters to filter and sort and I will do the work and return /// </summary> /// <param name="searchName"></param> /// <param name="orderBy"></param> /// <param name="roleSpec"></param> /// <param name="depID"></param> /// <param name="data"></param> public static List <Worker> SortAndFilterWorkers(string searchName, string orderBy, string roleSpec, string depID, List <Worker> data) { if (!string.IsNullOrEmpty(searchName)) { data = FilteringServices.FilterWorkerByName(searchName, data); } if (!string.IsNullOrEmpty(orderBy)) { data = SortingServices.SortWorker(orderBy, data); } if (!string.IsNullOrEmpty(roleSpec)) { data = FilteringServices.FilterWorkersInRole(roleSpec, data); } if (!string.IsNullOrEmpty(depID)) { data = FilteringServices.FilterWorkersPerDepartment(int.Parse(depID), data); } return(data); }