public IEnumerable <ProjectDTO> GetFilteredAndSortedProjectList(SortAndFilterParamsDTO parameters) { IQueryable <Project> filteredProjectList = _unitOfWork .Projects.GetAll(); if (!string.IsNullOrEmpty(parameters.ManagerFilter)) { Guid guidManagerId = Guid.Parse(parameters.ManagerFilter); filteredProjectList = filteredProjectList.Where(p => p.ManagerId == guidManagerId); } if (!string.IsNullOrEmpty(parameters.PriorityFilter)) { int intPriorityValue = int.Parse(parameters.PriorityFilter); filteredProjectList = filteredProjectList.Where(p => p.Priority == intPriorityValue); } if (ValuesAreNotNull(parameters.DateStartFromFilter, parameters.DateStartToFilter)) { DateTime dateStartFromFilter = DateTime.Parse(parameters.DateStartFromFilter); DateTime dateStartToFilter = DateTime.Parse(parameters.DateStartToFilter); filteredProjectList = filteredProjectList .Where(p => p.DateStart >= dateStartFromFilter && p.DateStart <= dateStartToFilter); } IEnumerable <Project> filteredAndSortedList = SortProjectListByProperty(filteredProjectList, parameters.SortProperty); return(Mapper.Map <IEnumerable <ProjectDTO> >(filteredAndSortedList)); }
public ActionResult GetFilteredAndSortedProjectList() { string sortProperty = Request.Form["sortProperty"]; string dateStartFromFilter = Request.Form["dateStartFromFilter"]; string dateStartToFilter = Request.Form["dateStartToFilter"]; string priorityFilter = Request.Form["priorityFilter"]; string managerFilter = Request.Form["managerFilter"]; SortAndFilterParamsDTO sortAndFilterParams = new SortAndFilterParamsDTO { SortProperty = sortProperty, DateStartFromFilter = dateStartFromFilter, DateStartToFilter = dateStartToFilter, PriorityFilter = priorityFilter, ManagerFilter = managerFilter }; List <ProjectDTO> projectDTOFilteredAndSortedList = ProjectService .GetFilteredAndSortedProjectList(sortAndFilterParams) .ToList(); List <ProjectVM> projectVMFilteredAndSortedList = Mapper.Map <IEnumerable <ProjectVM> >(projectDTOFilteredAndSortedList).ToList(); return(PartialView(projectVMFilteredAndSortedList)); }
public void GetFilteredAndSortedProjectListReturnsFilteredByPriorityProjectList() { // Arrange SortAndFilterParamsDTO parameters = new SortAndFilterParamsDTO { PriorityFilter = mockProjectRepository.Projects.First().Priority.ToString() }; List <Project> projecstWithGivenPriority = mockProjectRepository.Projects.Where(p => p.Priority == int.Parse(parameters.PriorityFilter)).ToList(); // Act var projectList = ProjectService.GetFilteredAndSortedProjectList(parameters) as IEnumerable <ProjectDTO>; // Assert Assert.AreEqual(projecstWithGivenPriority.Count(), projectList.Count()); Assert.IsTrue(projectList.Any(p => p.Id == projecstWithGivenPriority.First().Id)); }