Example #1
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        //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);
        }