public async Task SQLServer_User_Search_Test() { var data = FakeUserData.GetList(20); var service = GetService(data); var controller = new SQLServer_UserSearchController(service); var criteriaDto = new UsersLookUpCriteriaDto { Name = "Test1", Surname = "Test1", Interests = new List <UserInterestDto> { new UserInterestDto { Id = 1 } } }; var res = await controller.GetUsersByCriteria(1, criteriaDto, 7); var obj = res as OkObjectResult; Assert.NotNull(obj); var actData = obj.Value as List <UserDto>; Assert.NotNull(actData); Assert.True(actData.Count == 1); }
//[Authorize] public async Task <IActionResult> GetUsersByCriteria( [FromBody] UsersLookUpCriteriaDto usersLookUpCriteriaDto) { //var users = await _repository.User.GetUsersByCriteriaAsync(usersLookUpCriteriaDto); var users = _userSearchService.SearchByCriteria(usersLookUpCriteriaDto); return(Ok(users)); }
public async Task <IActionResult> GetUsersByCriteria( [DefaultValue(1), FromQuery(Name = "page")] int page, [DefaultValue(20), FromQuery(Name = "length")] int length, [FromBody] UsersLookUpCriteriaDto usersLookUpCriteriaDto, [FromHeader(Name = "userId")] int userId) { var users = await _userSearchService.SearchByCriteriaAsync(usersLookUpCriteriaDto, userId, page, length); return(Ok(users)); }
public IEnumerable <ExtendedUserDto> SearchByCriteria( UsersLookUpCriteriaDto eventSearchDto) { var searchResponse = _client.Search <ExtendedUserDto>(s => s .Query(q => q .Wildcard(m => m .Field(f => f.Name) .Value(eventSearchDto.Name + "*") ) ) ); var users = searchResponse.Documents; return(users); }
public async Task <IEnumerable <UserDto> > SearchByCriteriaAsync (UsersLookUpCriteriaDto criteria, int issuerId, int page, int length) { var foundUsers = _friendyContext.Set <Models.User>().Where(e => (criteria.Name == null || e.Name.ToUpper() == criteria.Name.ToUpper()) && (criteria.Surname == null || e.Surname.ToUpper() == criteria.Surname.ToUpper()) && (criteria.EducationId == null || e.EducationId == criteria.EducationId) && (criteria.BirthdayMin == null || e.Birthday > criteria.BirthdayMin) && (criteria.BirthdayMax == null || e.Birthday < criteria.BirthdayMax) && (criteria.GenderId == null || e.GenderId == criteria.GenderId) && (criteria.MaritalStatusId == null || e.AdditionalInfo.MaritalStatusId == criteria.MaritalStatusId) && (criteria.ReligionId == null || e.AdditionalInfo.ReligionId == criteria.ReligionId) && (criteria.AlcoholOpinionId == null || e.AdditionalInfo.AlcoholAttitudeId == criteria.AlcoholOpinionId) && (criteria.SmokingOpinionId == null || e.AdditionalInfo.SmokingAttitudeId == criteria.SmokingOpinionId) && (!criteria.Interests.Any() || e.UserInterests.All( d => new HashSet <int>( criteria.Interests.Select(c => c.Id)) .Contains(d.InterestId)))) .Skip((page - 1) * length) .Take(length) .Select(UserDto.Selector(issuerId)) .ToList(); return(foundUsers); }
public IEnumerable <ExtendedUserDto> SearchByCriteria( UsersLookUpCriteriaDto usersLookUpCriteriaDto) { var searchResponse = _client.Search <ExtendedUserDto>(s => s .Query(q => q.Bool(m => m.Must(bs => bs.MatchPhrase(f => f.Field(d => d.Name).Query(usersLookUpCriteriaDto .Name)) && bs.MatchPhrase(f => f.Field(d => d.Surname).Query (usersLookUpCriteriaDto .Surname)) && bs.MatchPhrase(f => f.Field(d => d.City).Query (usersLookUpCriteriaDto .City)) && bs.Match(f => f.Field(d => d.EducationId).Query (usersLookUpCriteriaDto .EducationId.ToString())) && bs.DateRange(f => f.LessThan(usersLookUpCriteriaDto.BirthdayMax) .GreaterThan(usersLookUpCriteriaDto.BirthdayMin)) && bs.Match(f => f.Field(d => d.MaritalStatusId).Query (usersLookUpCriteriaDto .MaritalStatusId.ToString())) && bs.Match(f => f.Field(d => d.AlcoholAttitudeId).Query (usersLookUpCriteriaDto .AlcoholOpinionId.ToString())) && bs.Match(f => f.Field(d => d.ReligionId).Query (usersLookUpCriteriaDto .ReligionId.ToString())) && bs.Match(f => f.Field(d => d.SmokingAttitudeId).Query (usersLookUpCriteriaDto .SmokingOpinionId.ToString())) && bs.Terms(f => f.Field(d => d.UserInterests).Field("id").Terms (usersLookUpCriteriaDto.Interests))) ))); var users = searchResponse.Documents; return(users); }
public List <UserLookUpModelDto> Filter(List <UserLookUpModelDto> users, UsersLookUpCriteriaDto usersLookUpCriteria) { foreach (var propertyInfo in usersLookUpCriteria.GetType().GetProperties()) { if (propertyInfo.PropertyType == typeof(string)) { var value = propertyInfo.GetValue(usersLookUpCriteria)?.ToString(); if (CheckIfNotNull(value)) { var columnName = propertyInfo.Name; users = new List <UserLookUpModelDto>( FilterByString(value, columnName, users)); } } else if (propertyInfo.PropertyType == typeof(int)) { var value = Convert.ToInt32(propertyInfo.GetValue(usersLookUpCriteria)); if (value != 0) { var columnName = propertyInfo.Name; users = new List <UserLookUpModelDto>( FilterByInteger(value, columnName, users)); } } else if (propertyInfo.PropertyType == typeof(IEnumerable <string>)) { var interests = (IEnumerable <string>)propertyInfo.GetValue(usersLookUpCriteria); FilterByInterests(ref users, interests); } } return(users); }