Не меняется bool значение или я не правильно его пытаюсь изменить/прочитать

84
17 июня 2021, 13:20

хочу, чтобы success менялся на true или false в зависимости от ответа api. Код:

    private bool success;
    private void VKMessage(string msg) {
        string url = "https://api.vk.com/method/messages.send?user_id=" + config.ID + "&message=" + msg + "&v=5.68&access_token=" + config.Token;
        string type = "message"; 
        webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
    }
    private void VKGroupPost(string msg) {
        string url = "https://api.vk.com/method/wall.post?owner_id=-" + config.Group + "&message=" + msg + "&from_group=1&v=5.68&access_token=" + config.Token;
        string type = "post"; 
        webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
    }
    private void VKGroupStatus(string msg) {
        string url = "https://api.vk.com/method/status.set?group_id=" + config.Group + "&text=" + msg + "&v=5.68&access_token=" + config.Token;
        string type = "status"; 
        webrequest.Enqueue(url, null, (code, response) => GetCallback(code, response, type), this);
    }
    void GetCallback(int code, string response, string type) {
        if(!response.Contains("error"))
        {
            success = true;
        } else {
            success = false;
        }
    }
    [ConsoleCommand("vk")]
    void vk(ConsoleSystem.Arg args) {   
        if(args.Args[0].ToLower() == "status") {
            if(args.Args[1].ToLower() == "set") {
                string status = "";
                for (int i = 2; i < args.Args.Length; i++)
                    status += args.Args[i] + " ";
                VKGroupStatus(Uri.EscapeDataString(status));
                if(success == true) {
                    PrintWarning("Status \"" + status + "\" was success set");
                } else {
                    PrintError("Status \"" + status + "\" can't be set");
                }
            }
        } else 
        if(args.Args[0].ToLower() == "post") {              
            string post = "";
            for (int i = 1; i < args.Args.Length; i++)
                post += args.Args[i] + " ";
            VKGroupPost(Uri.EscapeDataString(post));
            if(success == true) {
                PrintWarning("Post \"" + post + "\" was success posted on the wall");
            } else {
                PrintError("Post \"" + post + "\" can't be posted on the wall");
            }
        } else
        if(args.Args[0].ToLower() == "message") {               
            string message = "";
            for (int i = 1; i < args.Args.Length; i++)
                message += args.Args[i] + " ";              
            VKMessage(Uri.EscapeDataString(message));
            if(success == true) {
                PrintWarning("Message \"" + message + "\" was success sent");
            } else {
                PrintError("Message \"" + message + "\" can't be sent");
            }
        } 
    }

Однако при таком коде если ввести в консоли команду vk message test, то сообщение уходит в ВК, но ответ получаю Message "test" can't be sent, а должно быть Message "test" success sent. Где у меня ошибка?

UPDATE: Заметил, что если выполнить одну и ту же команду (можно менять текст), т.е.: vk message text1 - будет false все последующие команды vk message text2 vk message text3 и т.д. будут true

Answer 1
   if(!response.Contains("error"))
   {
        /*bool*/ success = true;
   } else {
        /*bool*/ success = false;
   }

или

   success = !response.Contains("error");
READ ALSO
MySql запрос (Subquery returns more than 1 row)

MySql запрос (Subquery returns more than 1 row)

Пытаю выполнить вот такой запрос INSERT INTO catalog_product_entity_int(attribute_id, store_id, entity_id, value) VALUES (558, 0, (SELECT cpeentity_id FROM catalog_product_entity cpe LEFT JOIN catalog_product_entity_int cpei ON cpe

76
Сложный SQL запрос из нескольких таблиц [закрыт]

Сложный SQL запрос из нескольких таблиц [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

78
LIKE %[0-9]% против NOT LIKE %[^0-9]%

LIKE %[0-9]% против NOT LIKE %[^0-9]%

Не могу понять в чем разница между этими вариантамиДелал тестовое задание

108
Как найти соответствие email из json с базой данных и записать данные в MySQL?

Как найти соответствие email из json с базой данных и записать данные в MySQL?

Пытаюсь в dle cms сохранять дополнительную информацию о пользователе в базу данных, при этом дополнительные данные получаю из JSON со стороннего...

91