From 77735d81082e7d3ee3ae94054ce511d528f34a8f Mon Sep 17 00:00:00 2001 From: Nikolay Kochulin Date: Mon, 9 Dec 2019 09:24:27 +0000 Subject: [PATCH] Make locale a feature --- JetKarmaBot/Commands/AwardCommand.cs | 2 +- JetKarmaBot/Commands/ChangeLocaleCommand.cs | 2 +- JetKarmaBot/Commands/CurrenciesCommand.cs | 2 +- JetKarmaBot/Commands/HelpCommand.cs | 3 +-- JetKarmaBot/Commands/LeaderboardCommand.cs | 2 +- JetKarmaBot/Commands/StatusCommand.cs | 2 +- JetKarmaBot/Services/Handling/DatabaseHandler.cs | 4 +++- JetKarmaBot/Services/Handling/TimeoutManager.cs | 2 +- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/JetKarmaBot/Commands/AwardCommand.cs b/JetKarmaBot/Commands/AwardCommand.cs index 8ddf800..0c76edf 100644 --- a/JetKarmaBot/Commands/AwardCommand.cs +++ b/JetKarmaBot/Commands/AwardCommand.cs @@ -18,7 +18,7 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { var db = ctx.GetFeature(); - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + var currentLocale = ctx.GetFeature(); var awarder = ctx.EventArgs.Message.From; string awardTypeText = null; diff --git a/JetKarmaBot/Commands/ChangeLocaleCommand.cs b/JetKarmaBot/Commands/ChangeLocaleCommand.cs index 803e056..977d966 100644 --- a/JetKarmaBot/Commands/ChangeLocaleCommand.cs +++ b/JetKarmaBot/Commands/ChangeLocaleCommand.cs @@ -16,10 +16,10 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { var db = ctx.GetFeature(); + var currentLocale = ctx.GetFeature(); var cmd = ctx.Command; var args = ctx.EventArgs; - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; if (cmd.Parameters.Length < 1) { await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.getlocale"]); diff --git a/JetKarmaBot/Commands/CurrenciesCommand.cs b/JetKarmaBot/Commands/CurrenciesCommand.cs index c720c69..4da45ea 100644 --- a/JetKarmaBot/Commands/CurrenciesCommand.cs +++ b/JetKarmaBot/Commands/CurrenciesCommand.cs @@ -22,7 +22,7 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { var db = ctx.GetFeature(); - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + var currentLocale = ctx.GetFeature(); await ctx.SendMessage( currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n", (await db.AwardTypes.ToListAsync()) diff --git a/JetKarmaBot/Commands/HelpCommand.cs b/JetKarmaBot/Commands/HelpCommand.cs index bca1157..dd90aee 100644 --- a/JetKarmaBot/Commands/HelpCommand.cs +++ b/JetKarmaBot/Commands/HelpCommand.cs @@ -27,8 +27,7 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { - var db = ctx.GetFeature(); - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + var currentLocale = ctx.GetFeature(); var router = ctx.GetFeature().Router; if (ctx.Command.Parameters.Length < 1) { diff --git a/JetKarmaBot/Commands/LeaderboardCommand.cs b/JetKarmaBot/Commands/LeaderboardCommand.cs index 522b78c..fc82e87 100644 --- a/JetKarmaBot/Commands/LeaderboardCommand.cs +++ b/JetKarmaBot/Commands/LeaderboardCommand.cs @@ -15,7 +15,7 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { var db = ctx.GetFeature(); - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + var currentLocale = ctx.GetFeature(); var asker = ctx.EventArgs.Message.From; var awardTypeName = ctx.Command.Parameters.FirstOrDefault(); diff --git a/JetKarmaBot/Commands/StatusCommand.cs b/JetKarmaBot/Commands/StatusCommand.cs index 8ad0d53..3ef93c4 100644 --- a/JetKarmaBot/Commands/StatusCommand.cs +++ b/JetKarmaBot/Commands/StatusCommand.cs @@ -15,7 +15,7 @@ namespace JetKarmaBot.Commands public async Task Execute(RequestContext ctx) { var db = ctx.GetFeature(); - var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + var currentLocale = ctx.GetFeature(); var asker = ctx.EventArgs.Message.From; var awardTypeName = ctx.Command.Parameters.FirstOrDefault(); bool isPrivate = ctx.EventArgs.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Private; diff --git a/JetKarmaBot/Services/Handling/DatabaseHandler.cs b/JetKarmaBot/Services/Handling/DatabaseHandler.cs index d13bcd3..f5bf758 100644 --- a/JetKarmaBot/Services/Handling/DatabaseHandler.cs +++ b/JetKarmaBot/Services/Handling/DatabaseHandler.cs @@ -7,11 +7,13 @@ namespace JetKarmaBot.Services.Handling public class DatabaseHandler : IRequestHandler { [Inject] private KarmaContextFactory Db; + [Inject] private Localization Locale; public async Task Handle(RequestContext ctx, Func next) { using (var db = Db.GetContext()) { - ctx.Features.Add(db); + ctx.Features.Add(db); // KarmaContext + ctx.Features.Add(Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]); // Locale await next(ctx); await db.SaveChangesAsync(); } diff --git a/JetKarmaBot/Services/Handling/TimeoutManager.cs b/JetKarmaBot/Services/Handling/TimeoutManager.cs index e3e4237..5df1d59 100644 --- a/JetKarmaBot/Services/Handling/TimeoutManager.cs +++ b/JetKarmaBot/Services/Handling/TimeoutManager.cs @@ -101,7 +101,7 @@ namespace JetKarmaBot.Services.Handling { if (!TimeoutCache[uid].TimeoutMessaged) { - Locale currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; + Locale currentLocale = ctx.GetFeature(); await ctx.SendMessage(currentLocale["jetkarmabot.ratelimit"]); TimeoutCache[uid] = new TimeoutStats() { TimeoutMessaged = true, CooldownDate = TimeoutCache[uid].CooldownDate }; }