diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-06-12 14:24:10 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-06-12 14:24:10 +0200 |
| commit | 9b6666e70829e3c341e709b1b0578603566d852b (patch) | |
| tree | 3e84d9fc0dccb85b35f1001c40ac2a49b0b16e17 /server/src/Data | |
| parent | 7fa6822da7cfe5629275b3e2de26dd89556c960e (diff) | |
| download | greatoffice-9b6666e70829e3c341e709b1b0578603566d852b.tar.xz greatoffice-9b6666e70829e3c341e709b1b0578603566d852b.zip | |
refactor: Introduce AppDateTime and use it whenever we need to get current DateTime
This changes enables us to change timezones in testing
Diffstat (limited to 'server/src/Data')
| -rw-r--r-- | server/src/Data/Database/ApiAccessToken.cs | 4 | ||||
| -rw-r--r-- | server/src/Data/Database/Base.cs | 4 | ||||
| -rw-r--r-- | server/src/Data/Database/ForgotPasswordRequest.cs | 4 | ||||
| -rw-r--r-- | server/src/Data/Dtos/UserArchiveDto.cs | 2 | ||||
| -rw-r--r-- | server/src/Data/Static/AppDateTime.cs | 16 |
5 files changed, 23 insertions, 7 deletions
diff --git a/server/src/Data/Database/ApiAccessToken.cs b/server/src/Data/Database/ApiAccessToken.cs index 3eff5f3..a9cf0bc 100644 --- a/server/src/Data/Database/ApiAccessToken.cs +++ b/server/src/Data/Database/ApiAccessToken.cs @@ -8,7 +8,7 @@ public class ApiAccessToken : Base public bool AllowCreate { get; set; } public bool AllowUpdate { get; set; } public bool AllowDelete { get; set; } - public bool HasExpired => ExpiryDate < DateTime.UtcNow; + public bool HasExpired => ExpiryDate < AppDateTime.UtcNow; public ApiAccessTokenDto AsDto => new(this); public class ApiAccessTokenDto @@ -26,6 +26,6 @@ public class ApiAccessToken : Base public bool AllowCreate { get; set; } public bool AllowUpdate { get; set; } public bool AllowDelete { get; set; } - public bool HasExpired => ExpiryDate < DateTime.UtcNow; + public bool HasExpired => ExpiryDate < AppDateTime.UtcNow; } } diff --git a/server/src/Data/Database/Base.cs b/server/src/Data/Database/Base.cs index 90b52da..7e8591e 100644 --- a/server/src/Data/Database/Base.cs +++ b/server/src/Data/Database/Base.cs @@ -4,12 +4,12 @@ public class Base { protected Base() { Id = Guid.NewGuid(); - CreatedAt = DateTime.UtcNow; + CreatedAt = AppDateTime.UtcNow; } public Guid Id { get; init; } public DateTime CreatedAt { get; init; } public DateTime? ModifiedAt { get; private set; } public bool Deleted { get; set; } - public void Modified() => ModifiedAt = DateTime.UtcNow; + public void Modified() => ModifiedAt = AppDateTime.UtcNow; } diff --git a/server/src/Data/Database/ForgotPasswordRequest.cs b/server/src/Data/Database/ForgotPasswordRequest.cs index 164f09d..1510a35 100644 --- a/server/src/Data/Database/ForgotPasswordRequest.cs +++ b/server/src/Data/Database/ForgotPasswordRequest.cs @@ -5,7 +5,7 @@ public class ForgotPasswordRequest public ForgotPasswordRequest() { } public ForgotPasswordRequest(User user) { - CreatedAt = DateTime.UtcNow; + CreatedAt = AppDateTime.UtcNow; Id = Guid.NewGuid(); User = user; } @@ -19,5 +19,5 @@ public class ForgotPasswordRequest public DateTime ExpirationDate => CreatedAt.AddMinutes(15); [NotMapped] - public bool IsExpired => DateTime.Compare(ExpirationDate, DateTime.UtcNow) < 0; + public bool IsExpired => DateTime.Compare(ExpirationDate, AppDateTime.UtcNow) < 0; } diff --git a/server/src/Data/Dtos/UserArchiveDto.cs b/server/src/Data/Dtos/UserArchiveDto.cs index 63b1470..42e0600 100644 --- a/server/src/Data/Dtos/UserArchiveDto.cs +++ b/server/src/Data/Dtos/UserArchiveDto.cs @@ -9,7 +9,7 @@ public class UserArchiveDto /// <inheritdoc cref="UserArchiveDto"/> public UserArchiveDto(User user) { Meta = new MetaDto { - GeneratedAt = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") + GeneratedAt = AppDateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") }; User = new UserDto(user); Entries = new List<EntryDto>(); diff --git a/server/src/Data/Static/AppDateTime.cs b/server/src/Data/Static/AppDateTime.cs new file mode 100644 index 0000000..880d2a8 --- /dev/null +++ b/server/src/Data/Static/AppDateTime.cs @@ -0,0 +1,16 @@ +namespace IOL.GreatOffice.Api.Data.Static; + +public static class AppDateTime +{ + private static DateTime? dateTime; + + public static DateTime UtcNow => dateTime ?? DateTime.UtcNow; + + public static void Set(DateTime setDateTime) { + dateTime = setDateTime; + } + + public static void Reset() { + dateTime = null; + } +} |
