12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System.Threading.Tasks;
- using MafiaTelegramBot.DataBase;
- using Telegram.Bot.Types;
- using Telegram.Bot.Types.Enums;
- using Telegram.Bot.Types.ReplyMarkups;
- namespace MafiaTelegramBot.Models.Commands
- {
- public class StartCommand : Command
- {
- protected override string Name => "/start";
- public override async Task<Message> Execute(Update update)
- {
- var chatId = update.Message.Chat.Id;
- await Bot.Get().SendChatActionAsync(chatId, ChatAction.Typing);
- ReplyKeyboardMarkup keyboard = new(
- new[]
- {
- new KeyboardButton[] {strings.create_game},
- new KeyboardButton[] {strings.connect_game},
- new KeyboardButton[] {strings.show_profile}
- },
- true
- );
- var message = await Bot.SendWithMarkdown2(chatId, strings.start_message, keyboard);
- var userId = update.Message.From.Id;
- var username = update.Message.From.Username;
- username = username != null ?await Task.Run(()=> username
- .Replace(".", "\\.")
- .Replace("`", "\\`")
- .Replace("@", "\\@")
- .Replace("#", "\\#")
- .Replace("!", "\\!")
- .Replace("*", "\\*")
- .Replace("_", "\\_")
- .Replace("'", "\\'")
- .Replace("~", "\\~")
- .Replace("[", "\\[")
- ):"";
- var firstName = update.Message.From.FirstName;
- firstName = firstName != null ?await Task.Run(()=> firstName
- .Replace(".", "\\.")
- .Replace("`", "\\`")
- .Replace("@", "\\@")
- .Replace("#", "\\#")
- .Replace("!", "\\!")
- .Replace("*", "\\*")
- .Replace("_", "\\_")
- .Replace("'", "\\'")
- .Replace("~", "\\~")
- .Replace("[", "\\[")
- ):"";
- var lastName = update.Message.From.LastName;
- lastName = lastName != null ?await Task.Run(()=> lastName
- .Replace(".", "\\.")
- .Replace("`", "\\`")
- .Replace("@", "\\@")
- .Replace("#", "\\#")
- .Replace("!", "\\!")
- .Replace("*", "\\*")
- .Replace("_", "\\_")
- .Replace("'", "\\'")
- .Replace("~", "\\~")
- .Replace("[", "\\[")
- ):"";
- if (await UserDao.UserExists(userId)) return message;
- var user = new DataBase.User
- {
- Id = userId, ChatId = chatId, Username = username, FirstName = firstName, LastName = lastName
- };
- await UserDao.Update(user);
- return message;
- }
- }
- }
|