public async Task <PagingModel <ProfileDto> > GetProfiles(ProfileFilter filter, int page, int pageSize)
        {
            Query baseQuery = new Query().From("Profiles");

            if (filter != null)
            {
                baseQuery.WhereFilter(filter);
            }

            Query profilesQuery = baseQuery.Clone().Select("FirstName", "LastName", "MiddleName", "Birthday");

            profilesQuery.Offset((page - 1) * pageSize);

            profilesQuery.Limit(pageSize);

            Query totalQuery = baseQuery.Clone().AsCount("Id");

            SqlResult result = compiler.Compile(new Query[] { profilesQuery, totalQuery });

            using (IDbConnection connection = dbConnectionFactory.CreateConnection())
            {
                using (SqlMapper.GridReader reader = await connection.QueryMultipleAsync(result.Sql, result.NamedBindings))
                {
                    return(new PagingModel <ProfileDto>
                    {
                        Items = await reader.ReadAsync <ProfileDto>(),
                        Total = await reader.ReadSingleAsync <int>()
                    });
                }
            }
        }
Exemplo n.º 2
0
        internal static void RemoveCategory(this ICategoryCache cache, ProfileFilter filter)
        {
            Ensure.Any.IsNotNull(cache, nameof(cache));
            Ensure.Any.IsNotNull(filter, nameof(filter));

            cache.RemoveCategory(filter.CategoryGroup, filter.CategoryName);
        }
Exemplo n.º 3
0
        private static string BuildCategoryLinkCacheKey(ProfileFilter filter)
        {
            Debug.Assert(filter != null);

            // The cache key has a prefix to partition this type of object just in case there is a key collision with another object type
            return("CategoryLinks|" + filter.CategoryGroup + "|" + filter.CategoryName);
        }
Exemplo n.º 4
0
        /// <summary>Creates the basic profile filter.</summary>
        /// <param name="currentUser">The current user.</param>
        /// <returns></returns>
        private ProfileFilter CreateBasicProfileFilter(CurrentUser currentUser)
        {
            var filter = new ProfileFilter();

            switch (currentUser.SexualOrientation)
            {
            case SexualOrientationType.Heterosexual:
                filter.Gender = currentUser.Gender == GenderType.Male ? GenderType.Female : GenderType.Male;
                break;

            case SexualOrientationType.Homosexual:
                filter.Gender = currentUser.Gender;
                break;

            case SexualOrientationType.Bisexual:
                break;

            case SexualOrientationType.Asexual:
                break;

            default:
                filter.Gender = currentUser.Gender == GenderType.Male ? GenderType.Female : GenderType.Male;
                break;
            }

            return(filter);
        }
Exemplo n.º 5
0
        public void RemoveCategoryLinks(ProfileFilter filter)
        {
            Ensure.Any.IsNotNull(filter, nameof(filter));

            var cacheKey = BuildCategoryLinkCacheKey(filter);

            _cache.Remove(cacheKey);
        }
Exemplo n.º 6
0
        public ICollection <Guid> GetCategoryLinks(ProfileFilter filter)
        {
            Ensure.Any.IsNotNull(filter, nameof(filter));

            var cacheKey = BuildCategoryLinkCacheKey(filter);

            return(_cache.Get <ICollection <Guid> >(cacheKey));
        }
Exemplo n.º 7
0
        public void StoreCategoryLinks(ProfileFilter filter, ICollection <Guid> links)
        {
            Ensure.Any.IsNotNull(filter, nameof(filter));
            Ensure.Any.IsNotNull(links, nameof(links));

            var cacheKey = BuildCategoryLinkCacheKey(filter);

            var options = new MemoryCacheEntryOptions
            {
                SlidingExpiration = _config.CategoryLinksExpiration
            };

            _cache.Set(cacheKey, links, options);
        }
Exemplo n.º 8
0
        public IPagedList <ProfileViewModel> GetProfiles(ProfileFilter filter)
        {
            var profileViewModels = profiles;

            if (!string.IsNullOrEmpty(filter.SearchString))
            {
                profileViewModels = profileViewModels
                                    .Where(s => s.LastName.Contains(filter.SearchString) || s.FirstName.Contains(filter.SearchString));
            }

            SortProfiles(ref profileViewModels, filter.SortOrder);

            return(profileViewModels.ToPagedList(filter.PageNumber, filter.PageCount));
        }
Exemplo n.º 9
0
        public int GetProfilesTotalCount(ProfileFilter filter)
        {
            StringBuilder sb = new StringBuilder("SELECT DISTINCT COUNT(*) FROM profile pf INNER JOIN party pt ON pt.PartyId=pf.PartyId INNER JOIN profilerole pr ON pr.ProfileId=pf.ProfileId ");

            AddWhereClause(filter, sb);
            return(AppDbContext.Instance.Connection.ExecuteScalar <int>(sb.ToString(), new
            {
                UserId = filter.UserId.ToLikeEncodedParameter(),
                Name = filter.Name.ToLikeEncodedParameter(),
                LastName = filter.LastName.ToLikeEncodedParameter(),
                MobileNumber = filter.MobileNumber.ToLikeEncodedParameter(),
                Status = filter.Status,
                RoleItemId = filter.RoleItemId,
            }, AppDbContext.Instance.Transaction));
        }
Exemplo n.º 10
0
        public async Task <IActionResult> SaveProfileFilter([FromBody] ProfileFilter profileFilter)
        {
            if (profileFilter == null)
            {
                return(BadRequest());
            }

            try
            {
                var currentUser = await _helper.GetCurrentUserProfile(User);

                return(Ok(_currentUserRepository.SaveProfileFilter(currentUser, profileFilter)));
            }
            catch (Exception ex)
            {
                return(Problem(ex.ToString()));
            }
        }
Exemplo n.º 11
0
        public List <ProfileExt> GetProfiles(ProfileFilter filter, int?page, int?pageSize)
        {
            StringBuilder sb = new StringBuilder("SELECT DISTINCT * FROM profile pf INNER JOIN party pt ON pt.PartyId=pf.PartyId INNER JOIN profilerole pr ON pr.ProfileId=pf.ProfileId ");

            AddWhereClause(filter, sb);
            sb.Append("ORDER BY CreationDate LIMIT @FromPage, @PageSize");
            return(AppDbContext.Instance.Connection.Query <ProfileExt>(sb.ToString(), new
            {
                UserId = filter.UserId.ToLikeEncodedParameter(),
                Name = filter.Name.ToLikeEncodedParameter(),
                LastName = filter.LastName.ToLikeEncodedParameter(),
                MobileNumber = filter.MobileNumber.ToLikeEncodedParameter(),
                Status = filter.Status,
                RoleItemId = filter.RoleItemId,
                PageSize = pageSize.ToPageSizeNormalize(),
                FromPage = page.ToPageNormalize() * pageSize.ToPageSizeNormalize()
            }, AppDbContext.Instance.Transaction).ToList());
        }
Exemplo n.º 12
0
        public async Task <PagingModel <ProfileDto> > GetAll(int page, int pageSize, string filter = null)
        {
            try
            {
                ProfileFilter profileFilter = null;

                if (filter != null)
                {
                    profileFilter = JsonSerializer.Deserialize <ProfileFilter>(filter);
                }

                return(await profilesRepository.GetProfiles(profileFilter, page, pageSize));
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Exemplo n.º 13
0
        public IActionResult Profiles(string searchString = "", SortState sortOrder = SortState.LastNameAsc, int page = 1, int pageCount = 3)
        {
            ProfileFilter profileFilter = new ProfileFilter
            {
                SearchString = searchString,
                SortOrder    = sortOrder,
                PageNumber   = page,
                PageCount    = pageCount
            };

            var formatProfileViewModel = new FormatProfileViewModel
            {
                ProfileFilter = profileFilter,
                Profiles      = profileService.GetProfiles(profileFilter)
            };

            return(View(formatProfileViewModel));
        }
Exemplo n.º 14
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
            {
                throw new ArgumentNullException(nameof(bindingContext));
            }

            var filters = new List <ProfileFilter>();
            var queries = bindingContext.HttpContext.Request.Query;

            foreach (var query in queries)
            {
                CategoryGroup categoryGroup;

                if (Enum.TryParse(query.Key, true, out categoryGroup) == false)
                {
                    continue;
                }

                foreach (var value in query.Value)
                {
                    if (string.IsNullOrWhiteSpace(value))
                    {
                        continue;
                    }

                    // This appears to be a valid filter
                    var filter = new ProfileFilter
                    {
                        CategoryGroup = categoryGroup,
                        CategoryName  = value
                    };

                    filters.Add(filter);
                }
            }

            //bindingContext.ModelState.SetModelValue(bindingContext.ModelName, result);
            bindingContext.Result = ModelBindingResult.Success(filters);

            return(Task.CompletedTask);
        }
Exemplo n.º 15
0
        private void AddWhereClause(ProfileFilter filter, StringBuilder sb)
        {
            //default where clause
            sb.Append("WHERE 1 ");

            //UserId
            if (!string.IsNullOrEmpty(filter.UserId))
            {
                sb.Append("AND pf.UserId LIKE @UserId ");
            }

            //Name
            if (!string.IsNullOrEmpty(filter.Name))
            {
                sb.Append("AND pt.Name LIKE @Name ");
            }

            //LastName
            if (!string.IsNullOrEmpty(filter.LastName))
            {
                sb.Append("AND pt.LastName LIKE @LastName ");
            }

            //MobileNumber
            if (!string.IsNullOrEmpty(filter.MobileNumber))
            {
                sb.Append("AND pf.MobileNumber LIKE @MobileNumber ");
            }

            //Status
            if (!string.IsNullOrEmpty(filter.Status))
            {
                sb.Append("AND pf.Status=@Status ");
            }

            //RoleItemId
            if (filter.RoleItemId.HasValue)
            {
                sb.Append("AND pr.RoleItemId=@RoleItemId ");
            }
        }
Exemplo n.º 16
0
        /// <summary>Saves the profile filter to currentUser.</summary>
        /// <param name="currentUser">The current user.</param>
        /// <param name="profileFilter">The profile filter.</param>
        /// <returns></returns>
        public async Task <CurrentUser> SaveProfileFilter(CurrentUser currentUser, ProfileFilter profileFilter)
        {
            try
            {
                var filter = Builders <CurrentUser>
                             .Filter.Eq(p => p.ProfileId, currentUser.ProfileId);

                var update = Builders <CurrentUser>
                             .Update.Set(p => p.ProfileFilter, profileFilter);

                var options = new FindOneAndUpdateOptions <CurrentUser>
                {
                    ReturnDocument = ReturnDocument.After
                };

                return(await _context.CurrentUser.FindOneAndUpdateAsync(filter, update, options));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 17
0
        private async Task <ICollection <Guid> > GetCategoryLinks(
            ProfileFilter filter,
            CancellationToken cancellationToken)
        {
            var cachedLinks = _cache.GetCategoryLinks(filter);

            if (cachedLinks != null)
            {
                return(cachedLinks);
            }

            var storedLinks =
                (await _linkStore.GetCategoryLinks(filter.CategoryGroup, filter.CategoryName, cancellationToken)
                 .ConfigureAwait(false)).ToList();

            var links = (from x in storedLinks
                         select x.ProfileId).ToList();

            _cache.StoreCategoryLinks(filter, links);

            return(links);
        }
Exemplo n.º 18
0
        static void Main(string[] args)
        {
            ProfileServiceClient client = new ProfileServiceClient("WSHttpBinding_ProfileService");

            // AddProfile
            Profile newProfile = new Profile()
            {
                Username = "******",
                Password = "******",
                Name = "Guillermo",
                Surname = "Schlereth Lamas",
                Email = "*****@*****.**",
                DateOfBirth = DateTime.Parse("12/06/1972"),
                Description = "Hola soy Guillermo",
                Gender = Gender.Male,
                Address = new Address() { Street = "Federico Mompou, 3", City = "Torremolinos", PostalCode = "29620" }
            };

            Guid guilleID = client.AddProfile(newProfile);

            newProfile = new Profile()
            {
                Username = "******",
                Password = "******",
                Name = "Lidia",
                Surname = "Lluch Fuentes",
                Email = "*****@*****.**",
                DateOfBirth = DateTime.Parse("21/07/1973"),
                Description = "Hola soy Lidia",
                Gender = Gender.Female,
                Address = new Address() { Street = "Federico Mompou, 3", City = "Torremolinos", PostalCode = "29620" }
            };

            Guid lidiaID = client.AddProfile(newProfile);

            newProfile = new Profile()
            {
                Username = "******",
                Password = "******",
                Name = "Liam",
                Surname = "Schlereth Lluch",
                Email = "*****@*****.**",
                DateOfBirth = DateTime.Parse("25/03/2008"),
                Description = "Hola soy Liam",
                Gender = Gender.Male,
                Address = new Address() { Street = "Federico Mompou, 3", City = "Torremolinos", PostalCode = "29620" }
            };

            Guid liamID = client.AddProfile(newProfile);

            // CreateProfile
            Guid sergioID = client.CreateProfile("sergio", "admin123", "*****@*****.**", "Sergio", "Schlereth Lamas");
            Guid mariaID = client.CreateProfile("mariluz", "admin123", "*****@*****.**", "Mariluz", "Schlereth Lamas");
            Guid pericoID = client.CreateProfile("perico", "admin123", "*****@*****.**", "Pedro", "Delgado");

            // GetAllProfiles
            List<Profile> allProfiles = client.GetAllProfiles();
            WriteProfiles(allProfiles, "All profiles -->");

            // GetProfileByID and GetProfileByCredentials
            Profile liamProfile = client.GetProfileByID(liamID);
            Profile sergioProfile = client.GetProfileByID(sergioID);
            Profile lidiaProfile = client.GetProfileByCredentials("lidia", "admin123");

            List<Profile> selectProfiles = new List<Profile>();
            selectProfiles.Add(liamProfile);
            selectProfiles.Add(sergioProfile);
            selectProfiles.Add(lidiaProfile);
            WriteProfiles(selectProfiles, "Liam, Sergio and Lidia profiles -->");

            // ModifyProfile
            sergioProfile.Description = "Hola soy Sergio ...";
            sergioProfile.Email = "*****@*****.**";
            sergioProfile.DateOfBirth = DateTime.Parse("25/06/1986");
            sergioProfile.Gender = Gender.Male;
            sergioProfile.Address = new Address
            {
                Street = "Avda. Bellamina, 3",
                City = "Torremolinos",
                PostalCode = "29620"
            };

            client.ModifyProfile(sergioProfile);
            WriteProfiles(new List<Profile>() { client.GetProfileByID(sergioID) }, "Sergio profile modified -->");

            // DeleteProfile
            client.DeleteProfile(pericoID);
            WriteProfiles(client.GetAllProfiles(), "Perico profile deleted -->");

            // SearchProfiles
            ProfileFilter filter = new ProfileFilter()
            {
                Street = "Mompou"
            };

            List<Profile> searchResult = client.SearchProfiles(filter);
            WriteProfiles(searchResult, "Profiles living in Mompou street -->");

            // AddContact
            client.AddContact(guilleID, lidiaID);
            client.AddContact(guilleID, liamID);

            // AddContacts
            client.AddContacts(guilleID, new List<Guid>() { sergioID, mariaID });

            // GetContacts
            WriteProfiles(client.GetContacts(guilleID), "Guille contacts -->");

            // RemoveContact
            client.RemoveContact(guilleID, sergioID);
            WriteProfiles(client.GetContacts(guilleID), "Sergio removed from guille contacts -->");

            // RemoveAllContacts
            client.RemoveAllContacts(guilleID);
            WriteProfiles(client.GetContacts(guilleID), "Guille contacts removed -->");

            // Delete Profiles
            client.DeleteProfile(guilleID);
            client.DeleteProfile(lidiaID);
            client.DeleteProfile(sergioID);
            client.DeleteProfile(mariaID);
            client.DeleteProfile(liamID);

            WriteProfiles(client.GetAllProfiles(), "All contacts deleted -->");

            Console.ReadLine();
        }
        private async Task UpdateCategories(
            Profile profile,
            ProfileChangeResult changes,
            CancellationToken cancellationToken)
        {
            var cacheItemsToRemove = new List <ProfileFilter>();

            // Get the current categories
            var categories =
                (await _categoryStore.GetAllCategories(cancellationToken).ConfigureAwait(false)).FastToList();

            var categoryTasks = new List <Task>();

            // Write all category link changes
            foreach (var categoryChange in changes.CategoryChanges)
            {
                // Get the category
                var category = categories.FirstOrDefault(
                    x => x.Group == categoryChange.CategoryGroup && x.Name.Equals(
                        categoryChange.CategoryName,
                        StringComparison.OrdinalIgnoreCase));

                if (category == null)
                {
                    // We haven't seen this category before
                    category = new Category
                    {
                        Group     = categoryChange.CategoryGroup,
                        LinkCount = 0,
                        Name      = categoryChange.CategoryName,
                        Reviewed  = false,
                        Visible   = false
                    };

                    // Trigger a notification that a new category is being added to the system
                    var newCategoryTriggerTask = _eventTrigger.NewCategory(category, cancellationToken);

                    categoryTasks.Add(newCategoryTriggerTask);

                    categories.Add(category);
                }

                if (categoryChange.ChangeType == CategoryLinkChangeType.Add)
                {
                    // This is a new link between the profile and the category
                    category.LinkCount++;
                }
                else
                {
                    // We are removing the link between the profile and the category
                    category.LinkCount--;
                }

                var change = new CategoryLinkChange
                {
                    ChangeType = categoryChange.ChangeType,
                    ProfileId  = profile.Id
                };

                // Store the link update
                var categoryLinkTask = _linkStore.StoreCategoryLink(
                    category.Group,
                    category.Name,
                    change,
                    cancellationToken);

                categoryTasks.Add(categoryLinkTask);

                var filter = new ProfileFilter
                {
                    CategoryGroup = category.Group,
                    CategoryName  = category.Name
                };

                cacheItemsToRemove.Add(filter);

                // Update the category data
                var categoryTask = _categoryStore.StoreCategory(category, cancellationToken);

                categoryTasks.Add(categoryTask);
            }

            // Run all the category task changes together
            await Task.WhenAll(categoryTasks).ConfigureAwait(false);

            UpdateCacheStore(categories, cacheItemsToRemove);
        }
Exemplo n.º 20
0
        // Search for anything in filter - eg. { Body: 'something' }
        /// <summary>Gets the profile by filter.</summary>
        /// <param name="filter">The filter.</param>
        /// <param name="orderByType">The OrderByDescending column type.</param>
        /// <returns></returns>
        public async Task <IEnumerable <Profile> > GetProfileByFilter(CurrentUser currentUser, ProfileFilter profileFilter, OrderByType orderByType, int skip, int limit)
        {
            try
            {
                List <FilterDefinition <Profile> > filters = new List <FilterDefinition <Profile> >();

                //Remove currentUser from the list.
                filters.Add(Builders <Profile> .Filter.Ne(p => p.ProfileId, currentUser.ProfileId));

                //Add basic search criteria.
                filters.Add(Builders <Profile> .Filter.Eq(p => p.SexualOrientation, currentUser.SexualOrientation));
                filters.Add(Builders <Profile> .Filter.Eq(p => p.Gender, profileFilter.Gender));

                //Apply all other ProfileFilter criterias.
                filters = this.ApplyProfileFilter(profileFilter, filters);

                var combineFilters = Builders <Profile> .Filter.And(filters);

                switch (orderByType)
                {
                case OrderByType.CreatedOn:
                    return(_context.Profiles
                           .Find(combineFilters).Skip(skip).Limit(limit).ToList().OrderByDescending(p => p.CreatedOn));

                case OrderByType.UpdatedOn:
                    return(_context.Profiles
                           .Find(combineFilters).Skip(skip).Limit(limit).ToList().OrderByDescending(p => p.UpdatedOn));

                case OrderByType.LastActive:
                    return(_context.Profiles
                           .Find(combineFilters).Skip(skip).Limit(limit).ToList().OrderByDescending(p => p.UpdatedOn));

                default:
                    return(_context.Profiles
                           .Find(combineFilters).Skip(skip).Limit(limit).ToList().OrderByDescending(p => p.CreatedOn));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 21
0
 public virtual int GetProfilesTotalCount(ProfileFilter profile)
 {
     return(profileRepo.GetProfilesTotalCount(profile));
 }
Exemplo n.º 22
0
 public virtual List <ProfileExt> GetProfiles(ProfileFilter filter, int?page, int?pageSize)
 {
     return(profileRepo.GetProfiles(filter, page, pageSize));
 }
Exemplo n.º 23
0
        private List <FilterDefinition <Profile> > ApplyProfileFilter(ProfileFilter profileFilter, List <FilterDefinition <Profile> > filters)
        {
            try
            {
                if (profileFilter.Name != null)
                {
                    filters.Add(Builders <Profile> .Filter.Regex(p => p.Name, new BsonRegularExpression(profileFilter.Name, "i")));
                }

                if (profileFilter.Age != null && profileFilter.Age[0] > 0)
                {
                    filters.Add(Builders <Profile> .Filter.Gte(p => p.Age, profileFilter.Age[0]));
                }

                if (profileFilter.Age != null && profileFilter.Age[1] > 0)
                {
                    filters.Add(Builders <Profile> .Filter.Lte(p => p.Age, profileFilter.Age[1]));
                }

                if (profileFilter.Height != null && profileFilter.Height[0] > 0)
                {
                    filters.Add(Builders <Profile> .Filter.Gte(p => p.Height, profileFilter.Height[0]));
                }

                if (profileFilter.Height != null && profileFilter.Height[1] > 0)
                {
                    filters.Add(Builders <Profile> .Filter.Lte(p => p.Height, profileFilter.Height[1]));
                }

                if (profileFilter.Description != null)
                {
                    filters.Add(Builders <Profile> .Filter.Regex(p => p.Description, new BsonRegularExpression(profileFilter.Description, "i")));
                }

                if (profileFilter.Tags != null && profileFilter.Tags.Count > 0)
                {
                    filters.Add(Builders <Profile> .Filter.AnyIn(p => p.Tags, profileFilter.Tags));
                }

                if (profileFilter.Body != BodyType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.Body, profileFilter.Body));
                }

                if (profileFilter.SmokingHabits != SmokingHabitsType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.SmokingHabits, profileFilter.SmokingHabits));
                }

                if (profileFilter.HasChildren != HasChildrenType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.HasChildren, profileFilter.HasChildren));
                }

                if (profileFilter.WantChildren != WantChildrenType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.WantChildren, profileFilter.WantChildren));
                }

                if (profileFilter.HasPets != HasPetsType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.HasPets, profileFilter.HasPets));
                }

                if (profileFilter.LivesIn != LivesInType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.LivesIn, profileFilter.LivesIn));
                }

                if (profileFilter.Education != EducationType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.Education, profileFilter.Education));
                }

                if (profileFilter.EducationStatus != EducationStatusType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.EducationStatus, profileFilter.EducationStatus));
                }

                if (profileFilter.EmploymentStatus != EmploymentStatusType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.EmploymentStatus, profileFilter.EmploymentStatus));
                }

                if (profileFilter.SportsActivity != SportsActivityType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.SportsActivity, profileFilter.SportsActivity));
                }

                if (profileFilter.EatingHabits != EatingHabitsType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.EatingHabits, profileFilter.EatingHabits));
                }

                if (profileFilter.ClotheStyle != ClotheStyleType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.ClotheStyle, profileFilter.ClotheStyle));
                }

                if (profileFilter.BodyArt != BodyArtType.NotChosen)
                {
                    filters.Add(Builders <Profile> .Filter.Eq(p => p.BodyArt, profileFilter.BodyArt));
                }

                return(filters);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }