private async void NextButton_Click(object sender, RoutedEventArgs e) { if ((ValidUsername == true) && (ValidEmail == true) && (ValidPhone == true) && (ValidPassword == true) && (ValidMasterPassword == true)) { string salt = CryptoClass.GetRandomNumber(); //Отправка Email string EmailCode = CryptoClass.GetRandomNumber(); DatabaseLogicClass.SQLiteExecute("INSERT INTO codes(code_source,code) VALUES ('" + CryptoClass.MD5Hash(EmalTextBox.Text + salt) + "','" + CryptoClass.MD5Hash(EmailCode) + "')"); await EmailSenderClass.SendEmailAsync("Ваш код для подтверждения e-mail: " + EmailCode, EmalTextBox.Text); //MessageBox.Show("Email code: " + EmailCode); //Отпрвка SMS string SMSCode = CryptoClass.GetRandomNumber(); DatabaseLogicClass.SQLiteExecute("INSERT INTO codes(code_source,code) VALUES ('" + CryptoClass.MD5Hash(PhoneTextBox.Text + salt) + "','" + CryptoClass.MD5Hash(SMSCode) + "')"); SMSSenderClass ConfirmSMS_obj = new SMSSenderClass(); string[] numbers = new string[] { PhoneTextBox.Text }; var request = new Request { numbers = numbers, text = SMSCode, channel = "DIRECT" }; ConfirmSMS_obj.sms_send(request); //MessageBox.Show("Тук тук халявная SMS: "+SMSCode); ConfirmAllWindow ConfirmWindow_obj = new ConfirmAllWindow(EmalTextBox.Text, PhoneTextBox.Text, CryptoClass.MD5Hash(PasswordBox.Password), salt, UsernameTextBox.Text); ConfirmWindow_obj.Show(); Close(); } }
private async void PhoneConfirmButton_Click(object sender, RoutedEventArgs e) { if ((OldPhoneValidation == true) && (NewPhoneValidation = true)) { string salt = CryptoClass.GetRandomNumber(); string SMSCode = CryptoClass.GetRandomNumber(); DatabaseLogicClass.SQLiteExecute("INSERT INTO codes(code_source,code) VALUES ('" + CryptoClass.MD5Hash(NewPhoneTextBox.Text + salt) + "','" + CryptoClass.MD5Hash(SMSCode) + "')"); SMSSenderClass ConfirmSMS_obj = new SMSSenderClass(); string[] numbers = new string[] { NewPhoneTextBox.Text }; var request = new Request { numbers = numbers, text = SMSCode, channel = "DIRECT" }; ConfirmSMS_obj.sms_send(request); DEMKAInputBox SMSdemka_obj = new DEMKAInputBox("Ввведите код, отправленный на новый номер телефона:"); string InputCode = SMSdemka_obj.ShowDialog(); if (InputCode == SMSCode) { await DatabaseLogicClass.MySQLExecuteAsync("UPDATE Users SET Phone = '" + CryptoClass.MD5Hash(NewPhoneTextBox.Text) + "' WHERE Phone='" + CryptoClass.MD5Hash(OldPhoneTextBox.Text) + "' "); MessageBox.Show("Успешно обновили номер телефона с " + OldPhoneTextBox.Text + " на " + NewPhoneTextBox.Text); } else { MessageBox.Show("Код подтвержения '" + InputCode + "' не является действительным"); } Close(); } }
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 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; } }
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; } }
private async void FinalSendButton_Click(object sender, RoutedEventArgs e) { //Отправка произовольного текста произвольному получателю if ((TextSecondRadioButton.IsChecked == true) && (NumbersSecondRadioButton.IsChecked == true)) { if ((NumbersToSend.Text != "") && (TextToSend.Text != "")) { if (MessageBox.Show("Вы действительно хотите отправить сообщение '" + TextToSend.Text + "' на номер " + NumbersToSend.Text + "?", "Отправка сообщения", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { SMSSenderClass sms_obj = new SMSSenderClass(); string[] numbers = new string[] { NumbersToSend.Text }; var request = new Request { numbers = numbers, text = TextToSend.Text, channel = "DIRECT" }; if (sms_obj.sms_send(request) != "false") { MessageBox.Show("Успешная отправка сообщения"); } } } else { MessageBox.Show("Сообщение и/или номер отправления не могут быть пустыми"); } } //Отправка произвольного текста всем получателям из БД else if ((TextSecondRadioButton.IsChecked == true) && (NumbersFirstRadioButton.IsChecked == true)) { if (TextToSend.Text != "") { SMSSenderClass sms_obj = new SMSSenderClass(); string bufnumberstr = await DatabaseLogicClass.MySQLGetAsync("SELECT phone FROM Phones"); string[] numbers = bufnumberstr.Split(','); Array.Resize(ref numbers, numbers.Length - 1); var request = new Request { numbers = numbers, text = TextToSend.Text, channel = "DIRECT" }; if (sms_obj.sms_send(request) != "false") { MessageBox.Show("Успешная отправка сообщения всем получателям из БД!"); } } else { MessageBox.Show("Сообщение для отправки не может быть пустым"); } } //Отправка текста из БД произвольному получателю else if ((TextFirstRadioButton.IsChecked == true) && (NumbersSecondRadioButton.IsChecked == true) && (GroupsComboBox.SelectedIndex != -1)) { if (NumbersToSend.Text != "") { if (SaveDatabaseCheckBox.IsChecked == true) { string thisgroup = GroupsComboBox.SelectedValue.ToString(); await DatabaseLogicClass.MySQLExecuteAsync("INSERT INTO Phones(phone,groups) VALUES (\"" + NumbersToSend.Text + "\",\"" + thisgroup + "\");"); MessageBox.Show("Успешное добавление нового пользователя с " + thisgroup + " и номером телефона " + NumbersToSend.Text + "!"); } if (SendSMSCheckBox.IsChecked == true) { ParseJSONLogicClass thisjson_obj = new ParseJSONLogicClass(); thisjson_obj.GetTimetableJSON(); string selectedgroup = GroupsComboBox.SelectedValue.ToString(); string thisgroupresult = thisjson_obj.GetTimetableByGroup(selectedgroup); SMSSenderClass sms_obj = new SMSSenderClass(); if (thisgroupresult == "false") { if (MessageBox.Show("Нет изменений в расписании для группы " + selectedgroup + "\nХотите отправить оповещение об этом?", "Нет изменений", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { string[] numbers = new string[] { NumbersToSend.Text }; var request = new Request { numbers = numbers, text = "Нет изменений в расписании группы " + selectedgroup, channel = "DIRECT" }; if (sms_obj.sms_send(request) != "false") { MessageBox.Show("Успешная отправка сообщения"); } } } else { string[] numbers = new string[] { NumbersToSend.Text }; var request = new Request { numbers = numbers, text = thisgroupresult, channel = "DIRECT" }; if (sms_obj.sms_send(request) != "false") { MessageBox.Show("Успешная отправка сообщения"); } } } } else { MessageBox.Show("Номер отправления не может быть пустым"); } } //Отправка сообщения из БД получателям из БД else if ((TextFirstRadioButton.IsChecked == true) && (NumbersFirstRadioButton.IsChecked == true)) { ParseJSONLogicClass mainjson_obj = new ParseJSONLogicClass(); mainjson_obj.GetTimetableJSON(); string phonesbufresult = await DatabaseLogicClass.MySQLGetAsync("SELECT phone FROM Phones"); string groupsbufresult = await DatabaseLogicClass.MySQLGetAsync("SELECT groups FROM Phones"); string[] phonesarr = phonesbufresult.Split(','); Array.Resize(ref phonesarr, phonesarr.Length - 1); string[] groupsarr = groupsbufresult.Split(','); Array.Resize(ref groupsarr, groupsarr.Length - 1); int globalcounter = 0; for (int i = 0; i < phonesarr.Length; i++) { string thisgroupresult = mainjson_obj.GetTimetableByGroup(groupsarr[i]); if (thisgroupresult != "false") { SMSSenderClass sms_obj = new SMSSenderClass(); string[] numbers = new string[] { phonesarr[i] }; var request = new Request { numbers = numbers, text = thisgroupresult, channel = "DIRECT" }; if (sms_obj.sms_send(request) != "false") { globalcounter++; } } } MessageBox.Show("Отправлено " + globalcounter.ToString() + " сообщений из " + phonesarr.Length.ToString()); } GetSMSBalance(); TextToSend.Text = ""; NumbersToSend.Text = ""; }