private async Task <ICommandAnswer> AddMe(Telegram.Bot.Types.Message message) { if (message.Text.Length > 6) { await using var db = new DatabaseOsu(); string player = ProfileLinkParser.Parse(message.Text)?.Id; if (string.IsNullOrEmpty(player)) { player = message.Text.Substring(7); } if (!string.IsNullOrEmpty(player)) { if (db.Players.Any(x => x.TelegramID == message.From.Id)) { return(Localization.GetAnswer($"annoy_{RNG.NextNoMemory(1, 10)}", message.Chat.Id)); } if (!uint.TryParse(player, out var osuID)) { // if they used /u/cookiezi instead of /u/124493 we ask osu API for an ID var info = await WebApiHandler.MakeApiRequest(new GetUser(player)); if (info == null) { return(Localization.GetAnswer("recentscores_player_add_failed", message.Chat.Id)); } else { osuID = info.Id; } } if (osuID != 0) { await db.Players.AddAsync(new DatabaseOsu.Player { OsuID = osuID, TelegramID = message.From.Id }); await db.SaveChangesAsync(); return(Localization.GetAnswer("recentscores_player_add_success", message.Chat.Id)); } } } return(Localization.GetAnswer("recentscores_player_add_failed", message.Chat.Id)); }
private async Task <ICommandAnswer> RemoveMe(Telegram.Bot.Types.Message message) { await using (var db = new DatabaseOsu()) { var player = db.Players.FirstOrDefault(x => x.TelegramID == message.From.Id); if (player != null) { db.Players.Remove(player); await db.SaveChangesAsync(); return(Localization.GetAnswer("recentscores_player_remove_success", message.Chat.Id)); } return(Localization.GetAnswer("generic_fail", message.Chat.Id)); } }