/// <summary> /// Обновить рекламные акции. /// </summary> public async void Update() { if (!ServiceHelper.SettingsService.EnablePromo) { return; } ulong promoGroupID = 0; var request = new VKExecuteRequest <uint>(VKMethodsConstants.ExecuteGetPromoGroup); for (int i = 0; i < MAX_RETRIES_NUMBER; i++) { var response = await request.ExecuteAsync(); if (response.Error.ErrorType != VKErrors.None) { continue; } promoGroupID = response.Response; break; } if (promoGroupID == 0) { return; } var wallRequest = new GetWallRequest { Count = 10, OwnerID = -((long)promoGroupID) }; for (int i = 0; i < MAX_RETRIES_NUMBER; i++) { var wall = await wallRequest.ExecuteAsync(); if (wall.Error.ErrorType != VKErrors.None) { continue; } var promos = new List <OneVKPromo>(); foreach (var post in wall.Response.Items) { try { var promo = JsonConvert.DeserializeObject <OneVKPromo>(post.FullText); promo.PromoImage = ((VKPhoto)post.Attachments[0].Attachment).Photo604; promos.Add(promo); } catch (Exception) { } } Promos = promos; Messenger.Default.Send(new UpdatePromosMessage()); break; } }
/// <summary> /// Возвращает список записей со страницы /// </summary> /// <param name="callback">Метод, который будет вызван по завершении операции</param> /// <param name="request">Объект запроса с необходимыми параметрами</param> public void GetWallPosts(Action <VKResponse <List <VKBaseWallPost> > > callback, GetWallRequest request) { VKHelper.GetResponse <List <VKBaseWallPost> >(request, callback); }