private IQueryable <Student> BuildSearchQuery(SearchStudentDto searchDto)
        {
            var query = Context.Set <Student>().AsQueryable();

            if (!string.IsNullOrWhiteSpace(searchDto.SearchTerms))
            {
                query = query.Where(s => s.FirstName.ToLower().Contains(searchDto.SearchTerms.ToLower()) || s.LastName.ToLower().Contains(searchDto.SearchTerms.ToLower()));
            }
            if (!string.IsNullOrWhiteSpace(searchDto.Gender))
            {
                query = query.Where(s => s.Gender.ToLower() == searchDto.Gender.ToLower());
            }
            if (searchDto.StartBirthDate != null)
            {
                query = query.Where(s => s.BirthDate >= searchDto.StartBirthDate.Value);
            }
            if (searchDto.EndBirthDate != null)
            {
                query = query.Where(s => s.BirthDate <= searchDto.EndBirthDate.Value);
            }
            if (!string.IsNullOrWhiteSpace(searchDto.Id))
            {
                query = query.Where(s => s.Id == searchDto.Id);
            }
            return(query);
        }
        public IEnumerable <Student> Search(SearchStudentDto searchDto, ref long total)
        {
            total = BuildSearchQuery(searchDto).Count();
            var listQ = BuildSearchQuery(searchDto);

            return(listQ
                   .OrderBy(s => s.LastName)
                   .Skip(searchDto.PageSize * (searchDto.PageIndex - 1))
                   .Take(searchDto.PageSize).ToList());
        }
        public Page <IEnumerable <Student> > Search(SearchStudentDto searchDto)
        {
            long total = 0;
            var  data  = _baseRepository.Search(searchDto, ref total);

            return(new Page <IEnumerable <Student> > {
                PageSize = searchDto.PageSize,
                CurrentPage = searchDto.PageIndex,
                Result = data,
                Total = total
            });
        }
Example #4
0
        public void SearchStudents_Test()
        {
            //Arrange
            var searhDto = new SearchStudentDto {
                Id             = "123",
                StartBirthDate = new DateTime(1950, 1, 1),
                EndBirthDate   = DateTime.Now,
                SearchTerms    = "S",
                Gender         = "male"
            };
            //Act
            var result = _studentService.Search(searhDto);

            //Assert
            PrintOutput(result);
        }
Example #5
0
 public Page <IEnumerable <Student> > Search(SearchStudentDto searchDto)
 {
     return(_studentService.Search(searchDto));
 }