Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        //[Authorize]
        public async Task <IActionResult> GetUsersByCriteria(
            [FromBody] UsersLookUpCriteriaDto usersLookUpCriteriaDto)
        {
            //var users = await _repository.User.GetUsersByCriteriaAsync(usersLookUpCriteriaDto);
            var users = _userSearchService.SearchByCriteria(usersLookUpCriteriaDto);

            return(Ok(users));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }