예제 #1
0
        public IHttpActionResult SearchPeople([FromUri] FriendSearchModel model)
        {
            var customers = _userService.SearchUsers(model.SearchTerm, model.ExcludeLoggedInUser, model.Page, model.Count);
            var models = new List<object>();

            var currentUser = ApplicationContext.Current.CurrentUser;
            //get all the friends of logged in customer
            IList<Friend> friends = null;
            if (currentUser.IsRegistered())
            {
                friends = _friendService.GetAllCustomerFriends(currentUser.Id);
            }

            if (friends == null)
                friends = new List<Friend>();

            foreach (var c in customers)
            {
                var friendModel = new FriendPublicModel() {
                    Id = c.Id,
                    DisplayName = c.GetPropertyValueAs<string>(PropertyNames.DisplayName),
                    PictureUrl = _pictureService.GetPictureUrl(c.GetPropertyValueAs<int>(PropertyNames.DefaultPictureId)),
                    ProfileUrl =
                        Url.Route("CustomerProfileUrl",
                            new RouteValueDictionary()
                            {
                               { "SeName",  c.GetPermalink().ToString() }
                            }),
                };

                var friend = friends.FirstOrDefault(x => x.FromCustomerId == c.Id || x.ToCustomerId == c.Id);

                if (friend == null)
                    friendModel.FriendStatus = FriendStatus.None;
                else if (friend.Confirmed)
                    friendModel.FriendStatus = FriendStatus.Friends;
                else if (!friend.Confirmed && friend.FromCustomerId == currentUser.Id)
                    friendModel.FriendStatus = FriendStatus.FriendRequestSent;
                else if (currentUser.Id == c.Id)
                    friendModel.FriendStatus = FriendStatus.Self;
                else
                    friendModel.FriendStatus = FriendStatus.NeedsConfirmed;
                models.Add(friendModel);
            }
            return Json(new { Success = true, People = models });
        }
예제 #2
0
        public IHttpActionResult GetFriendRequests()
        {
            var friendRequests = _friendService.GetCustomerFriendRequests(ApplicationContext.Current.CurrentUser.Id);

            var friendRequestCustomers =
                _customerService.Get(x => friendRequests.Select(r => r.FromCustomerId).ToArray().Contains(x.Id), null);

            var model = new List<FriendPublicModel>();
            foreach (var c in friendRequestCustomers)
            {
                var friendModel = new FriendPublicModel() {
                    Id = c.Id,
                    DisplayName = c.GetPropertyValueAs<string>(PropertyNames.DisplayName),
                    PictureUrl = _pictureService.GetPictureUrl(c.GetPropertyValueAs<int>(PropertyNames.DefaultPictureId)),
                    ProfileUrl = Url.Route("CustomerProfileUrl",
                            new RouteValueDictionary() { {"SeName", c.GetPermalink().ToString() }}),
                    FriendStatus = FriendStatus.NeedsConfirmed
                };
                model.Add(friendModel);

            }

            return Json(new { Success = true, People = model });
        }