Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }