/// <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);
                }
            }
        }
Exemplo n.º 2
0
 /// <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();
        }