From 7d4a81dcdebbe75fa7eaf76c95b387eaba175c57 Mon Sep 17 00:00:00 2001 From: Daan Boerlage Date: Sun, 7 Nov 2021 02:52:35 +0100 Subject: [PATCH] Make sure all DateTimeOffsets that are written to the DB are in UTC --- src/Bot/Commands/Rpg/Cookies.cs | 8 +++++--- src/Commands/Karma/Karma.cs | 8 +++++--- src/Core/UserRepository/UserRepository.cs | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Bot/Commands/Rpg/Cookies.cs b/src/Bot/Commands/Rpg/Cookies.cs index fc6fa45..0bdbd10 100644 --- a/src/Bot/Commands/Rpg/Cookies.cs +++ b/src/Bot/Commands/Rpg/Cookies.cs @@ -37,14 +37,16 @@ namespace Geekbot.Bot.Commands.Rpg try { 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)); return; } actor.Cookies += 10; - actor.LastPayout = DateTimeOffset.Now; + actor.LastPayout = DateTimeOffset.Now.ToUniversalTime(); await SetUser(actor); await ReplyAsync(string.Format(Localization.Cookies.GetCookies, 10, actor.Cookies)); diff --git a/src/Commands/Karma/Karma.cs b/src/Commands/Karma/Karma.cs index 8671f7a..6abed5e 100644 --- a/src/Commands/Karma/Karma.cs +++ b/src/Commands/Karma/Karma.cs @@ -37,9 +37,11 @@ public class Karma 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)); } @@ -57,7 +59,7 @@ public class Karma targetUserRecord.Karma += amount; _database.Karma.Update(targetUserRecord); - authorRecord.TimeOut = DateTimeOffset.Now; + authorRecord.TimeOut = DateTimeOffset.Now.ToUniversalTime(); _database.Karma.Update(authorRecord); await _database.SaveChangesAsync(); diff --git a/src/Core/UserRepository/UserRepository.cs b/src/Core/UserRepository/UserRepository.cs index 31fe2e2..6b436b1 100644 --- a/src/Core/UserRepository/UserRepository.cs +++ b/src/Core/UserRepository/UserRepository.cs @@ -35,7 +35,7 @@ namespace Geekbot.Core.UserRepository savedUser.Discriminator = user.Discriminator; savedUser.AvatarUrl = user.GetAvatarUrl() ?? ""; savedUser.IsBot = user.IsBot; - savedUser.Joined = user.CreatedAt; + savedUser.Joined = user.CreatedAt.ToUniversalTime(); if (isNew) {