Example #1
0
        /// <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("Выберете получателя.");
                }
            }
        }
Example #2
0
        /// <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("Не найдено ни одного получателя.");
            }
        }