public async void LoadFriends(string username)
        {
            IsLoading = true;
            var           friendManager = new FriendManager();
            FriendsEntity friendEntity  =
                await
                friendManager.GetFriendsList(username, Offset, BlockedPlayer, RecentlyPlayed, PersonalDetailSharing,
                                             FriendStatus, Requesting, Requested, OnlineFilter, UserAccountEntity);

            if (friendEntity == null)
            {
                return;
            }
            if (friendEntity.FriendList == null)
            {
                HasMoreItems = false;
                return;
            }
            foreach (FriendsEntity.Friend friend in friendEntity.FriendList)
            {
                Add(friend);
            }
            if (friendEntity.FriendList.Any())
            {
                HasMoreItems = true;
                Offset       = Offset += 32;
            }
            else
            {
                HasMoreItems = false;
            }
            IsLoading = false;
        }
Пример #2
0
        public async void GetFriendsList(bool onlineFilter, bool blockedPlayer, bool recentlyPlayed,
                                         bool personalDetailSharing, bool friendStatus, bool requesting, bool requested)
        {
            LoadingProgressBar.Visibility = Visibility.Visible;
            var friendManager = new FriendManager();

            FriendCollection = new InfiniteScrollingCollection
            {
                FriendList            = new ObservableCollection <FriendsEntity.Friend>(),
                UserAccountEntity     = App.UserAccountEntity,
                Offset                = 32,
                OnlineFilter          = onlineFilter,
                Requested             = requested,
                Requesting            = requesting,
                PersonalDetailSharing = personalDetailSharing,
                FriendStatus          = friendStatus
            };
            var items =
                await
                friendManager.GetFriendsList(_user.OnlineId, 0, blockedPlayer, recentlyPlayed, personalDetailSharing,
                                             friendStatus, requesting, requested, onlineFilter, App.UserAccountEntity);

            if (items == null)
            {
                LoadingProgressBar.Visibility       = Visibility.Collapsed;
                FriendsMessageTextBlock.Visibility  = Visibility.Visible;
                FriendsLongListSelector.DataContext = FriendCollection;
                return;
            }
            FriendsMessageTextBlock.Visibility = Visibility.Collapsed;
            FriendsMessageTextBlock.Visibility = !items.FriendList.Any() ? Visibility.Visible : Visibility.Collapsed;
            foreach (var item in items.FriendList)
            {
                FriendCollection.FriendList.Add(item);
            }
            FriendsLongListSelector.ItemRealized += friendList_ItemRealized;
            FriendsLongListSelector.DataContext   = FriendCollection;
            LoadingProgressBar.Visibility         = Visibility.Collapsed;
        }
Пример #3
0
        public async Task <bool> CheckFriend(string pSNName)
        {
            int offset = 0;

            while (true)
            {
                var list = await _friendManager.GetFriendsList(_userAccountEntity.Entity.OnlineId, offset, false, false, false, true, false, false, false, _userAccountEntity);

                if (list.FriendList == null)
                {
                    return(false);
                }
                offset = offset + list.FriendList.Count();
                if (list.FriendList.Any(f => string.Equals(f.OnlineId, pSNName, StringComparison.OrdinalIgnoreCase)))
                {
                    return(true);
                }
                if (offset >= list.TotalResults)
                {
                    return(false);
                }
            }
        }
Пример #4
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            LoadingProgressBar.Visibility = Visibility.Visible;
            var user          = App.UserAccountEntity.GetUserEntity();
            var friendManager = new FriendManager();

            FriendCollection = new InfiniteScrollingCollection
            {
                FriendList            = new ObservableCollection <FriendsEntity.Friend>(),
                UserAccountEntity     = App.UserAccountEntity,
                Offset                = 32,
                OnlineFilter          = false,
                Requested             = true,
                Requesting            = false,
                PersonalDetailSharing = false,
                FriendStatus          = true
            };
            var items =
                await
                friendManager.GetFriendsList(user.OnlineId, 0, false, false, false,
                                             true, false, true, false, App.UserAccountEntity);

            if (items == null)
            {
                return;
            }
            FriendsMessageTextBlock.Visibility = !items.FriendList.Any() ? Visibility.Visible : Visibility.Collapsed;
            foreach (FriendsEntity.Friend item in items.FriendList)
            {
                FriendCollection.FriendList.Add(item);
            }
            FriendsLongListSelector.ItemRealized += friendList_ItemRealized;
            FriendsLongListSelector.DataContext   = FriendCollection;
            LoadingProgressBar.Visibility         = Visibility.Collapsed;
        }
Пример #5
0
        private async Task <LoadMoreItemsResult> LoadFriends(uint count)
        {
            IsLoading = true;
            try
            {
                var friendManager = new FriendManager();
                await Shell.Instance.ViewModel.UpdateTokens();

                var friendResultEntity =
                    await
                    friendManager.GetFriendsList(Username, Offset, BlockedPlayer, RecentlyPlayed, PersonalDetailSharing,
                                                 FriendStatus, Requesting, Requested, OnlineFilter, Shell.Instance.ViewModel.CurrentTokens, Shell.Instance.ViewModel.CurrentUser.Region, Shell.Instance.ViewModel.CurrentUser.Language);

                var result = await ResultChecker.CheckSuccess(friendResultEntity, false);

                if (!result)
                {
                    HasMoreItems = false;
                    if (Count <= 0)
                    {
                        IsEmpty = true;
                    }
                    IsLoading = false;
                    return(new LoadMoreItemsResult {
                        Count = 0
                    });
                }
                await AccountAuthHelpers.UpdateTokens(Shell.Instance.ViewModel.CurrentUser, friendResultEntity);

                var friendEntity = JsonConvert.DeserializeObject <FriendListResponse>(friendResultEntity.ResultJson);
                if (friendEntity == null)
                {
                    HasMoreItems = false;
                    if (Count <= 0)
                    {
                        IsEmpty = true;
                    }
                    IsLoading = false;
                    return(new LoadMoreItemsResult {
                        Count = count
                    });
                }
                if (friendEntity.Friend == null)
                {
                    HasMoreItems = false;
                    if (Count <= 0)
                    {
                        IsEmpty = true;
                    }
                    IsLoading = false;
                    return(new LoadMoreItemsResult {
                        Count = count
                    });
                }
                foreach (var friend in friendEntity.Friend)
                {
                    Add(friend);
                }
                if (friendEntity.Friend.Any())
                {
                    HasMoreItems = true;
                    Offset       = Offset += 32;
                }
                else
                {
                    HasMoreItems = false;
                    if (Count <= 0)
                    {
                        IsEmpty = true;
                    }
                }
            }
            catch (Exception ex)
            {
                HasMoreItems = false;
            }
            IsLoading = false;
            return(new LoadMoreItemsResult {
                Count = count
            });
        }