public IQueryResult <User> Find(FriendMobileSearchCriteria criterias) { if (criterias == null) { throw new ArgumentNullException(nameof(criterias)); } IQueryConstraints <Friend> constraints = new QueryConstraints <Friend>() .Where(x => x.RequestedById == criterias.UserId || x.RequestedToId == criterias.UserId) .AndAlso(x => x.FriendRequestFlag == FriendRequestFlag.Approved); List <Friend> result = queryRepository.Find(constraints).Items.ToList(); List <int> requestedByIds = result.Select(x => x.RequestedById).ToList(); List <int> requestedToIds = result.Select(x => x.RequestedToId).ToList(); requestedByIds.AddRange(requestedToIds); IQueryConstraints <User> constraintsUser = new QueryConstraints <User>() .PageAndSort(criterias, x => x.Id) .Where(x => requestedByIds.Contains(x.Id)) .AndAlso(x => x.Id != criterias.UserId); return(queryRepository.Find(constraintsUser)); }
public static FriendMobileSearchCriteria ToSearchCriteria(this FriendSearchCriteriaBindingModel model, int userId) { FriendMobileSearchCriteria criteria = CreateSearchCriteria <FriendMobileSearchCriteria>(model); criteria.UserId = userId; return(criteria); }
public IHttpActionResult FetchFriends([FromUri] FriendSearchCriteriaBindingModel model) { User user = GetCurrentUser(); FriendMobileSearchCriteria friendMobileSearchCriteria = model.ToSearchCriteria(user.Id); IQueryResult <User> carts = FriendService.Obj.Find(friendMobileSearchCriteria); var result = new PagingBindingModel <UserProfileBindingModel>() { Items = carts.Items.Select(x => x.ToUserProfileBindingModel()).ToList(), TotalCount = carts.TotalCount }; foreach (var userBindingModel in result.Items.ToList()) { userBindingModel.PhotoId = ImageService.Obj.FindByUserId(userBindingModel.UserId)?.ImageId; } return(Ok(result)); }