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); } }
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)); } })); } }
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); }
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)); }
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); }
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); }
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); }
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(), "", ""); }
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; }
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 }); }
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); })))); }
/// <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); }
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)); }
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); }
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; }
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; }
/// <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); }
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); }
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; } }
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)); }
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)); }