Esempio 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;
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Выполняет указанную хранимую процедуру ВКонтакте.
 /// </summary>
 /// <typeparam name="T">Тип данных, возвращаемых методом.</typeparam>
 /// <param name="callback">Метод, который будет вызван по завершении операции.
 /// Параметр является результатом запроса.</param>
 /// <param name="request">Объект запроса с необходимыми параметрами.</param>
 public void Execute <T>(Action <VKResponse <T> > callback, VKExecuteRequest request)
 {
     VKHelper.GetResponse <T>(request, callback);
 }