StartCommand.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. using System.Threading.Tasks;
  2. using MafiaTelegramBot.DataBase;
  3. using MafiaTelegramBot.Resources;
  4. using Telegram.Bot.Types;
  5. namespace MafiaTelegramBot.Models.Commands
  6. {
  7. public class StartCommand : Command
  8. {
  9. protected override string Name => "/start";
  10. public override async Task<Message> Execute(Update update)
  11. {
  12. if (await UserDao.UserExists(UserId))
  13. {
  14. var player = await UserDao.GetUserById(UserId);
  15. if (player.GetRoomKey() != "")
  16. return await Bot.SendWithMarkdown2(ChatId, $"{strings.prefer_leave_from_room} {await player.GetRoomName()}");
  17. return await Bot.SendWithMarkdown2(ChatId, strings.start_message, Keyboards.MainMenu);
  18. }
  19. var username = await Utilities.EscapeSpecific(update.Message.From.Username);
  20. var firstName = await Utilities.EscapeSpecific(update.Message.From.FirstName);
  21. var lastName = await Utilities.EscapeSpecific(update.Message.From.LastName);
  22. var user = new DataBase.User
  23. {
  24. Id = UserId, ChatId = ChatId, Username = username, NickName = $"{firstName} {lastName}"
  25. };
  26. await UserDao.Update(user);
  27. return await Bot.SendWithMarkdown2(ChatId, strings.start_message, Keyboards.MainMenu);
  28. }
  29. }
  30. }