Exemplo n.º 1
0
        /// <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;
            }
        }
Exemplo n.º 2
0
 /// <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);
 }