Make locale a feature

This commit is contained in:
Nikolay Kochulin 2019-12-09 09:24:27 +00:00
parent a6426d1b8d
commit 77735d8108
8 changed files with 10 additions and 9 deletions

View File

@ -18,7 +18,7 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var db = ctx.GetFeature<KarmaContext>();
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; var currentLocale = ctx.GetFeature<Locale>();
var awarder = ctx.EventArgs.Message.From; var awarder = ctx.EventArgs.Message.From;
string awardTypeText = null; string awardTypeText = null;

View File

@ -16,10 +16,10 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var db = ctx.GetFeature<KarmaContext>();
var currentLocale = ctx.GetFeature<Locale>();
var cmd = ctx.Command; var cmd = ctx.Command;
var args = ctx.EventArgs; var args = ctx.EventArgs;
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
if (cmd.Parameters.Length < 1) if (cmd.Parameters.Length < 1)
{ {
await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.getlocale"]); await ctx.SendMessage(currentLocale["jetkarmabot.changelocale.getlocale"]);

View File

@ -22,7 +22,7 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var db = ctx.GetFeature<KarmaContext>();
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; var currentLocale = ctx.GetFeature<Locale>();
await ctx.SendMessage( await ctx.SendMessage(
currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n", currentLocale["jetkarmabot.currencies.listtext"] + "\n" + string.Join("\n",
(await db.AwardTypes.ToListAsync()) (await db.AwardTypes.ToListAsync())

View File

@ -27,8 +27,7 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var currentLocale = ctx.GetFeature<Locale>();
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale];
var router = ctx.GetFeature<ChatCommandRouter.Feature>().Router; var router = ctx.GetFeature<ChatCommandRouter.Feature>().Router;
if (ctx.Command.Parameters.Length < 1) if (ctx.Command.Parameters.Length < 1)
{ {

View File

@ -15,7 +15,7 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var db = ctx.GetFeature<KarmaContext>();
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; var currentLocale = ctx.GetFeature<Locale>();
var asker = ctx.EventArgs.Message.From; var asker = ctx.EventArgs.Message.From;
var awardTypeName = ctx.Command.Parameters.FirstOrDefault(); var awardTypeName = ctx.Command.Parameters.FirstOrDefault();

View File

@ -15,7 +15,7 @@ namespace JetKarmaBot.Commands
public async Task<bool> Execute(RequestContext ctx) public async Task<bool> Execute(RequestContext ctx)
{ {
var db = ctx.GetFeature<KarmaContext>(); var db = ctx.GetFeature<KarmaContext>();
var currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; var currentLocale = ctx.GetFeature<Locale>();
var asker = ctx.EventArgs.Message.From; var asker = ctx.EventArgs.Message.From;
var awardTypeName = ctx.Command.Parameters.FirstOrDefault(); var awardTypeName = ctx.Command.Parameters.FirstOrDefault();
bool isPrivate = ctx.EventArgs.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Private; bool isPrivate = ctx.EventArgs.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Private;

View File

@ -7,11 +7,13 @@ namespace JetKarmaBot.Services.Handling
public class DatabaseHandler : IRequestHandler public class DatabaseHandler : IRequestHandler
{ {
[Inject] private KarmaContextFactory Db; [Inject] private KarmaContextFactory Db;
[Inject] private Localization Locale;
public async Task Handle(RequestContext ctx, Func<RequestContext, Task> next) public async Task Handle(RequestContext ctx, Func<RequestContext, Task> next)
{ {
using (var db = Db.GetContext()) 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 next(ctx);
await db.SaveChangesAsync(); await db.SaveChangesAsync();
} }

View File

@ -101,7 +101,7 @@ namespace JetKarmaBot.Services.Handling
{ {
if (!TimeoutCache[uid].TimeoutMessaged) if (!TimeoutCache[uid].TimeoutMessaged)
{ {
Locale currentLocale = Locale[(await db.Chats.FindAsync(ctx.EventArgs.Message.Chat.Id)).Locale]; Locale currentLocale = ctx.GetFeature<Locale>();
await ctx.SendMessage(currentLocale["jetkarmabot.ratelimit"]); await ctx.SendMessage(currentLocale["jetkarmabot.ratelimit"]);
TimeoutCache[uid] = new TimeoutStats() { TimeoutMessaged = true, CooldownDate = TimeoutCache[uid].CooldownDate }; TimeoutCache[uid] = new TimeoutStats() { TimeoutMessaged = true, CooldownDate = TimeoutCache[uid].CooldownDate };
} }