summaryrefslogtreecommitdiffstats
path: root/server/src/Data
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-06-12 14:24:10 +0200
committerivarlovlie <git@ivarlovlie.no>2022-06-12 14:24:10 +0200
commit9b6666e70829e3c341e709b1b0578603566d852b (patch)
tree3e84d9fc0dccb85b35f1001c40ac2a49b0b16e17 /server/src/Data
parent7fa6822da7cfe5629275b3e2de26dd89556c960e (diff)
downloadgreatoffice-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.cs4
-rw-r--r--server/src/Data/Database/Base.cs4
-rw-r--r--server/src/Data/Database/ForgotPasswordRequest.cs4
-rw-r--r--server/src/Data/Dtos/UserArchiveDto.cs2
-rw-r--r--server/src/Data/Static/AppDateTime.cs16
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;
+ }
+}