コード例 #1
0
        public IActionResult Index()
        {
            Task <DatingUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);

            byte currentUserGender = GetCurrentUserAsync().Result.Gender;
            List <DisplayUsersViewModel> oppositeSexUsers = new List <DisplayUsersViewModel>();
            var users = (from user in _context.Users
                         select new
            {
                FirstName = user.FirstName,
                LastName = user.LastName,
                BirthDate = user.BirthDate,
                Height = user.Height,
                Weight = user.Weight,
                Gender = user.Gender,
                Music = user.Music,
                Videos = user.Videos,
                Animals = user.Animals,
                PhotoPath = user.PhotoPaths,
                Email = user.Email,
                Description = user.Description
            }).ToList().Select(p => new DisplayUsersViewModel()
            {
                FirstName   = p.FirstName,
                LastName    = p.LastName,
                BirthDate   = p.BirthDate,
                Height      = p.Height,
                Weight      = p.Weight,
                Gender      = p.Gender,
                Music       = p.Music,
                Videos      = p.Videos,
                Animals     = p.Animals,
                PhotoPaths  = p.PhotoPath,
                Email       = p.Email,
                Description = p.Description
            });

            foreach (var user in users.Where(x => x.Gender != currentUserGender))
            {
                var jeden         = similarity.CalculateDistance(GetCurrentUserAsync().Result.Animals, user.Animals);
                var dwa           = similarity.CalculateDistance(GetCurrentUserAsync().Result.Videos, user.Videos);
                var trzy          = similarity.CalculateDistance(GetCurrentUserAsync().Result.Music, user.Music);
                var avgSimilarity = similarity.CalculateAverageDistances(jeden, dwa, trzy);
                user.Similarity = avgSimilarity;



                oppositeSexUsers.Add(user);
            }

            return(View(oppositeSexUsers));
        }