Make sure all DateTimeOffsets that are written to the DB are in UTC

This commit is contained in:
Daan Boerlage 2021-11-07 02:52:35 +01:00
parent 1a1d1406ec
commit 7d4a81dcde
Signed by: daan
GPG key ID: FCE070E1E4956606
3 changed files with 11 additions and 7 deletions

View file

@ -37,14 +37,16 @@ namespace Geekbot.Bot.Commands.Rpg
try try
{ {
var actor = await GetUser(Context.User.Id); var actor = await GetUser(Context.User.Id);
if (actor.LastPayout.Value.AddDays(1).Date > DateTime.Now.Date) var timeoutDays = 1;
if (actor.LastPayout?.AddDays(timeoutDays) > DateTime.Now.ToUniversalTime())
{ {
var formattedWaitTime = DateLocalization.FormatDateTimeAsRemaining(DateTimeOffset.Now.AddDays(1).Date); var remaining = actor.LastPayout.Value.AddDays(timeoutDays) - DateTimeOffset.Now.ToUniversalTime();
var formattedWaitTime = DateLocalization.FormatDateTimeAsRemaining(remaining);
await ReplyAsync(string.Format(Localization.Cookies.WaitForMoreCookies, formattedWaitTime)); await ReplyAsync(string.Format(Localization.Cookies.WaitForMoreCookies, formattedWaitTime));
return; return;
} }
actor.Cookies += 10; actor.Cookies += 10;
actor.LastPayout = DateTimeOffset.Now; actor.LastPayout = DateTimeOffset.Now.ToUniversalTime();
await SetUser(actor); await SetUser(actor);
await ReplyAsync(string.Format(Localization.Cookies.GetCookies, 10, actor.Cookies)); await ReplyAsync(string.Format(Localization.Cookies.GetCookies, 10, actor.Cookies));

View file

@ -37,9 +37,11 @@ public class Karma
return CreateErrorEmbed(string.Format(message, author.Username)); return CreateErrorEmbed(string.Format(message, author.Username));
} }
if (authorRecord.TimeOut.AddMinutes(3) > DateTimeOffset.Now) var timeoutMinutes = 3;
if (authorRecord.TimeOut.AddMinutes(timeoutMinutes) > DateTimeOffset.Now.ToUniversalTime())
{ {
var formatedWaitTime = DateLocalization.FormatDateTimeAsRemaining(authorRecord.TimeOut.AddMinutes(3)); var remaining = authorRecord.TimeOut.AddMinutes(timeoutMinutes) - DateTimeOffset.Now.ToUniversalTime();
var formatedWaitTime = DateLocalization.FormatDateTimeAsRemaining(remaining);
return CreateErrorEmbed(string.Format(Localization.Karma.WaitUntill, author.Username, formatedWaitTime)); return CreateErrorEmbed(string.Format(Localization.Karma.WaitUntill, author.Username, formatedWaitTime));
} }
@ -57,7 +59,7 @@ public class Karma
targetUserRecord.Karma += amount; targetUserRecord.Karma += amount;
_database.Karma.Update(targetUserRecord); _database.Karma.Update(targetUserRecord);
authorRecord.TimeOut = DateTimeOffset.Now; authorRecord.TimeOut = DateTimeOffset.Now.ToUniversalTime();
_database.Karma.Update(authorRecord); _database.Karma.Update(authorRecord);
await _database.SaveChangesAsync(); await _database.SaveChangesAsync();

View file

@ -35,7 +35,7 @@ namespace Geekbot.Core.UserRepository
savedUser.Discriminator = user.Discriminator; savedUser.Discriminator = user.Discriminator;
savedUser.AvatarUrl = user.GetAvatarUrl() ?? ""; savedUser.AvatarUrl = user.GetAvatarUrl() ?? "";
savedUser.IsBot = user.IsBot; savedUser.IsBot = user.IsBot;
savedUser.Joined = user.CreatedAt; savedUser.Joined = user.CreatedAt.ToUniversalTime();
if (isNew) if (isNew)
{ {