Ejemplo n.º 1
0
 private void GetSMSBalance()
 {
     try
     {
         SMSSenderClass sms_obj     = new SMSSenderClass();
         dynamic        BalanceJSON = JObject.Parse(sms_obj.balance());
         BalanceLabel.Content = "Текущий баланс: " + BalanceJSON.data.balance + "₽";
     }
     catch (Newtonsoft.Json.JsonReaderException)
     {
         return;
     }
 }
Ejemplo n.º 2
0
        private async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            var message = messageEventArgs.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            bool AdminResult = await AdminCheckerAsync(message.Chat.Id.ToString());

            if (AdminResult == false)
            {
                return;
            }

            switch (message.Text.Split(' ').First())
            {
            case "/sms":
                try
                {
                    SMS_number  = (message.Text.Split(' '))[1];
                    SMS_message = (message.Text.Split('"'))[1];

                    ReplyKeyboardMarkup ReplyKeyboard = new[]
                    {
                        new[] { "Да", "Нет" },
                    };

                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Вы действительно хотите отправить сообщение \"" + SMS_message + "\" на номер " + SMS_number + "?",
                        replyMarkup : ReplyKeyboard);
                }
                catch
                {
                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Синтаксис использования команды:\n/sms номер_телефона \"Сообщение\"");
                }
                break;

            case "/balance":

                SMSSenderClass sms_obj     = new SMSSenderClass();
                dynamic        BalanceJSON = JObject.Parse(sms_obj.balance());
                string         out_str     = "Текущий баланс: " + BalanceJSON.data.balance + "₽";

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    out_str);

                break;

            //Доделать
            case "/history":

                var FormatDictionary = new Dictionary <string, string>
                {
                    { "1", "1️⃣" },
                    { "2", "2️⃣" },
                    { "3", "3️⃣" },
                    { "4", "4️⃣" },
                    { "5", "5️⃣" }
                };

                string         OutString      = "Последние 5 отправленных сообщений:\n";
                SMSSenderClass SMSHistory_obj = new SMSSenderClass();
                dynamic        HistoryJSON    = JObject.Parse(SMSHistory_obj.sms_list(new Request {
                    page = 1
                }));

                for (int i = 0; i < 5; i++)
                {
                    JObject ThisSMS = HistoryJSON.data[i.ToString()];
                    OutString += FormatDictionary[(i + 1).ToString()] + " +" + ThisSMS["number"] + " \"" + ThisSMS["text"] + "\"\n\n";
                }

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    OutString);

                break;

            case "Да":

                if ((Convert.ToString(SMS_message) != null) || (Convert.ToString(SMS_number) != null))
                {
                    SMSSenderClass TelegramSMS_obj = new SMSSenderClass();
                    string[]       numbers         = new string[] { SMS_number };
                    TelegramSMS_obj.sms_send(new Request {
                        numbers = numbers, text = SMS_message, channel = "DIRECT"
                    });
                    dynamic TelegramBalanceJSON = JObject.Parse(TelegramSMS_obj.balance());


                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Сообщение успешно отправлено, остаток на балансе " + TelegramBalanceJSON.data.balance + "₽",
                        replyMarkup : new ReplyKeyboardRemove());
                }
                else
                {
                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Что-то пошло не так при отправке сообщения 😔\nПовторно воспользуйтесь командой /sms",
                        replyMarkup : new ReplyKeyboardRemove());
                }

                SMS_message = null;
                SMS_User    = SMS_message;

                break;

            case "/user":
                try
                {
                    SMS_User = (message.Text.Split(' '))[1];
                    if (IntChecker(SMS_User) == true)
                    {
                        ReplyKeyboardMarkup UserReplyKeyboard = new[]
                        {
                            new[] { "Добавление", "Удаление" },
                        };

                        await Bot.SendTextMessageAsync(
                            message.Chat.Id,
                            "Доступные действия с пользователем " + SMS_User + ":",
                            replyMarkup : UserReplyKeyboard);
                    }
                    else
                    {
                        await Bot.SendTextMessageAsync(
                            message.Chat.Id,
                            "Некорректный ввод пользователя, попробуйте заново", replyMarkup : new ReplyKeyboardRemove());
                    }
                }
                catch
                {
                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Синтаксис использования команды:\n/user id_пользователя", replyMarkup : new ReplyKeyboardRemove());
                }

                break;

            case "Добавление":
                if (await DatabaseLogicClass.MySQLExecuteAsync("INSERT INTO TGAdmins(AdminTG) VALUES('" + SMS_User + "')") == true)
                {
                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Добавление пользователя " + SMS_User + " успешно", replyMarkup : new ReplyKeyboardRemove());
                }

                SMS_User = null;
                break;

            case "Удаление":
                if (await DatabaseLogicClass.MySQLExecuteAsync("DELETE FROM TGAdmins WHERE AdminTG = '" + SMS_User + "'") == true)
                {
                    await Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Удаление пользователя " + SMS_User + " успешно", replyMarkup : new ReplyKeyboardRemove());
                }
                SMS_User = null;
                break;



            default:
                const string usage = @"
Доступные команды:
<b>/sms</b> - отправка сообщения
<b>/balance</b> - текущий баланс
<b>/history</b> - последние отправленные сообщения
<b>/user</b> - управление пользователями";

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    usage,
                    parseMode : ParseMode.Html,
                    replyMarkup : new ReplyKeyboardRemove());

                break;
            }
        }