public string[,] GetSMSInfoAPI() { var StatusDictionary = new Dictionary <string, string> { { "0", "в очереди" }, { "1", "доставлено" }, { "2", "не доставлено" }, { "3", "передано" }, { "4", "ожидание статуса сообщения" }, { "6", "сообщение отклонено" }, { "8", "на модерации" } }; SMSSenderClass SMSHistory_obj = new SMSSenderClass(); dynamic HistoryJSON = JObject.Parse(SMSHistory_obj.sms_list(new Request { page = 1 })); string[,] array = new string[10, 5]; for (int i = 0; i < 10; i++) { JObject ThisSMS = HistoryJSON.data[i.ToString()]; array[i, 0] = (i + 1).ToString(); array[i, 1] = ThisSMS["number"].ToString(); array[i, 2] = StatusDictionary[ThisSMS["status"].ToString()]; array[i, 3] = ThisSMS["cost"].ToString() + " руб."; string[] thisarr = ThisSMS["text"].ToString().Replace("\n", " ").Split(' '); array[i, 4] = (thisarr[0] == "Расписание") ? thisarr[0] + " " + thisarr[1] : ThisSMS["text"].ToString().Replace("\n", " "); } return(array); }
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; } }