/// <summary> /// Метод посылающий сообщение от имени бота /// </summary> /// <param name="text">Текст сообщения</param> /// <param name="id">Индетефикатор чата</param> public void SendMessage(string text, long id) { bot.SendTextMessageAsync(id, text); MessageLog message = new MessageLog(DateTime.Now.ToLongTimeString(), text, false); foreach (var i in Users) { if (i.ChatId == id) { i.AddMessage(message); } } }
/// <summary> /// Метод добавления сообщения в логи /// </summary> /// <param name="message">сообщение, которое требуется передать</param> public void AddMessage(MessageLog message) { MessageLogs.Add(message); }
/// <summary> /// Метод обработки текста /// </summary> /// <param name="e">сообщение</param> /// <param name="user">польхователь, передавший сообщение</param> private async void UseText(Telegram.Bot.Args.MessageEventArgs e, User user) { string[] split = e.Message.Text.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); if (!(split.Length > 0)) { return; } string SendMessage = ""; switch (split[0]) { case "/start": SendMessage = $"Приветствую тебя, {user.Firstname}! Это моя новая разработка, карманное облако!\n" + $"Здесь ты можешь хранить свои файлы. Для этого просто отправь сюда любой файл, а я сохраню его!\n" + $"Для просмотри своих файлов используй команду /list.\n" + $"Для загрузки файлов используй команду /upload (index), где index это номер файла из списка."; await bot.SendTextMessageAsync(user.ChatId, SendMessage); break; case "/list": SendMessage = $"{user.Firstname}, вывожу список твоих файлов! Не забудь скачать их с помощью команды /upload (index)\n"; SendMessage += user.GetNamesOfFiles(); await bot.SendTextMessageAsync(user.ChatId, SendMessage); break; case "/upload": if (!(split.Length > 1)) { break; } int res; if (int.TryParse(split[1], out res)) { string extention = Path.GetExtension(user.GetNameOfFile(res)); if (user.GetNameOfFile(res) == "") { SendMessage = $"{user.Firstname}, файл не был найден.\n" + $"Убедитесь в том, что вы указали правильный индекс."; await bot.SendTextMessageAsync(user.ChatId, SendMessage); return; } using (FileStream fs = new FileStream($@"Users\{user.Username}\{user.GetNameOfFile(res)}", FileMode.Open)) { Telegram.Bot.Types.InputFiles.InputOnlineFile file = new Telegram.Bot.Types.InputFiles.InputOnlineFile(fs); Upload(Convert.ToString(user.ChatId), extention, file); } } break; default: break; } MessageLog message = new MessageLog(DateTime.Now.ToLongTimeString(), e.Message.Text, true); user.AddMessage(message); if (SendMessage != "") { MessageLog botMessage = new MessageLog(DateTime.Now.ToLongTimeString(), SendMessage, false); user.AddMessage(botMessage); } SaveUsers(); }