示例#1
0
        public ProfileDto GetUserProfile(Guid userId)
        {
            AssertConcern.AssertArgumentNotGuidEmpty(userId, "Id do usuário inválido");
            var profile = ProfileRepository.GetByUserId(userId.ToString());

            if (profile == null)
            {
                return(new ProfileDto()
                {
                    UserId = userId.ToString()
                });
            }

            var returnProfile = new ProfileDto()
            {
                Id                               = profile.Id,
                UserId                           = profile.UserId,
                Genre                            = (int)profile.Genre,
                GenreDescription                 = profile.Genre.ToString(),
                MaritalStatus                    = (int)profile.MaritalStatus,
                MaritalStatusDescription         = profile.MaritalStatus.ToString(),
                ZipCode                          = profile.ZipCode,
                MaritalStatusInterest            = (int)profile.MaritalStatusInterest,
                MaritalStatusInterestDescription = profile.MaritalStatusInterest.ToString(),
                Summary                          = profile.Summary,
                Interests                        = new List <Configuration>(),
                Relationships                    = new List <Configuration>()
            };

            var interestConfigurations     = ConfigurationRepository.GetByQuery(profile.UserId, "Interest");
            var relationshipConfigurations = ConfigurationRepository.GetByQuery(profile.UserId, "Relationship");

            if (interestConfigurations.Any())
            {
                Parallel.ForEach(interestConfigurations, x => returnProfile.Interests.Add(x));
            }

            if (relationshipConfigurations.Any())
            {
                Parallel.ForEach(relationshipConfigurations, x => returnProfile.Relationships.Add(x));
            }

            return(returnProfile);
        }