/// <summary> /// Нажатие Enter аналогичные действия отправки сообщения пользователю /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void Window_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { //Если пользователь выбран if (forIdTB.Text != "") { //Если есть прикрепленный файл и нет сообщения if (pathToFile.Text != "" && ForInputmsgTBox.Text == "") { //В зависимости от типа файла вызывается соответсвующий метод if (fi.FullName.Contains("jpg")) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); await client.bot.SendPhotoAsync(Convert.ToInt64(forIdTB.Text), fileToSend).ConfigureAwait(false); } } if (fi.FullName.Contains("mp3")) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); await client.bot.SendAudioAsync(Convert.ToInt64(forIdTB.Text), fileToSend).ConfigureAwait(false); } } //Очистка формы Dispatcher.Invoke(() => pathToFile.Text = ""); Dispatcher.Invoke(() => imgToSend.Source = null); } //Если нет файла для отправки и есть сообщение else if (pathToFile.Text == "" && ForInputmsgTBox.Text != "") { //Строка сообщения из данных текстбокса string message = ForInputmsgTBox.Text; //Отправка и добавление в лог сообщения, очистка формы Dispatcher.Invoke(() => client.SendMessage(ForInputmsgTBox.Text, forIdTB.Text)); Dispatcher.Invoke(() => client.BotMsgLog[TgMsgClient.usersDictionary[long.Parse(forIdTB.Text)] - 1].Add(new MsgLog(message, "СомНэйм", client.bot.BotId))); Dispatcher.Invoke(() => pathToFile.Text = ""); Dispatcher.Invoke(() => ForInputmsgTBox.Clear()); Dispatcher.Invoke(() => imgToSend.Source = null); } //Если есть и сообщение и файл, то выполняется совокупность действий двух предыдущих if else if (pathToFile.Text != "" && ForInputmsgTBox.Text != "") { string message = ForInputmsgTBox.Text; if (pathToFile.Text != "" && !pathToFile.Text.Contains("\"coord\"")) { if (fi.FullName.Contains("jpg")) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); await client.bot.SendPhotoAsync(Convert.ToInt64(forIdTB.Text), fileToSend).ConfigureAwait(false); } } if (fi.FullName.Contains("mp3")) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); await client.bot.SendAudioAsync(Convert.ToInt64(forIdTB.Text), fileToSend).ConfigureAwait(false); } } } Dispatcher.Invoke(() => client.SendMessage(ForInputmsgTBox.Text, forIdTB.Text)); Dispatcher.Invoke(() => client.BotMsgLog[TgMsgClient.usersDictionary[long.Parse(forIdTB.Text)] - 1].Add(new MsgLog(message, "СомНэйм", client.bot.BotId))); Dispatcher.Invoke(() => pathToFile.Text = ""); Dispatcher.Invoke(() => ForInputmsgTBox.Clear()); Dispatcher.Invoke(() => imgToSend.Source = null); } else { MessageBox.Show("Нет данных для отправки."); } } else { MessageBox.Show("Выберете получателя."); } } }
/// <summary> /// Метод обработки события нажатия кнопки "отправить всем". Алгоритмы и методы аналогичны кнопке отправки сообщения. /// Только здесь отправка происходит всем пользователям из списка TgMsgClient.idList посредством foreach /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void OnSendMsgToAllBtnClick(object sender, RoutedEventArgs e) { if (TgMsgClient.idList.Count != 0) { if (pathToFile.Text != "" && ForInputmsgTBox.Text == "") { if (pathToFile.Text != "" && !pathToFile.Text.Contains("\"coord\"")) { if (fi.FullName.Contains("jpg")) { foreach (int i in TgMsgClient.idList) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); long id = Convert.ToInt64(i); await client.bot.SendPhotoAsync(id, fileToSend); } } } if (fi.FullName.Contains("mp3")) { foreach (int i in TgMsgClient.idList) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); long id = Convert.ToInt64(i); await client.bot.SendAudioAsync(id, fileToSend); } } } } Dispatcher.Invoke(() => pathToFile.Text = ""); Dispatcher.Invoke(() => imgToSend.Source = null); } else if (pathToFile.Text == "" && ForInputmsgTBox.Text != "") { string message = ForInputmsgTBox.Text; foreach (int i in TgMsgClient.idList) { long id = Convert.ToInt64(i); await client.bot.SendTextMessageAsync(id, ForInputmsgTBox.Text); } foreach (int i in TgMsgClient.idList) { long id = Convert.ToInt64(i); Dispatcher.Invoke(() => client.BotMsgLog[TgMsgClient.usersDictionary[id] - 1].Add(new MsgLog(message, "СомНэйм", client.bot.BotId))); } Dispatcher.Invoke(() => ForInputmsgTBox.Clear()); } else if (pathToFile.Text != "" && ForInputmsgTBox.Text != "") { if (pathToFile.Text != "" && !pathToFile.Text.Contains("\"coord\"")) { if (fi.FullName.Contains("jpg")) { foreach (int i in TgMsgClient.idList) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); long id = Convert.ToInt64(i); await client.bot.SendPhotoAsync(id, fileToSend); } } } if (fi.FullName.Contains("mp3")) { foreach (int i in TgMsgClient.idList) { using (var s = File.OpenRead($@"{fi.FullName}")) { var fileToSend = new Telegram.Bot.Types.InputFiles.InputOnlineFile(s); long id = Convert.ToInt64(i); await client.bot.SendAudioAsync(id, fileToSend); } } } } string message = ForInputmsgTBox.Text; foreach (int i in TgMsgClient.idList) { long id = Convert.ToInt64(i); await client.bot.SendTextMessageAsync(id, ForInputmsgTBox.Text); } foreach (int i in TgMsgClient.idList) { long id = Convert.ToInt64(i); Dispatcher.Invoke(() => client.BotMsgLog[TgMsgClient.usersDictionary[id] - 1].Add(new MsgLog(message, "СомНэйм", client.bot.BotId))); } Dispatcher.Invoke(() => pathToFile.Text = ""); Dispatcher.Invoke(() => ForInputmsgTBox.Clear()); Dispatcher.Invoke(() => imgToSend.Source = null); } else { MessageBox.Show("Нет данных для отправки."); } } else { MessageBox.Show("Не найдено ни одного получателя."); } }