Exemple #1
0
        /// <summary>
        /// Генерит jsonчик и отправляет его фейсбуку
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private async Task <int> Send(SendMessageModel model)
        {
            string jsonContent = JsonConvert.SerializeObject(model,
                                                             Formatting.None,
                                                             new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });

            jsonContent = BotTextHelper.SmileCodesReplace(jsonContent, SocialNetworkType.Facebook);

            HttpResponseMessage responce;
            StringContent       content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
            string url = $"https://graph.facebook.com/v2.6/me/messages?access_token={_token}";

            using (var client = new HttpClient())
            {
                using (var r = await client.PostAsync(new Uri(url), content))
                {
                    responce = r;
                    string responceString = await r.Content.ReadAsStringAsync();

                    if (responceString.ToLower().Contains("error"))
                    {
                        Logging.Logger.Error($"Facebook Api Send: NOT OK!! {responceString}");
                        return(1);
                    }
                    else
                    {
                        return(0);
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Маршрутизатор текстовых сообщений
        /// </summary>
        /// <param name="thisQuery"></param>
        /// <param name="type"></param>
        /// <param name="Bot"></param>
        /// <param name="botUser"></param>
        /// <param name="text"></param>
        /// <param name="Requests"></param>
        /// <returns></returns>
        public async Task <int> SendText(string text)
        {
            TelegramBotClient telegram = null;
            FacebookApiHelper facebook = null;
            int IsError = 0;

            if (type == SocialNetworkType.Telegram)
            {
                telegram = (TelegramBotClient)Bot;
            }
            if (type == SocialNetworkType.Facebook)
            {
                facebook = (FacebookApiHelper)Bot;
            }

            if (type == SocialNetworkType.VK)
            {
                //var cont = new SenderContext("Z_Messages");
                //cont.Message.Add(new BotMessage { BotUserVKID = botUser.BotUserVKID, Text = text, DateTime = DateTime.Now, IsSended = false });
                //cont.SaveChanges();
                Requests.Add(new VKApiRequestModel(ulong.Parse(botUser.BotUserVKID), text));
            }
            if (type == SocialNetworkType.Telegram)
            {
                text = BotTextHelper.SmileCodesReplace(text);
                await telegram.SendTextMessageAsync(botUser.BotUserTelegramID, text);
            }
            if (type == SocialNetworkType.Facebook)
            {
                IsError = await facebook.SendMessage(botUser.BotUserFacebookID, text);
            }

            return(IsError);
        }
Exemple #3
0
        public async Task <HttpResponseMessage> PostMessage(JObject jsonResponce)
        {
            DateTime TimeToStartAnswer = DateTime.Now;
            var      telegramResponce  = jsonResponce.ToObject <Update>();

            Logging.Logger.Debug($"PostMessage message={jsonResponce}");

            if (telegramResponce == null)
            {
                Logging.Logger.Error("Пустой запрос");
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }


            if (telegramResponce.Type == UpdateType.MessageUpdate)
            {
                var _Bot = new Telegram.Bot.Api(_token);

                await _Bot.SendChatActionAsync(telegramResponce.Message.Chat.Id, ChatAction.Typing);

                if (telegramResponce.Message.Text == null)
                {
                    await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, "Простите, но я не поняла вас \U0001F614");
                }
                else
                {
                    try
                    {
                        // кэшируем
                        #region
                        string trimmedLoweredQuery = telegramResponce.Message.Text.ToLower().Trim(QueryAnaliser.splitters);
                        var    thisQuery           = new BotUserQuery {
                            IsError = 0
                        };

                        var mbFunctional    = new MallBotFunctional();
                        var mbDBHelper      = new MallBotDBHelper();
                        var mbApiFunctional = new MallBotApiTelegramFunctional();

                        string       MainCachedItemKey   = "MainDataOfBot";
                        string       RadugaCachedItemKey = "RadugaDataOfBot";
                        MallBotModel MainDataOfBot       = null;
                        MallBotModel RadugaDataOfBot     = null;

                        var dbMainContext   = new MallBotContext(); dbMainContext.Configuration.ProxyCreationEnabled = false;
                        var dbRadugaContext = new MallBotContext(1); dbMainContext.Configuration.ProxyCreationEnabled = false;

                        object MaindataFromCache   = MemoryCache.Default.Get(MainCachedItemKey, null);
                        object RadugadataFromCache = MemoryCache.Default.Get(RadugaCachedItemKey, null);

                        if (trimmedLoweredQuery == "update")
                        {
                            if (MaindataFromCache != null)
                            {
                                MemoryCache.Default.Remove(MainCachedItemKey, null);
                            }
                            if (RadugadataFromCache != null)
                            {
                                MemoryCache.Default.Remove(RadugaCachedItemKey, null);
                            }

                            MaindataFromCache   = null;
                            RadugadataFromCache = null;
                        }

                        if (MaindataFromCache == null || RadugadataFromCache == null)
                        {
                            List <int?> ids = new List <int?> {
                                3, 5
                            };
                            MainDataOfBot = new MallBotModel(dbMainContext, ids);

                            ids = new List <int?> {
                                1
                            };
                            RadugaDataOfBot = new MallBotModel(dbRadugaContext, ids);

                            string[]        TimeOfExpiration = ConfigurationManager.AppSettings["TimeOfExpiration"].ToString().Split(':');
                            CacheItemPolicy cip = new CacheItemPolicy()
                            {
                                AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddHours(int.Parse(TimeOfExpiration[0])).AddMinutes(int.Parse(TimeOfExpiration[1])).AddSeconds(int.Parse(TimeOfExpiration[2])))
                            };
                            MemoryCache.Default.Set(new CacheItem(MainCachedItemKey, (object)MainDataOfBot), cip);
                            MemoryCache.Default.Set(new CacheItem(RadugaCachedItemKey, (object)RadugaDataOfBot), cip);
                        }
                        else
                        {
                            MainDataOfBot   = (MallBotModel)MaindataFromCache;
                            RadugaDataOfBot = (MallBotModel)RadugadataFromCache;
                        }
                        #endregion
                        var botUsers = dbMainContext.BotUser.ToList();
                        var botUser  = botUsers.FirstOrDefault(x => x.BotUserTelegramID == telegramResponce.Message.Chat.Id.ToString());
                        QueryAnaliserResult answer    = null;
                        MallBotModel        DataOfBot = null;
                        var customers = MainDataOfBot.Customers;
                        customers.AddRange(RadugaDataOfBot.Customers);

                        var IsTutorial = true;
                        if (
                            #region
                            botUser == null ||
                            trimmedLoweredQuery == "place" ||
                            trimmedLoweredQuery == "место" ||
                            trimmedLoweredQuery == "сменить тц" ||
                            trimmedLoweredQuery == "тц" ||
                            botUser.CustomerName == "newuser" ||
                            trimmedLoweredQuery == "help" && (botUser.CustomerName == "newuser" || botUser.CustomerName == "empty") ||
                            trimmedLoweredQuery == "помощь" && (botUser.CustomerName == "newuser" || botUser.CustomerName == "empty")
                            #endregion
                            )
                        {
                            if (trimmedLoweredQuery == "help" || trimmedLoweredQuery == "помощь")
                            {
                                var message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%priorityhelp%").Text;
                                message = message.Replace("%place%", "/place");
                                message = BotTextHelper.SmileCodesReplace(message);
                                await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);
                            }
                            else
                            {
                                if (botUser == null)
                                {
                                    dbMainContext = mbDBHelper.AddBotUser(ulong.Parse(telegramResponce.Message.Chat.Id.ToString()), 2, null, telegramResponce.Message.From.FirstName, telegramResponce.Message.From.LastName, 0, null, "ru_RU", false, dbMainContext);
                                    botUser       = dbMainContext.BotUser.FirstOrDefault(x => x.BotUserTelegramID == telegramResponce.Message.Chat.Id.ToString());
                                }

                                botUser.CustomerName = "empty";
                                if (botUser.LevelTutorial != 4)
                                {
                                    botUser.LevelTutorial = 0;
                                }
                                botUser.ModifiedDate = DateTime.Now;
                                dbMainContext.SaveChanges();

                                var message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%mallselect%").Text;
                                message = message.Replace("%mall1%", "1. " + customers[0].Name + "  " + customers[0].City);
                                message = message.Replace("%mall2%", "2. " + customers[1].Name + "  " + customers[1].City);
                                message = message.Replace("%mall3%", "3. " + customers[2].Name + "  " + customers[2].City);
                                message = BotTextHelper.SmileCodesReplace(message);
                                await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);
                            }
                        }
                        else
                        {
                            if (botUser.CustomerName == "empty")
                            {
                                var qa  = new QueryAnaliser();
                                var res = mbFunctional.SearchCustomer(qa.NormalizeQuery(telegramResponce.Message.Text), customers);

                                if (res.Count != 0)
                                {
                                    var findedCustomer = customers.FirstOrDefault(x => x.CustomerID == res[0].ID);

                                    var message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%mallselectsucces%").Text;
                                    message = message.Replace("%findedmall%", findedCustomer.Name + "  " + findedCustomer.City);
                                    message = message.Replace("%place%", "/place");
                                    message = BotTextHelper.SmileCodesReplace(message);
                                    await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                    botUser.CustomerName = res[0].Name;
                                    dbMainContext.SaveChanges();
                                    if (botUser.LevelTutorial != 4)
                                    {
                                        answer = await mbApiFunctional.doTutorial(botUser, telegramResponce.Message.Text, _Bot, telegramResponce.Message.Chat.Id, dbMainContext, MainDataOfBot);
                                    }
                                }
                                else
                                {
                                    var message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%mallselectfail%").Text;
                                    message = message.Replace("%notfindedmall%", telegramResponce.Message.Text);
                                    message = BotTextHelper.SmileCodesReplace(message);
                                    await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);
                                }
                            }
                            else
                            {
                                if (botUser.CustomerName == RadugaDataOfBot.Customers[0].Name)
                                {
                                    DataOfBot       = RadugaDataOfBot;
                                    DataOfBot.Texts = MainDataOfBot.Texts;
                                }
                                else
                                {
                                    DataOfBot = mbDBHelper.SelectData(MainDataOfBot, botUser, customers);
                                }

                                // Блок для описания команд
                                if (trimmedLoweredQuery.Contains("testfunc")) // команды для разработчиков
                                {
                                    await mbApiFunctional.doDebelopersCommands(trimmedLoweredQuery, DataOfBot, _Bot, telegramResponce.Message.Chat.Id);
                                }
                                else // команды для пользователей
                                {
                                    var message = "";
                                    switch (trimmedLoweredQuery)
                                    {
                                    case "start":
                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%start%").Text;
                                        message = message.Replace("%help%", "/help");
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "update":
                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%cacheupdate%").Text;
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "clear":
                                        botUser.LevelTutorial = 0;
                                        botUser.CustomerName  = "newuser";
                                        botUser.ModifiedDate  = DateTime.Now;
                                        dbMainContext.SaveChanges();

                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%clear%").Text;
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "skip":
                                        botUser.LevelTutorial = 4;
                                        botUser.ModifiedDate  = DateTime.Now;
                                        dbMainContext.SaveChanges();

                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%skip%").Text;
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "привет":
                                    case "hello":
                                    case "здравствуйте":
                                    case "пряффки":
                                    case "hi":

                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%hello%").Text;
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "пока":
                                    case "до свидания":
                                    case "спасибо":
                                    case "покеда":
                                    case "досвидули":
                                    case "большоеспасибо":
                                    case "прощай":
                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%thkx%").Text;
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "помощь":
                                    case "help":
                                    case "как это работает":
                                    case "хелп":
                                        message = MainDataOfBot.Texts.FirstOrDefault(x => x.Locale == botUser.Locale && x.Key == "%help%").Text;
                                        message = message.Replace("%place%", "/place");
                                        message = message.Replace("%tutorial%", "/tutorial");
                                        message = message.Replace("%help%", "/help");
                                        message = BotTextHelper.SmileCodesReplace(message);
                                        await _Bot.SendTextMessageAsync(telegramResponce.Message.Chat.Id, message);

                                        break;

                                    case "что делать":
                                    case "tutorial":
                                    case "обучение":
                                    case "туториал":
                                        answer = await mbApiFunctional.doTutorial(botUser, telegramResponce.Message.Text, _Bot, telegramResponce.Message.Chat.Id, dbMainContext, DataOfBot, true);

                                        break;

                                    default:
                                        if (botUser.LevelTutorial != 4)
                                        {
                                            answer = await mbApiFunctional.doTutorial(botUser, telegramResponce.Message.Text, _Bot, telegramResponce.Message.Chat.Id, dbMainContext, DataOfBot);
                                        }
                                        else
                                        {
                                            var mbFunctionalAnalizer = new MallBotFunctionalAnalizeTelegramHelper();
                                            answer = await mbFunctionalAnalizer.AnaliseDoWorkResult(telegramResponce.Message.Text, telegramResponce.Message.Chat.Id, DataOfBot, _Bot, botUser);

                                            IsTutorial = false;
                                        }
                                        break;
                                    }
                                }
                            }
                        }

                        //пишем  в базу запрос
                        if (botUser != null)
                        {
                            if (DataOfBot == null)
                            {
                                mbDBHelper.AddBotQuery(botUser, ulong.Parse(telegramResponce.Message.Chat.Id.ToString()), 2, answer, telegramResponce.Message.Text, IsTutorial, TimeToStartAnswer, thisQuery);
                            }
                            else
                            {
                                mbDBHelper.AddBotQuery(botUser, ulong.Parse(telegramResponce.Message.Chat.Id.ToString()), 2, answer, telegramResponce.Message.Text, IsTutorial, TimeToStartAnswer, thisQuery);
                            }
                        }

                        return(new HttpResponseMessage(HttpStatusCode.OK)
                        {
                            Content = new StringContent("ok"),
                        });
                    }
                    catch (Exception exc)
                    {
                        Logging.Logger.Error(exc);
                        return(new HttpResponseMessage(HttpStatusCode.OK));
                    }
                }
            }

            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent("ok"),
            });
        }
Exemple #4
0
        public async Task <int> Wall_Post(string groupID, string message, byte[] image = null)
        {
            try
            {
                var handler = new HttpClientHandler();
                handler.CookieContainer = new CookieContainer();

                using (var client = new HttpClient(handler))
                {
                    message = BotTextHelper.SmileCodesReplace(message, SocialNetworkType.VK);
                    message = message.Replace("\\n", "\n");
                    message = HttpUtility.UrlEncode(message);
                    string responceString;

                    if (image != null)
                    {
                        var url = $"https://api.vk.com/method/photos.getWallUploadServer?access_token={_apptoken}&group_id={groupID}";
                        using (var responce = await client.GetAsync(url))
                        {
                            responceString = responce.Content.ReadAsStringAsync().Result;
                            if (responceString.Contains("error") || !responce.IsSuccessStatusCode)
                            {
                                Logging.Logger.Error($"VK Api Wall Post GetUrl: NOT OK {responceString}");
                                return(1);
                            }
                        }

                        JObject json           = JObject.Parse(responceString);
                        var     uploadImageUrl = json["response"]["upload_url"].ToString();

                        //Загружаем изображение
                        MultipartFormDataContent form = new MultipartFormDataContent();
                        form.Add(new ByteArrayContent(image), "photo", "photo.jpg");
                        using (var responce = await client.PostAsync(uploadImageUrl, form))
                        {
                            responceString = responce.Content.ReadAsStringAsync().Result;
                            if (responceString.Contains("error") || !responce.IsSuccessStatusCode)
                            {
                                Logging.Logger.Error($"VK Api Wall Post LoadPhotoToVkServ: NOT OK {responceString}");
                                return(1);
                            }
                        }
                        json = JObject.Parse(responceString);

                        var photo  = json["photo"];
                        var server = json["server"];
                        var hash   = json["hash"];

                        url = $"https://api.vk.com/method/photos.saveWallPhoto?access_token={_apptoken}&group_id={groupID}&server={server}&photo={photo}&hash={hash}";
                        using (var responce = await client.GetAsync(url))
                        {
                            responceString = responce.Content.ReadAsStringAsync().Result;

                            if (responceString.Contains("error") || !responce.IsSuccessStatusCode)
                            {
                                Logging.Logger.Error($"VK Api SavePhotoToVkServ: NOT OK {responceString}");
                                return(1);
                            }
                        }
                        json = JObject.Parse(responceString);
                        var attachment = json["response"][0]["id"].ToString();//photo{owner_id}_{pid}


                        url = $"https://api.vk.com/method/wall.post?owner_id=-{groupID}&message={message}&attachments={attachment}&access_token={_apptoken}";

                        using (var res = await client.GetAsync(url))
                        {
                            responceString = res.Content.ReadAsStringAsync().Result;

                            if (responceString.Contains("error") || !res.IsSuccessStatusCode)
                            {
                                Logging.Logger.Error($"Vk Api SendMessageWithPhoto: NOT OK {responceString}");
                                return(1);
                            }
                        }
                        return(0);
                    }
                    else
                    {
                        var url = $"https://api.vk.com/method/wall.post?owner_id=-{groupID}&message={message}&access_token={_apptoken}";
                        using (var res = await client.GetAsync(url))
                        {
                            responceString = res.Content.ReadAsStringAsync().Result;
                            if (responceString.Contains("error") || !res.IsSuccessStatusCode)
                            {
                                Logging.Logger.Error($"Vk Api SendMessageWithPhoto: NOT OK {responceString}");
                                return(1);
                            }
                        }
                        return(0);
                    }
                }
            }

            catch (Exception exc)
            {
                Logging.Logger.Error(exc);
                return(1);
            }
        }
Exemple #5
0
        /// <summary>
        /// Не больше 25 сообщений за раз.
        /// </summary>
        /// <param name="Requests"></param>
        /// <returns></returns>
        public async Task <int> SendAllRequests(List <VKApiRequestModel> Requests)
        {
            var handler = new HttpClientHandler();

            handler.CookieContainer = new CookieContainer();
            var httpClient = new HttpClient(handler);

            string uploadImageUrl        = "";
            var    IsError               = 0;
            string url                   = "";
            HttpResponseMessage responce = null;
            var     responceString       = "";
            JObject json                 = null;

            if (Requests.Where(x => x.Type == RequestType.SendMessageWithPhoto).Count() > 0)
            {
                // получаем url для загрузки изображений на сервак
                url      = $"https://api.vk.com/method/photos.getMessagesUploadServer?access_token={_token}&v=5.57";
                responce = await httpClient.GetAsync(url);

                responceString = responce.Content.ReadAsStringAsync().Result;

                if (responceString.Contains("error"))
                {
                    IsError = 1;
                    Logging.Logger.Error($"VK Api Get Url: NOT OK {responceString}");
                }

                json           = JObject.Parse(responceString);
                uploadImageUrl = json["response"]["upload_url"].ToString();
            }
            string ids      = "";
            string messages = "";
            string types    = "";
            string photos   = "";
            string hashs    = "";
            string servers  = "";

            foreach (var item in Requests)
            {
                ids      += item.User_ID.ToString() + ", ";
                messages += "\"" + item.Message.Replace("\"", "\\\"") + "\", ";
                types    += ((int)item.Type).ToString() + ", ";

                if (item.Type == RequestType.SendMessageWithPhoto)
                {
                    //Загружаем изображение
                    MultipartFormDataContent form = new MultipartFormDataContent();
                    form.Add(new ByteArrayContent(item.Photo), "photo", "photo.jpg");
                    responce = await httpClient.PostAsync(uploadImageUrl, form);

                    responceString = responce.Content.ReadAsStringAsync().Result;

                    if (responceString.Contains("error"))
                    {
                        IsError = 1;
                        Logging.Logger.Error($"VK Api Load: NOT OK {responceString}");
                    }

                    json = JObject.Parse(responceString);
                    var photo  = json["photo"];
                    var server = json["server"];
                    var hash   = json["hash"];

                    if (photo.ToString() == "[]")
                    {
                        await SendMessage(item.User_ID, "Опаньки! Мы попали на неудачный сервер. Мы уже на пути к тому, чтобы устранить эту проблему, но пока я не смогу ответить на ваши вопросы 3(");

                        IsError = 1;
                        return(IsError);
                    }

                    photos  += "\"" + photo.ToString().Replace("\"", "\\\"") + "\", ";
                    servers += "\"" + server.ToString() + "\", ";
                    hashs   += "\"" + hash.ToString() + "\", ";
                }
                else
                {
                    photos  += "\"empty\", ";
                    servers += "\"empty\", ";
                    hashs   += "\"empty\", ";
                }
            }
            // передает в скрип "code" параметры
            var code = Properties.Resources.SendMessageWithPhotoSkript;

            code = code.Replace("Pids", ids.Remove(ids.Length - 2));
            code = code.Replace("Pmessages", messages.Remove(messages.Length - 2));
            code = code.Replace("Phashs", hashs.Remove(hashs.Length - 2));
            code = code.Replace("Pphotos", photos.Remove(photos.Length - 2));
            code = code.Replace("Pservers", servers.Remove(servers.Length - 2));
            code = code.Replace("Ptypes", types.Remove(types.Length - 2));
            code = code.Replace("Pcount", Requests.Count.ToString());
            code = BotTextHelper.SmileCodesReplace(code, SocialNetworkType.VK);
            code = HttpUtility.UrlEncode(code);
            //генерим контент для пост запроса
            string        data      = "code=" + code + "&access_token=" + _token + "&v=5.53";
            StringContent parametrs = new StringContent(data, Encoding.UTF8, "application/x-www-form-urlencoded");

            //вызываем метод, параметром которого является скрипт, который выполнится на строне vk.com без лимитов (почти)
            url = $"https://api.vk.com/method/execute";

            using (var client = new HttpClient())
            {
                using (var r = await client.PostAsync(new Uri(url), parametrs))
                {
                    responce       = r;
                    responceString = await r.Content.ReadAsStringAsync();


                    if (responceString.Contains("error"))
                    {
                        IsError = 1;
                        Logging.Logger.Error($"VK Api Execute: NOT OK {responceString}, data {data}");
                    }
                }
            }
            return(IsError);
        }