コード例 #1
0
        GetUserLikes(LikesParams likesParams)
        {
            var users = _context.Users.OrderBy(x => x.UserName).AsQueryable();
            var likes = _context.Likes.AsQueryable();

            if (likesParams.Predicate == "liked")
            {
                likes = likes.Where(x => x.SourceUserId == likesParams.UserId);
                users = likes.Select(x => x.LikedUser);
            }
            if (likesParams.Predicate == "likedBy")
            {
                likes = likes.Where(x => x.LikedUserId == likesParams.UserId);
                users = likes.Select(x => x.SourceUser);
            }

            var likedUsers =
                users
                .Select(user =>
                        new LikeDto {
                Username = user.UserName,
                KnownAs  = user.KnownAs,
                Age      = user.DateOfBirth.CalculateAge(),
                PhotoUrl = PhotosHelper.GetMainPhoto(user.Photos),
                City     = user.City,
                Id       = user.Id
            });

            return(await PagedList <LikeDto>
                   .CreateAsync(likedUsers,
                                likesParams.PageNumber,
                                likesParams.PageSize));
        }
コード例 #2
0
        public async Task <ActionResult <UserDto> > Login(LoginDto loginDto)
        {
            var user =
                await _userManager
                .Users
                .Include(x => x.Photos.Where(x => x.IsApproved))
                .SingleOrDefaultAsync(x =>
                                      x.UserName == loginDto.Username.ToLower());

            if (user == null)
            {
                return(Unauthorized("Invalid username"));
            }

            // using var hmac = new HMACSHA512(user.PasswordSalt);
            // var computedHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(loginDto.Password));
            // if (!user.PasswordHash.SequenceEqual(computedHash)) return Unauthorized("Invalid username or password");
            var result =
                await _signInManager
                .CheckPasswordSignInAsync(user, loginDto.Password, false);

            if (!result.Succeeded)
            {
                return(Unauthorized());
            }

            return(new UserDto {
                Username = user.UserName,
                Token = await _tokenService.CreateToken(user),
                PhotoUrl = PhotosHelper.GetMainPhoto(user.Photos),
                knownAs = user.KnownAs,
                Gender = user.Gender
            });
        }