public Keyboard(int messageId) { using (BotDB db = new BotDB()) { Logger.Wright("Тип клавиатуры: " + db.Messages.Find(messageId).KType, "Keyboard", LogLevel.Info); switch (db.Messages.Find(messageId).KType) { case MessageKeyboardType.none: Remove = new ReplyKeyboardRemove { RemoveKeyboard = true }; break; case MessageKeyboardType.Reply: Reply = new ReplyKeyboardMarkup(); Message message = db.Messages.Find(messageId); Button[] btns = db.Buttons.Where <Button>(b => b.MessageId == messageId).ToArray <Button>(); Logger.Wright("Количество кнопок: " + btns.Length, "ReplyKeyboard", LogLevel.Info); int rows = (int)Math.Ceiling((Decimal)btns.Length / 2); Reply.ResizeKeyboard = true; Reply.OneTimeKeyboard = true; Reply.Keyboard = new Telegram.Bot.Types.KeyboardButton[rows][]; int n = 0; for (int r = 0; r < rows && n < btns.Length; r++) { int columns = 2; if ((btns.Length - n) == 1) { columns = 1; } Reply.Keyboard[r] = new Telegram.Bot.Types.KeyboardButton[columns]; for (int c = 0; c < columns && n < btns.Length; c++, n++) { Reply.Keyboard[r][c] = new Telegram.Bot.Types.KeyboardButton(btns[n].Text) { RequestContact = btns[n].Contact, RequestLocation = btns[n].Location }; } } break; case MessageKeyboardType.Inline: break; } } }
/// <summary> /// Сообщение пользователя /// </summary> /// <param name="msg">Текст сообщения</param> /// <param name="userId">Идентификатор пользователя</param> public static void Wright(string msg, int userId) { using (BotDB db = new BotDB()) { if (msg != null) { Logger.Wright(db.Users.Find(userId).FirstName + ": " + msg, "", userId, LogLevel.Info, LogType.Message); } else { Logger.Wright("Ответ " + db.Users.Find(userId).FirstName + "после регистрации", "", userId, LogLevel.Info, LogType.Message); } } }
public static int Registration(Telegram.Bot.Types.Contact contact) { Logger.Wright("Запрос регистрации. TelegramId: " + contact.UserId + " PhoneNumber: " + contact.PhoneNumber, "Регистрация", 1, LogLevel.Info); using (BotDB db = new BotDB()) { List <User> users = db.Users.ToList <User>(); foreach (User u in users) { int test = u.Phone.CompareTo(contact.PhoneNumber); if (u.Phone.CompareTo(contact.PhoneNumber) == 0) { Logger.Wright("Регистрация успешно пройдена. TelegramId: " + contact.UserId + " PhoneNumber: " + contact.PhoneNumber, "Регистрация", u.Id, LogLevel.Info); if (u.FirstName == null) { u.FirstName = contact.FirstName; } if (u.LastName == null) { u.LastName = contact.LastName; } u.TelegramId = contact.UserId; if (db.SaveChanges() > 0) { Logger.Wright("База обновлена!", "Регистрация", u.Id, LogLevel.Info); } else { Logger.Wright("Ошибка обновления базы", "Регистрация", u.Id, LogLevel.Error); } return(u.Id); } } } Logger.Wright("Регистрация отклонена. TelegramId: " + contact.UserId + " PhoneNumber: " + contact.PhoneNumber, "Регистрация", 1, LogLevel.Info); return(1); }
public static int Authorization(int TUserId) { Logger.Wright("Запрос авторизации.TelegramId: " + TUserId, "Авторизация", 1, LogLevel.Info); using (var db = new BotDB()) { foreach (User u in db.Users) { if (u.TelegramId == TUserId) { Logger.Wright("Авторизация успешно пройдена. TelegramId: " + TUserId, "Авторизация", u.Id, LogLevel.Info); return(u.Id); } } } Logger.Wright("Авторизация отклонена. TelegramId: " + TUserId, "Авторизация", 1, LogLevel.Info); return(1); }
private static void Wright(string msg, string source, int userId, LogLevel level, LogType type) { using (BotDB db = new BotDB()) { Log log = new Log { Type = type, Lvl = level, TXT = msg, TimeStamp = DateTime.Now, Source = source }; if (userId > 0) { log.UserId = userId; } db.Logs.Add(log); db.SaveChanges(); } }
public static async void Reply(int msgId, long chatId, Telegram.Bot.Types.Message msg, int userId) { Logger.Wright(msg.Text, userId); using (BotDB db = new BotDB()) { Message message = db.Messages.Find(msgId); Logger.Wright(message.Text); Logger.Wright("Тип сообщения: " + message.Type, "Reply", LogLevel.Info); Keyboard keyboard = new Keyboard(msgId); var client = await Bot.Get(); Telegram.Bot.Types.Message result; switch (message.Type) { case MessageType.Info: if (message.KType == MessageKeyboardType.none) { result = await client.SendTextMessageAsync(chatId, message.Text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard.Remove); if (result != null) { Logger.Wright("Сообщение отправленно!", "Reply", userId, LogLevel.Info); } else { Logger.Wright("Сообщение НЕ отправленно!", "Reply", userId, LogLevel.Error); } } else { result = await client.SendTextMessageAsync(chatId, message.Text); if (result != null) { Logger.Wright("Сообщение отправленно!", "Reply", userId, LogLevel.Info); } else { Logger.Wright("Сообщение НЕ отправленно!", "Reply", userId, LogLevel.Error); } } break; case MessageType.Condition: switch (message.KType) { case MessageKeyboardType.Reply: result = await client.SendTextMessageAsync(chatId, message.Text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard.Reply); if (result != null) { Logger.Wright("Сообщение отправленно!", "Reply", userId, LogLevel.Info); } else { Logger.Wright("Сообщение НЕ отправленно!", "Reply", userId, LogLevel.Error); } break; case MessageKeyboardType.Inline: result = await client.SendTextMessageAsync(chatId, message.Text, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard.Inline); if (result != null) { Logger.Wright("Сообщение отправленно!", "Reply", userId, LogLevel.Info); } else { Logger.Wright("Сообщение НЕ отправленно!", "Reply", userId, LogLevel.Error); } break; } break; case MessageType.Script: break; } } }