public async Task Track(TargetUserInput input) { var currentUser = await GetCurrentUserAsync(); var targetUser = await UserManager.GetUserByIdAsync(input.TargetUserId); await _trackManager.TrackAsync(targetUser, currentUser); }
public async Task <GetInterTrackingUsersOutput> GetInterTrackingUsers(TargetUserInput input) { var interTrackingUsers = await _trackManager .GetInterTrackingUsersAsync(input.TargetUserId) .ProjectTo <UserListDto>() .ToListAsync(); return(new GetInterTrackingUsersOutput { InterTrackingUsers = interTrackingUsers }); }
public async Task <GetFriendsOutput> GetFriends(TargetUserInput input) { var friends = await _friendPairRepository.GetAll() .Where(fp => fp.LeftId == input.TargetUserId || fp.RightId == input.TargetUserId) .Select(fp => new[] { fp.Left, fp.Right }) .SelectMany(user => user) .Where(user => user.Id != input.TargetUserId) .Distinct() .ProjectTo <UserListDto>() .ToListAsync(); return(new GetFriendsOutput { Friends = friends }); }