示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }