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)); }
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 }); }