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 }); }
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); }
public Page <IEnumerable <Student> > Search(SearchStudentDto searchDto) { return(_studentService.Search(searchDto)); }