public static async Task PartialLoading(LoadDelegate load, AddAudioItem addItem, Int32 loadCount, CancellationToken token)
        {
            Int32 currentCount  = 20;
            Int32 currentOffset = 0;

            do
            {
                if (currentCount + currentOffset > loadCount)
                {
                    currentCount = loadCount - currentOffset + 1;
                }

                VKList <VKAudio> list = await load(currentOffset, currentCount, token);

                if (list != null && list.Items != null)
                {
                    foreach (var item in list.Items)
                    {
                        token.ThrowIfCancellationRequested();
                        await addItem(item);
                    }
                }
                else
                {
                    break;
                }

                currentOffset += currentCount;
                currentCount  *= 2;
            } while (currentOffset < loadCount);
        }
        private void UpdateCollections(VKList <MarketAlbum> collections)
        {
            this.itemsControl.ItemsSource = null;
            this.ucGroupHeader.Counter    = 0;
            if (collections == null)
            {
                return;
            }
            int num = 0;
            List <TwoInARowItemViewModel <MarketAlbum> > arowItemViewModelList = new List <TwoInARowItemViewModel <MarketAlbum> >();

            foreach (IEnumerable <MarketAlbum> source in collections.items.Partition <MarketAlbum>(2))
            {
                List <MarketAlbum> list = source.ToList <MarketAlbum>();
                TwoInARowItemViewModel <MarketAlbum> arowItemViewModel = new TwoInARowItemViewModel <MarketAlbum>()
                {
                    Item1 = list[0]
                };
                ++num;
                if (list.Count > 1)
                {
                    arowItemViewModel.Item2 = list[1];
                    ++num;
                }
                arowItemViewModelList.Add(arowItemViewModel);
            }
            this.itemsControl.ItemsSource = (IEnumerable)arowItemViewModelList;
            this.ucGroupHeader.Counter    = collections.count;
            if (collections.count > num)
            {
                this.gridFooter.Visibility = Visibility.Visible;
            }
            this._ownerId = collections.items.Count > 0 ? collections.items[0].owner_id : 0L;
        }
 public void GetData(GenericCollectionViewModel <VKList <VKClient.Common.Backend.DataObjects.Video>, VideoHeader> caller, int offset, int count, Action <BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode> > callback)
 {
     if (this._albumId == 0L)
     {
         this._loadAddedVideos = caller == this._allVideosVM;
         if (this._loadAddedVideos && offset == 0)
         {
             VideoService.Instance.GetVideoData(this.OwnerId, (Action <BackendResult <VideosData, ResultCode> >)(res =>
             {
                 if (res.ResultCode == ResultCode.Succeeded)
                 {
                     this.HaveUploadedVideos = res.ResultData.UploadedVideosCount > 0;
                     this.HaveAlbums         = res.ResultData.VideoAlbumsCount > 0;
                     if (this.GotUploadedAndAlbumsInfoCallback != null)
                     {
                         this.GotUploadedAndAlbumsInfoCallback();
                     }
                 }
                 VKList <VKClient.Common.Backend.DataObjects.Video> resultData = res.ResultData == null || res.ResultData.AddedVideos == null ? (VKList <VKClient.Common.Backend.DataObjects.Video>)null : res.ResultData.AddedVideos;
                 callback(new BackendResult <VKList <VKClient.Common.Backend.DataObjects.Video>, ResultCode>(res.ResultCode, resultData));
             }));
         }
         VideoService.Instance.GetVideos(this.UserOrGroupId, this.IsGroup, offset, count, callback, this._loadAddedVideos ? 0L : -1L, true);
     }
     else
     {
         VideoService.Instance.GetVideos(this.UserOrGroupId, this.IsGroup, offset, count, callback, this._albumId, true);
     }
 }
Beispiel #4
0
 public void GetData(string searchString, Dictionary <string, string> parameters, int offset, int count, Action <BackendResult <VKList <SearchHint>, ResultCode> > callback)
 {
     if (offset == 0 && string.IsNullOrWhiteSpace(searchString) && SearchHintsSearchDataProvider._preloadedSearchHintsLoaded)
     {
         Action <BackendResult <VKList <SearchHint>, ResultCode> > action = callback;
         int num = 0;
         VKList <SearchHint> resultData = new VKList <SearchHint>();
         resultData.items = SearchHintsSearchDataProvider._preloadedSearchHints;
         int count1 = SearchHintsSearchDataProvider._preloadedSearchHints.Count;
         resultData.count = count1;
         BackendResult <VKList <SearchHint>, ResultCode> backendResult = new BackendResult <VKList <SearchHint>, ResultCode>((ResultCode)num, resultData);
         action(backendResult);
     }
     else
     {
         string query = searchString;
         SearchService.Instance.GetSearchHints(searchString, (Action <BackendResult <List <SearchHint>, ResultCode> >)(result =>
         {
             if (result.ResultCode == ResultCode.Succeeded)
             {
                 if (string.IsNullOrEmpty(query))
                 {
                     if (!SearchHintsSearchDataProvider._preloadedSearchHintsLoaded)
                     {
                         SearchHintsSearchDataProvider._preloadedSearchHints        = new List <SearchHint>((IEnumerable <SearchHint>)result.ResultData);
                         SearchHintsSearchDataProvider._preloadedSearchHintsHeaders = new List <SearchHintHeader>((IEnumerable <SearchHintHeader>)Enumerable.Select <SearchHint, SearchHintHeader>(result.ResultData, (Func <SearchHint, SearchHintHeader>)(searchHint => new SearchHintHeader(searchHint))));
                         SearchHintsSearchDataProvider._preloadedSearchHintsLoaded  = true;
                     }
                 }
                 else
                 {
                     string internalLink = SearchHintsSearchDataProvider.TryGetInternalLink(query);
                     if (!string.IsNullOrEmpty(internalLink))
                     {
                         result.ResultData.Add(new SearchHint()
                         {
                             type        = "internal_link",
                             global      = 1,
                             description = internalLink
                         });
                     }
                     result.ResultData.Add(new SearchHint()
                     {
                         type   = "extended_search",
                         global = 1
                     });
                 }
                 callback(new BackendResult <VKList <SearchHint>, ResultCode>(result.ResultCode, new VKList <SearchHint>()
                 {
                     count = result.ResultData.Count,
                     items = result.ResultData
                 }));
             }
             else
             {
                 callback(new BackendResult <VKList <SearchHint>, ResultCode>(result.ResultCode, null));
             }
         }));
     }
 }
Beispiel #5
0
 private static void DoLoadNewsFeed(string methodName, Dictionary <string, string> paramDict, Action <BackendResult <NewsFeedData, ResultCode> > callback)
 {
     VKRequestsDispatcher.DispatchRequestToVK <NewsFeedData>(methodName, paramDict, callback, (Func <string, NewsFeedData>)(jsonStr =>
     {
         List <int> resultCounts1;
         jsonStr = VKRequestsDispatcher.GetArrayCountsAndRemove(jsonStr, "photos", out resultCounts1);
         List <int> resultCounts2;
         jsonStr = VKRequestsDispatcher.GetArrayCountsAndRemove(jsonStr, "photo_tags", out resultCounts2);
         NewsFeedData response = JsonConvert.DeserializeObject <GenericRoot <NewsFeedData> >(jsonStr).response;
         NewsFeedType result1;
         if (Enum.TryParse <NewsFeedType>(response.feed_type, out result1))
         {
             response.FeedType = new NewsFeedType?(result1);
         }
         VKList <UserNotification> notifications = response.notifications;
         if ((notifications != null ? notifications.items :  null) != null)
         {
             foreach (UserNotification userNotification in response.notifications.items)
             {
                 UserNotificationType result2;
                 if (Enum.TryParse <UserNotificationType>(userNotification.type, out result2))
                 {
                     userNotification.Type = result2;
                 }
             }
         }
         return(response);
     }), false, true, new CancellationToken?(), null);
 }
Beispiel #6
0
        public NewsFeedIgnoreItemData GetIgnoreItemData()
        {
            NewsItem newsItem = this._newsItemWithInfo.NewsItem;
            List <VKClient.Common.Backend.DataObjects.Video> videoList1;

            if (newsItem == null)
            {
                videoList1 = (List <VKClient.Common.Backend.DataObjects.Video>)null;
            }
            else
            {
                VKList <VKClient.Common.Backend.DataObjects.Video> video = newsItem.video;
                videoList1 = video != null ? video.items : (List <VKClient.Common.Backend.DataObjects.Video>)null;
            }
            List <VKClient.Common.Backend.DataObjects.Video> videoList2 = videoList1;

            if (videoList2 == null || videoList2.Count <= 0)
            {
                return((NewsFeedIgnoreItemData)null);
            }
            VKClient.Common.Backend.DataObjects.Video video1 = videoList2[0];
            long itemId = videoList2.Count == 1 ? video1.id : BaseFormatterHelper.GetLastMidnight((long)newsItem.date, false);

            return(new NewsFeedIgnoreItemData("video", video1.owner_id, itemId));
        }
Beispiel #7
0
 public void GetBalanceData(Action <BackendResult <BalanceData, ResultCode> > callback)
 {
     VKRequestsDispatcher.DispatchRequestToVK <BalanceDataResponse>("execute.getBalanceData", new Dictionary <string, string>()
     {
         {
             "type",
             "votes"
         },
         {
             "merchant",
             "microsoft"
         },
         {
             "no_inapp",
             "1"
         }
     }, (Action <BackendResult <BalanceDataResponse, ResultCode> >)(result =>
     {
         BalanceData balanceData        = new BalanceData();
         ResultCode resultCode          = result.ResultCode;
         BalanceDataResponse resultData = result.ResultData;
         List <StockItem> stockItems1   = null;
         BackendResult <BalanceData, ResultCode> backendResult1 = new BackendResult <BalanceData, ResultCode>();
         backendResult1.ResultCode = resultCode;
         BalanceData balanceData1  = balanceData;
         backendResult1.ResultData = balanceData1;
         BackendResult <BalanceData, ResultCode> response = backendResult1;
         if (resultData != null)
         {
             balanceData.Balance            = resultData.balance;
             VKList <StockItem> stockItems2 = resultData.stockItems;
             stockItems1 = stockItems2 != null ? stockItems2.items :  null;
         }
         if (result.ResultCode == ResultCode.Succeeded && stockItems1 != null)
         {
             VotesPacksGenerator.Generate(AppGlobalStateManager.Current.GlobalState.PaymentType, stockItems1, (Action <List <VotesPack> >)(votesPacks =>
             {
                 balanceData.VotesPacks = votesPacks;
                 Action <BackendResult <BalanceData, ResultCode> > action = callback;
                 if (action == null)
                 {
                     return;
                 }
                 BackendResult <BalanceData, ResultCode> backendResult2 = response;
                 action(backendResult2);
             }));
         }
         else
         {
             Action <BackendResult <BalanceData, ResultCode> > action = callback;
             if (action == null)
             {
                 return;
             }
             BackendResult <BalanceData, ResultCode> backendResult2 = response;
             action(backendResult2);
         }
     }), null, false, true, new CancellationToken?(), null);
 }
Beispiel #8
0
 public AlbumsListHorizontalViewModel(long ownerId, VKList <VideoAlbum> albumsData, List <User> knownUsers, List <Group> knownGroups)
 {
     this._ownerId     = ownerId;
     this._knownGroups = knownGroups;
     this._knownUsers  = knownUsers;
     this._albumsCol   = new GenericCollectionViewModel <VKList <VideoAlbum>, AlbumHeader>((ICollectionDataProvider <VKList <VideoAlbum>, AlbumHeader>) this);
     this.Initialize(albumsData);
 }
Beispiel #9
0
        public void GetStockItems(List <StoreProductFilter> productFilters = null, Action <BackendResult <List <StockItem>, ResultCode> > callback = null)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>()
            {
                {
                    "type",
                    "stickers"
                },
                {
                    "merchant",
                    "microsoft"
                },
                {
                    "no_inapp",
                    "1"
                },
                {
                    "extended",
                    "1"
                }
            };

            if (productFilters != null && productFilters.Count > 0)
            {
                parameters["filters"] = string.Join(",", productFilters.Select <StoreProductFilter, string>((Func <StoreProductFilter, string>)(filter => filter.ToString().ToLowerInvariant())));
            }
            VKRequestsDispatcher.DispatchRequestToVK <ProductsWithStockItems>("execute.getProductsWithStockItems", parameters, (Action <BackendResult <ProductsWithStockItems, ResultCode> >)(result =>
            {
                List <StockItem> resultData1 = new List <StockItem>();
                if (result.ResultCode == ResultCode.Succeeded)
                {
                    ProductsWithStockItems resultData2 = result.ResultData;
                    if ((resultData2 != null ? resultData2.products.items :  null) != null)
                    {
                        VKList <StockItem> stockItems = resultData2.stockItems;
                        if ((stockItems != null ? stockItems.items :  null) != null)
                        {
                            foreach (StoreProduct storeProduct in resultData2.products.items)
                            {
                                StoreProduct product = storeProduct;
                                StockItem stockItem  = resultData2.stockItems.items.FirstOrDefault <StockItem>((Func <StockItem, bool>)(i => i.product.id == product.id));
                                if (stockItem != null)
                                {
                                    resultData1.Add(stockItem);
                                }
                            }
                        }
                    }
                }
                Action <BackendResult <List <StockItem>, ResultCode> > action = callback;
                if (action == null)
                {
                    return;
                }
                BackendResult <List <StockItem>, ResultCode> backendResult = new BackendResult <List <StockItem>, ResultCode>(result.ResultCode, resultData1);
                action(backendResult);
            }), null, false, true, new CancellationToken?(), null);
        }
 private static void CheckNewMessagesForStickersPack(List <Message> newMessages)
 {
     foreach (Message message in newMessages.Where <Message>((Func <Message, bool>)(m => m.@out == 0)))
     {
         List <Attachment> attachments = message.attachments;
         if (attachments == null || attachments.Count == 0)
         {
             break;
         }
         Attachment attachment = attachments.FirstOrDefault <Attachment>((Func <Attachment, bool>)(attach =>
         {
             if (attach.type == "gift" && attach.gift != null)
             {
                 return((ulong)attach.gift.stickers_product_id > 0UL);
             }
             return(false);
         }));
         long num1 = attachment != null ? attachment.gift.stickers_product_id : 0L;
         if (num1 != 0L)
         {
             StoreService instance   = StoreService.Instance;
             int          num2       = 0;
             List <long>  productIds = new List <long>();
             productIds.Add(num1);
             // ISSUE: variable of the null type
             long purchaseForId = 0;
             instance.GetStockItems((StoreProductType)num2, productIds, null, purchaseForId, (Action <BackendResult <VKList <StockItem>, ResultCode> >)(result =>
             {
                 if (result.ResultCode != ResultCode.Succeeded)
                 {
                     return;
                 }
                 VKList <StockItem> resultData = result.ResultData;
                 StockItem stockItem1;
                 if (resultData == null)
                 {
                     stockItem1 = (StockItem)null;
                 }
                 else
                 {
                     List <StockItem> items = resultData.items;
                     stockItem1             = items != null ? items.FirstOrDefault <StockItem>() : (StockItem)null;
                 }
                 StockItem stockItem2 = stockItem1;
                 if (stockItem2 == null)
                 {
                     return;
                 }
                 EventAggregator.Current.Publish((object)new StickersPackPurchasedEvent(new StockItemHeader(stockItem2, false, 0, false))
                 {
                     IsGift = true
                 });
             }));
         }
     }
 }
 public VideoListViewModel(VKList <VideoCatalogItem> list, string sectionId, string next, string name, StatisticsActionSource source, string context)
 {
     this._list           = list;
     this._sectionId      = sectionId;
     this._next           = next;
     this._name           = name;
     this._shouldLoadMore = !string.IsNullOrEmpty(this._next);
     this._source         = source;
     this._context        = context;
     this._videosGenCol   = new GenericCollectionViewModel <GetCatalogSectionResponse, CatalogItemViewModel>((ICollectionDataProvider <GetCatalogSectionResponse, CatalogItemViewModel>) this);
 }
        public static async Task <IEnumerable <VKAudio> > GetFriendPlayList()
        {
            long friendId = MainViewModel.Instance.FriendsFilter.SelectedItem != null
                ? MainViewModel.Instance.FriendsFilter.SelectedItem.Item.Id
                : VKSession.Instance.UserId;

            CheckCurrentCTS();
            VKList <VKAudio> list = await AudioAPI.GetAsync((long)friendId, token : _currentCts.Token);

            return(list.Items);
        }
        private List <IVirtualizable> GetMoreOtherVideoItems()
        {
            List <IVirtualizable>      virtualizableList  = new List <IVirtualizable>();
            IVideoCatalogItemUCFactory catalogItemFactory = ServiceLocator.Resolve <IVideoCatalogItemUCFactory>();
            VKList <VKClient.Common.Backend.DataObjects.Video> otherVideos = this.OtherVideosVM.OtherVideos;
            List <Group> groupList = new List <Group>();
            List <User>  userList  = new List <User>();

            if (otherVideos.profiles != null)
            {
                userList.AddRange((IEnumerable <User>)Enumerable.Select <User, User>(otherVideos.profiles, (Func <User, User>)(profile => new User()
                {
                    id         = profile.id,
                    first_name = profile.first_name,
                    last_name  = profile.last_name
                })));
            }
            if (otherVideos.groups != null)
            {
                groupList.AddRange((IEnumerable <Group>)Enumerable.Select <Group, Group>(otherVideos.groups, (Func <Group, Group>)(profile => new Group()
                {
                    id   = profile.id,
                    name = profile.name
                })));
            }
            IEnumerator <VKClient.Common.Backend.DataObjects.Video> enumerator = ((IEnumerable <VKClient.Common.Backend.DataObjects.Video>)Enumerable.Skip <VKClient.Common.Backend.DataObjects.Video>(otherVideos.items, 3)).GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    VKClient.Common.Backend.DataObjects.Video video = enumerator.Current;
                    List <User>  knownUsers  = userList;
                    List <Group> knownGroups = groupList;
                    UCItem       ucItem      = new UCItem(480.0, new Thickness(), (Func <UserControlVirtualizable>)(() =>
                    {
                        UserControlVirtualizable controlVirtualizable = catalogItemFactory.Create(video, knownUsers, knownGroups, StatisticsActionSource.video_recommend, this.CreateVideoContext(otherVideos.context));
                        ((System.Windows.Controls.Panel)(controlVirtualizable as CatalogItemUC).GridLayoutRoot).Background = ((Brush)(Application.Current.Resources["PhoneNewsBackgroundBrush"] as SolidColorBrush));
                        return(controlVirtualizable);
                    }), new Func <double> (() => catalogItemFactory.Height), null, 0.0, false);
                    virtualizableList.Add((IVirtualizable)ucItem);
                }
            }
            finally
            {
                if (enumerator != null)
                {
                    enumerator.Dispose();
                }
            }
            return(virtualizableList);
        }
Beispiel #14
0
        private void HandleShowAll()
        {
            VKList <VideoCatalogItem> catalogItems = new VKList <VideoCatalogItem>();

            foreach (VKClient.Common.Backend.DataObjects.Video video in this._videos.items)
            {
                catalogItems.items.Add(new VideoCatalogItem(video));
            }
            catalogItems.profiles = this._newsItemWithInfo.Profiles;
            catalogItems.groups   = this._newsItemWithInfo.Groups;
            catalogItems.count    = this._videos.items.Count;
            Navigator.Current.NavigateToVideoList(catalogItems, 2, "", Guid.NewGuid().ToString(), "", "");
        }
Beispiel #15
0
        private void GenerateLayout()
        {
            Thickness margin = new Thickness();
            Action    moreOptionsTapCallback = new Action(this.OnMoreOptionsTap);
            NewsItem  newsItem1 = this._newsItemWithInfo.NewsItem;

            this._videos = (newsItem1 != null ? newsItem1.video : (VKList <VKClient.Common.Backend.DataObjects.Video>)null) ?? new VKList <VKClient.Common.Backend.DataObjects.Video>();
            string extraText = UIStringFormatterHelper.FormatNumberOfSomething(this._videos.count, CommonResources.OneVideoFrm, CommonResources.TwoFourVideosFrm, CommonResources.FiveVideosFrm, true, null, false);

            this._header = new UserOrGroupHeaderItem(this.Width, margin, this.OwnerId < 0L, this._newsItemWithInfo.NewsItem.date, this._fromUser, this._fromGroup, extraText, PostIconType.None, PostSourcePlatform.None, moreOptionsTapCallback, new Action(this.onNavigatedToUserOrGroup), "");
            this.VirtualizableChildren.Add((IVirtualizable)this._header);
            margin.Top += 12.0 + this._header.FixedHeight + 2.0;
            List <Attachment> list = this._videos.items.Take <VKClient.Common.Backend.DataObjects.Video>(5).Select <VKClient.Common.Backend.DataObjects.Video, Attachment>((Func <VKClient.Common.Backend.DataObjects.Video, Attachment>)(v => new Attachment()
            {
                type  = "video",
                video = v
            })).ToList <Attachment>();
            double   desiredHeight = list.Count != 1 ? (list.Count < 2 || list.Count > 4 ? 580.0 : 430.0) : 280.0;
            NewsItem newsItem2     = this._newsItemWithInfo.NewsItem;
            string   itemId        = newsItem2.source_id != 0L ? newsItem2.source_id.ToString() : "";

            this._thumbsItem = new ThumbsItem(this.Width, new Thickness(0.0, margin.Top, 0.0, 0.0), list, false, itemId, false, false, false, 0.0, desiredHeight);
            this.VirtualizableChildren.Add((IVirtualizable)this._thumbsItem);
            margin.Top += this._thumbsItem.FixedHeight;
            if (this._videos.items.Count > 5)
            {
                UCItem ucItem = new UCItem(this.Width, margin, (Func <UserControlVirtualizable>)(() =>
                {
                    return((UserControlVirtualizable) new ShowMoreCommentsUC()
                    {
                        Height = 64.0,
                        Text = CommonResources.ShowAll,
                        OnClickAction = new Action(this.HandleShowAll)
                    });
                }), (Func <double>)(() => 64.0), (Action <UserControlVirtualizable>)null, 0.0, false);
                this.VirtualizableChildren.Add((IVirtualizable)ucItem);
                margin.Top += ucItem.FixedHeight;
            }
            else if (this._videos.items.Count == 1)
            {
                this.LikesAndCommentsItem = new LikesAndCommentsItem(this.Width, margin, this._videos.items[0], new Action(this.CommentsTapped));
                this.VirtualizableChildren.Add((IVirtualizable)this.LikesAndCommentsItem);
                margin.Top += this.LikesAndCommentsItem.FixedHeight;
            }
            else
            {
                margin.Top += 12.0;
            }
            this._height = margin.Top + 16.0;
        }
Beispiel #16
0
        private MessageListResponse GetMessageDataForJson(string jsonStr)
        {
            VKList <Message> response = JsonConvert.DeserializeObject <GenericRoot <VKList <Message> > >(jsonStr).response;

            return(new MessageListResponse()
            {
                DialogHeaders = new List <DialogHeaderInfo>(response.items.Select <Message, DialogHeaderInfo>((Func <Message, DialogHeaderInfo>)(m => new DialogHeaderInfo()
                {
                    message = m
                }))),
                Messages = response.items,
                TotalCount = response.count
            });
        }
Beispiel #17
0
        private void GetAlbumPhotosImpl(long userOrGroupId, bool isGroup, string albumId, int offset, int count, Action <BackendResult <PhotosListWithCount, ResultCode> > callback)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters["owner_id"] = isGroup ? (-userOrGroupId).ToString() : userOrGroupId.ToString();
            parameters["album_id"] = albumId;
            parameters["offset"]   = offset.ToString();
            parameters["count"]    = count.ToString();
            parameters["extended"] = 1.ToString();
            parameters["rev"]      = 1.ToString();
            long result;

            if (long.TryParse(albumId, out result))
            {
                VKRequestsDispatcher.Execute <PhotosListWithCount>(string.Format("var photos = API.photos.get({{\"owner_id\":{0}, \"album_id\":{1}, \"offset\":{2}, \"count\":{3}, \"extended\":1, \"rev\":1}});\r\n                      var albums  = API.photos.getAlbums({{\"owner_id\":{0}, \"album_ids\":{1}}});\r\n                      var thumbId = [email protected]_id[0];\r\n                      var ownerPlusThumb = {0} + \"_\" + thumbId;\r\n                      var p= API.photos.getById({{\"photos\":ownerPlusThumb}});\r\n                      return {{\"Album\": albums.items[0], \"Photos\":photos, \"Thumb\": p[0]}};", parameters["owner_id"], result, offset, count), callback, (Func <string, PhotosListWithCount>)(jsonStr =>
                {
                    PhotosService.AlbumAndPhotosData response = JsonConvert.DeserializeObject <GenericRoot <PhotosService.AlbumAndPhotosData> >(jsonStr).response;
                    PhotosListWithCount photosListWithCount   = new PhotosListWithCount()
                    {
                        album       = response.Album,
                        photosCount = response.Photos.count,
                        response    = response.Photos.items
                    };
                    if (photosListWithCount.album != null && response.Thumb != null)
                    {
                        this.UpdateThumbSrc(new List <Album>()
                        {
                            photosListWithCount.album
                        }, new List <Photo>()
                        {
                            response.Thumb
                        });
                    }
                    return(photosListWithCount);
                }), false, true, new CancellationToken?());
            }
            else
            {
                VKRequestsDispatcher.DispatchRequestToVK <PhotosListWithCount>("photos.get", parameters, callback, (Func <string, PhotosListWithCount>)(jsonStr =>
                {
                    VKList <Photo> response = JsonConvert.DeserializeObject <GenericRoot <VKList <Photo> > >(jsonStr).response;
                    return(new PhotosListWithCount()
                    {
                        photosCount = response.count,
                        response = response.items
                    });
                }), false, true, new CancellationToken?(), null);
            }
        }
 public override void Load(Action <bool> callback)
 {
     StoreService.Instance.GetStickersStoreCatalog((Action <BackendResult <StoreCatalog, ResultCode> >)(result => Execute.ExecuteOnUIThread((Action)(() =>
     {
         StoreCatalog resultData = result.ResultData;
         bool flag = result.ResultCode == ResultCode.Succeeded && resultData != null;
         if (flag)
         {
             List <StoreBanner> banners = resultData.banners;
             if (banners != null)
             {
                 this.Banners = banners.Select <StoreBanner, StoreBannerHeader>((Func <StoreBanner, StoreBannerHeader>)(banner => new StoreBannerHeader(banner))).ToList <StoreBannerHeader>();
             }
             this.NotifyPropertyChanged <List <StoreBannerHeader> >((System.Linq.Expressions.Expression <Func <List <StoreBannerHeader> > >)(() => this.Banners));
             this.NotifyPropertyChanged <Visibility>((System.Linq.Expressions.Expression <Func <Visibility> >)(() => this.BannersVisibility));
             this.NotifyPropertyChanged <bool>((System.Linq.Expressions.Expression <Func <bool> >)(() => this.IsSlideViewCycled));
             this._stickersPacks.Clear();
             List <StoreSection> sections = resultData.sections;
             if (sections != null)
             {
                 foreach (StoreSection storeSection in sections)
                 {
                     List <StockItem> stockItemList;
                     if (storeSection == null)
                     {
                         stockItemList = (List <StockItem>)null;
                     }
                     else
                     {
                         VKList <StockItem> stickers = storeSection.stickers;
                         stockItemList = stickers != null ? stickers.items : (List <StockItem>)null;
                     }
                     List <StockItem> source = stockItemList;
                     if (source != null)
                     {
                         this._stickersPacks.Add(source.Select <StockItem, StockItemHeader>((Func <StockItem, StockItemHeader>)(stockItem => new StockItemHeader(stockItem, false))).ToList <StockItemHeader>());
                     }
                 }
             }
             this.ReloadItems();
             StickersSettings.Instance.UpdateStickersDataAndAutoSuggest((IAccountStickersData)result.ResultData);
             AppGlobalStateManager.Current.GlobalState.NewStoreItemsCount = 0;
             EventAggregator.Current.Publish((object)new NewStoreItemsCountChangedEvent());
         }
         callback(flag);
     }))));
 }
Beispiel #19
0
        /// <summary>
        ///     Возвращает список записей со стены пользователя или сообщества
        /// </summary>
        /// <param name="ownerId">
        ///     Идентификатор пользователя или сообщества, со стены которого необходимо получить записи (по
        ///     умолчанию — текущий пользователь). Идентификатор сообщества необходимо указывать со знаком "-"
        /// </param>
        /// <param name="domain">Короткий адрес пользователя или сообщества</param>
        /// <param name="offset">Смещение, необходимое для выборки определенного подмножества записей</param>
        /// <param name="count">Количество записей, которое необходимо получить (но не более 100)</param>
        /// <param name="filter">Определяет, какие типы записей на стене необходимо получить</param>
        /// <returns>Список записей со стены</returns>
        public static VKList <VKPost> Get(
            Int64?ownerId     = null,
            String domain     = "",
            Int32?offset      = null,
            Int32?count       = null,
            FilterEnum?filter = null
            )
        {
            VKParams param    = parseGetParam(ownerId, domain, offset, count, filter, false);
            string   response = VKSession.Instance.DoRequest("wall.get", param);

            JObject         obj    = JObject.Parse(response);
            VKList <VKPost> objArr =
                JsonConvert.DeserializeObject <VKList <VKPost> >((obj["response"] ?? String.Empty).ToString());

            return(objArr);
        }
Beispiel #20
0
        private static void PreprocessStickersData(IAccountStickersData stickersData)
        {
            VKList <StoreProduct> vkList1  = new VKList <StoreProduct>();
            VKList <StockItem>    vkList2  = new VKList <StockItem>();
            VKList <StoreProduct> products = stickersData.Products;

            if ((products != null ? products.items :  null) != null)
            {
                VKList <StockItem> stockItems = stickersData.StockItems;
                if ((stockItems != null ? stockItems.items :  null) != null)
                {
                    List <StoreProduct> .Enumerator enumerator = stickersData.Products.items.GetEnumerator();
                    try
                    {
                        while (enumerator.MoveNext())
                        {
                            StoreProduct product   = enumerator.Current;
                            StockItem    stockItem = (StockItem)Enumerable.FirstOrDefault <StockItem>(stickersData.StockItems.items, (Func <StockItem, bool>)(i => i.product.id == product.id));
                            if (stockItem != null && product != null && (product.promoted != 1 || product.purchased != 1 || product.active != 0))
                            {
                                product.description = stockItem.description;
                                product.author      = stockItem.author;
                                product.photo_140   = stockItem.photo_140;
                                vkList1.items.Add(product);
                                vkList2.items.Add(stockItem);
                            }
                        }
                    }
                    finally
                    {
                        enumerator.Dispose();
                    }
                    vkList1.count           = vkList1.items.Count;
                    vkList2.count           = vkList2.items.Count;
                    stickersData.Products   = vkList1;
                    stickersData.StockItems = vkList2;
                }
            }
            StoreStickers recentStickers = stickersData.RecentStickers;

            if ((recentStickers != null ? recentStickers.sticker_ids :  null) == null)
            {
                return;
            }
            stickersData.RecentStickers.sticker_ids = (List <int>)Enumerable.ToList <int>(Enumerable.Take <int>(stickersData.RecentStickers.sticker_ids, 32));
        }
Beispiel #21
0
 public void GetTrends(Action <BackendResult <List <Trend>, ResultCode> > callback)
 {
     VKRequestsDispatcher.DispatchRequestToVK <List <Trend> >("search.getTrends", new Dictionary <string, string>(), callback, (Func <string, List <Trend> >)(s =>
     {
         GenericRoot <VKList <Trend> > genericRoot = JsonConvert.DeserializeObject <GenericRoot <VKList <Trend> > >(s);
         if (genericRoot == null)
         {
             return(null);
         }
         VKList <Trend> response = genericRoot.response;
         if (response == null)
         {
             return(null);
         }
         return(response.items);
     }), false, true, new CancellationToken?(), null);
 }
Beispiel #22
0
        private void UpdateCollections(VKList <MarketAlbum> collections)
        {
            this.itemsControl.ItemsSource = (null);
            this.ucGroupHeader.Counter    = 0;
            if (collections == null)
            {
                return;
            }
            int num = 0;
            List <TwoInARowItemViewModel <MarketAlbum> > arowItemViewModelList = new List <TwoInARowItemViewModel <MarketAlbum> >();
            IEnumerator <IEnumerable <MarketAlbum> >     enumerator            = collections.items.Partition <MarketAlbum>(2).GetEnumerator();

            try
            {
                while (((IEnumerator)enumerator).MoveNext())
                {
                    List <MarketAlbum> list = (List <MarketAlbum>)Enumerable.ToList <MarketAlbum>(enumerator.Current);
                    TwoInARowItemViewModel <MarketAlbum> arowItemViewModel = new TwoInARowItemViewModel <MarketAlbum>()
                    {
                        Item1 = list[0]
                    };
                    ++num;
                    if (list.Count > 1)
                    {
                        arowItemViewModel.Item2 = list[1];
                        ++num;
                    }
                    arowItemViewModelList.Add(arowItemViewModel);
                }
            }
            finally
            {
                if (enumerator != null)
                {
                    ((IDisposable)enumerator).Dispose();
                }
            }
            this.itemsControl.ItemsSource = ((IEnumerable)arowItemViewModelList);
            this.ucGroupHeader.Counter    = collections.count;
            if (collections.count > num)
            {
                ((UIElement)this.gridFooter).Visibility = Visibility.Visible;
            }
            this._ownerId = collections.items.Count > 0 ? collections.items[0].owner_id : 0L;
        }
Beispiel #23
0
        protected override void HandleOnNavigatedTo(NavigationEventArgs e)
        {
            base.HandleOnNavigatedTo(e);
            if (this._isInitialized)
            {
                return;
            }
            this._section_id = this.NavigationContext.QueryString["SectionId"];
            this._next       = this.NavigationContext.QueryString["Next"];
            this._name       = this.NavigationContext.QueryString["Name"];
            StatisticsActionSource source = (StatisticsActionSource)int.Parse(this.NavigationContext.QueryString["Source"]);
            string context = this.NavigationContext.QueryString["Context"];
            VKList <VideoCatalogItem> vkList = ParametersRepository.GetParameterForIdAndReset("CatalogItemsToShow") as VKList <VideoCatalogItem>;
            int num1 = vkList != null ? 1 : 0;

            if (num1 == 0)
            {
                VideoListPage.VideoListData videoListData = new VideoListPage.VideoListData();
                CacheManager.TryDeserialize((IBinarySerializable)videoListData, this._section_id + "cached", CacheManager.DataType.CachedData);
                vkList = new VKList <VideoCatalogItem>()
                {
                    count    = videoListData.count,
                    groups   = videoListData.groups,
                    profiles = videoListData.profiles,
                    items    = videoListData.items
                };
            }
            VideoListViewModel videoListViewModel = new VideoListViewModel(vkList ?? new VKList <VideoCatalogItem>(), this._section_id, this._next, this._name, source, context);

            this.DataContext = (object)videoListViewModel;
            videoListViewModel.VideosGenCol.LoadData(true, false, (Action <BackendResult <GetCatalogSectionResponse, ResultCode> >)null, false);
            if (num1 != 0)
            {
                VideoListPage.VideoListData videoListData = new VideoListPage.VideoListData();
                videoListData.count    = vkList.count;
                videoListData.groups   = vkList.groups;
                videoListData.profiles = vkList.profiles;
                videoListData.items    = vkList.items;
                string fileId = this._section_id + "cached";
                int    num2   = 0;
                int    num3   = 0;
                CacheManager.TrySerializeAsync((IBinarySerializable)videoListData, fileId, num2 != 0, (CacheManager.DataType)num3);
            }
            this._isInitialized = true;
        }
Beispiel #24
0
        /// <summary>
        ///     Возвращает список сообществ указанного пользователя
        /// </summary>
        /// <param name="userId">Идентификатор пользователя, информацию о сообществах которого требуется получить</param>
        /// <param name="filter">
        ///     Список фильтров сообществ, которые необходимо вернуть, перечисленные через запятую.
        ///     <para>Доступны значения admin, editor, moder, groups, publics, events.</para>
        ///     По умолчанию возвращаются все сообщества пользователя. При указании фильтра admin будут возвращены сообщества, в
        ///     которых пользователь является администратором, editor — администратором или редактором, moder — администратором,
        ///     редактором или модератором.
        /// </param>
        /// <param name="fields">Список дополнительных полей, которые необходимо вернуть</param>
        /// <param name="offset">Смещение, необходимое для выборки определённого подмножества сообществ</param>
        /// <param name="count">Количество сообществ, информацию о которых нужно вернуть</param>
        /// <returns>Список сообществ</returns>
        public static VKList <VKGroup> GetExtended(
            Int64 userId,
            IEnumerable <Filter> filter = null,
            IEnumerable <Fields> fields = null,
            Int32?offset = null,
            Int32?count  = null
            )
        {
            VKParams param    = parseGetParam(userId, true, filter, fields, offset, count);
            string   response = VKSession.Instance.DoRequest("groups.get", param);

            JObject obj = JObject.Parse(response);

            VKList <VKGroup> objArr =
                JsonConvert.DeserializeObject <VKList <VKGroup> >((obj["response"] ?? String.Empty).ToString());

            return(objArr);
        }
Beispiel #25
0
        public void UpdateStickersDataAndAutoSuggest(IAccountStickersData stickersData)
        {
            if (stickersData == null)
            {
                return;
            }
            StickersSettings.PreprocessStickersData(stickersData);
            List <StockItem>   stickersList  = this.StickersList;
            VKList <StockItem> stockItems    = stickersData.StockItems;
            List <StockItem>   stockItemList = stockItems != null ? stockItems.items :  null;
            int num = StickersSettings.GetStickersAreUpToDate((IReadOnlyList <StockItem>)stickersList, (IReadOnlyList <StockItem>)stockItemList) ? 1 : 0;

            this.UpdateStickersData(stickersData);
            if (num == 0)
            {
                return;
            }
            StickersAutoSuggestDictionary.Instance.EnsureDictIsLoadedAndUpToDate(true);
        }
Beispiel #26
0
        private void GetPhotosImpl(string methodName, long userOrGroupId, bool isGroup, int offset, int count, Action <BackendResult <PhotosListWithCount, ResultCode> > callback)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters["owner_id"] = isGroup ? (-userOrGroupId).ToString() : userOrGroupId.ToString();
            parameters["user_id"]  = parameters["owner_id"];
            parameters["offset"]   = offset.ToString();
            parameters["count"]    = count.ToString();
            parameters["extended"] = 1.ToString();
            parameters["sort"]     = 0.ToString();
            VKRequestsDispatcher.DispatchRequestToVK <PhotosListWithCount>(methodName, parameters, callback, (Func <string, PhotosListWithCount>)(jsonStr =>
            {
                VKList <Photo> response = JsonConvert.DeserializeObject <GenericRoot <VKList <Photo> > >(jsonStr).response;
                return(new PhotosListWithCount()
                {
                    photosCount = response.count,
                    response = response.items
                });
            }), false, true, new CancellationToken?(), null);
        }
        public void GetData(GenericCollectionViewModel <VKList <User>, SubscriptionItemHeader> caller, int offset, int count, Action <BackendResult <VKList <User>, ResultCode> > callback)
        {
            switch (this._mode)
            {
            case FriendsSearchMode.Default:
                UsersService.Instance.GetFriendsSuggestions(this._recommendationsNextFrom, count, (Action <BackendResult <VKList <User>, ResultCode> >)(e =>
                {
                    if (e.ResultCode == ResultCode.Succeeded)
                    {
                        if (e.ResultData.items.Count > 0)
                        {
                            Execute.ExecuteOnUIThread((Action)(() => this.ListHeaderVisibility = Visibility.Visible));
                        }
                        this._recommendationsNextFrom = e.ResultData.next_from;
                    }
                    callback(e);
                }));
                break;

            case FriendsSearchMode.Register:
                if (this._contactsLoaded || !this._allowSendContacts)
                {
                    break;
                }
                FriendsImportHelper.LoadData((IFriendsImportProvider)ContactsFriendsImportProvider.Instance, (Action <FriendsImportResponse>)(response =>
                {
                    VKList <User> resultData = new VKList <User>();
                    List <ISubscriptionItemHeader> foundUsers = response.FoundUsers;
                    if (foundUsers.Count > 0)
                    {
                        Execute.ExecuteOnUIThread((Action)(() => this.ListHeaderVisibility = Visibility.Visible));
                        List <User> list = (List <User>)Enumerable.ToList <User>(Enumerable.Where <User>(Enumerable.Select <SubscriptionItemHeader, User>(Enumerable.OfType <SubscriptionItemHeader>((IEnumerable)foundUsers), (Func <SubscriptionItemHeader, User>)(subscriptionItem => subscriptionItem.GetUser())), (Func <User, bool>)(user => user != null)));
                        resultData.count = list.Count;
                        resultData.items.AddRange((IEnumerable <User>)list);
                    }
                    this._contactsLoaded = true;
                    callback(new BackendResult <VKList <User>, ResultCode>(ResultCode.Succeeded, resultData));
                }), (Action <ResultCode>)(resultCode => callback(new BackendResult <VKList <User>, ResultCode>(resultCode, null))));
                break;
            }
        }
Beispiel #28
0
        public GroupMembershipInfo(GroupData groupData)
        {
            if (groupData == null)
            {
                return;
            }
            this._group = groupData.group;
            VKList <Group> invites = groupData.invites;

            if (invites == null || invites.items == null || invites.profiles == null)
            {
                return;
            }
            Group invitationGroup = invites.items.FirstOrDefault <Group>((Func <Group, bool>)(group => group.id == this._group.id));

            if (invitationGroup == null)
            {
                return;
            }
            this._invitedByUser = invites.profiles.FirstOrDefault <User>((Func <User, bool>)(user => user.id == invitationGroup.invited_by));
        }
Beispiel #29
0
        private void HandleShowAll()
        {
            VKList <VideoCatalogItem> catalogItems = new VKList <VideoCatalogItem>();

            List <VKClient.Common.Backend.DataObjects.Video> .Enumerator enumerator = this._videos.items.GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    VKClient.Common.Backend.DataObjects.Video current = enumerator.Current;
                    catalogItems.items.Add(new VideoCatalogItem(current));
                }
            }
            finally
            {
                enumerator.Dispose();
            }
            catalogItems.profiles = this._newsItemWithInfo.Profiles;
            catalogItems.groups   = this._newsItemWithInfo.Groups;
            catalogItems.count    = this._videos.items.Count;
            Navigator.Current.NavigateToVideoList(catalogItems, 2, "", Guid.NewGuid().ToString(), "", "");
        }
        public GroupMembershipInfo(Group group)//
        {
            if (group == null)
            {
                return;
            }
            this._group = group;
            VKList <Group> invites = group.invites;

            if (invites == null || invites.items == null || invites.profiles == null)
            {
                return;
            }
            //Group invitationGroup = (Group)Enumerable.FirstOrDefault<Group>(invites.items, (Func<Group, bool>)(group => group.id == this._group.id));
            Group invitationGroup = (Group)Enumerable.FirstOrDefault <Group>(invites.items, (Func <Group, bool>)(group2 => group.id == this._group.id));

            if (invitationGroup == null)
            {
                return;
            }
            this._invitedByUser = (User)Enumerable.FirstOrDefault <User>(invites.profiles, (Func <User, bool>)(user => user.id == invitationGroup.invited_by));
        }