From 49c6f447ad2d00db8e1250fd933eece4c212310c Mon Sep 17 00:00:00 2001 From: "blazej.kuhajda" Date: Wed, 11 Feb 2026 13:49:15 +0100 Subject: [PATCH 1/2] _created _modified property --- .../Data/IBrowsableDataObject.cs | 4 ++-- .../Data/RepositoryBase.cs | 6 +++--- .../DataPersistentExchange/PersistentRecord.cs | 6 ------ .../src/AXOpen.Data/Entity/Pocos/AxoDataEntity.cs | 4 ++-- .../src/AXOpen.Security/Entities/Group.cs | 15 ++++----------- src/security/src/AXOpen.Security/Entities/User.cs | 14 ++++---------- 6 files changed, 15 insertions(+), 34 deletions(-) diff --git a/src/base/src/AXOpen.Base.Abstractions/Data/IBrowsableDataObject.cs b/src/base/src/AXOpen.Base.Abstractions/Data/IBrowsableDataObject.cs index 9fd8dfbf4..0d4ada43a 100644 --- a/src/base/src/AXOpen.Base.Abstractions/Data/IBrowsableDataObject.cs +++ b/src/base/src/AXOpen.Base.Abstractions/Data/IBrowsableDataObject.cs @@ -8,7 +8,7 @@ public interface IBrowsableDataObject string _EntityId { get; set; } - DateTime? ModifiedAt { get; set; } - DateTime? CreatedAt { get; set; } + DateTime _Modified { get; set; } + DateTime _Created { get; set; } } } \ No newline at end of file diff --git a/src/base/src/AXOpen.Base.Abstractions/Data/RepositoryBase.cs b/src/base/src/AXOpen.Base.Abstractions/Data/RepositoryBase.cs index f394fc2f7..2b4719cb5 100644 --- a/src/base/src/AXOpen.Base.Abstractions/Data/RepositoryBase.cs +++ b/src/base/src/AXOpen.Base.Abstractions/Data/RepositoryBase.cs @@ -351,8 +351,8 @@ public void Create(string identifier, T data) } try { - data?.CreatedAt = DateTime.Now; - data?.ModifiedAt = DateTime.Now; + data?._Created = DateTime.Now; + data?._Modified = DateTime.Now; CreateNvi(identifier, data); } catch (Exception e) @@ -411,7 +411,7 @@ public void Update(string identifier, T data) } try { - data?.ModifiedAt = DateTime.Now; + data?._Modified = DateTime.Now; UpdateNvi(identifier, data); } catch (Exception e) diff --git a/src/data/src/AXOpen.Data/DataPersistentExchange/PersistentRecord.cs b/src/data/src/AXOpen.Data/DataPersistentExchange/PersistentRecord.cs index 1897a432c..7b640769a 100644 --- a/src/data/src/AXOpen.Data/DataPersistentExchange/PersistentRecord.cs +++ b/src/data/src/AXOpen.Data/DataPersistentExchange/PersistentRecord.cs @@ -12,12 +12,6 @@ public class PersistentRecord : IBrowsableDataObject public DateTime _Created { set; get; } public DateTime _Modified { set; get; } - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? ModifiedAt { get { return _Modified; } set { _Modified = value.Value; } } - - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? CreatedAt { get { return _Created; } set { _Created = value.Value; } } - public List Tags = new(); } } \ No newline at end of file diff --git a/src/data/src/AXOpen.Data/Entity/Pocos/AxoDataEntity.cs b/src/data/src/AXOpen.Data/Entity/Pocos/AxoDataEntity.cs index a5046a1e5..18bf62a35 100644 --- a/src/data/src/AXOpen.Data/Entity/Pocos/AxoDataEntity.cs +++ b/src/data/src/AXOpen.Data/Entity/Pocos/AxoDataEntity.cs @@ -23,7 +23,7 @@ public List Changes public string Hash { get; set; } - public DateTime? ModifiedAt { get; set; } - public DateTime? CreatedAt { get; set; } + public DateTime _Modified { get; set; } + public DateTime _Created { get; set; } } } \ No newline at end of file diff --git a/src/security/src/AXOpen.Security/Entities/Group.cs b/src/security/src/AXOpen.Security/Entities/Group.cs index 7231ef770..995e039c4 100644 --- a/src/security/src/AXOpen.Security/Entities/Group.cs +++ b/src/security/src/AXOpen.Security/Entities/Group.cs @@ -10,15 +10,8 @@ public class Group : IBrowsableDataObject public string Name { get; set; } public ObservableCollection Roles { get; set; } public string RolesHash { get; set; } - public DateTime Created { get; set; } - public DateTime Modified { get; set; } - - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? ModifiedAt { get { return Modified; } set { Modified = value.Value; } } - - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? CreatedAt { get { return Created; } set { Created = value.Value; } } - + public DateTime _Created { get; set; } + public DateTime _Modified { get; set; } public List Changes = new List(); @@ -26,8 +19,8 @@ public Group(string name) { Name = name; Roles = new ObservableCollection(); - Created = DateTime.Now; - Modified = DateTime.Now; + _Created = DateTime.Now; + _Modified = DateTime.Now; } } } diff --git a/src/security/src/AXOpen.Security/Entities/User.cs b/src/security/src/AXOpen.Security/Entities/User.cs index 4fd7ffad7..e268400c3 100644 --- a/src/security/src/AXOpen.Security/Entities/User.cs +++ b/src/security/src/AXOpen.Security/Entities/User.cs @@ -10,14 +10,8 @@ public class User : IdentityUser, IBrowsableDataObject public bool CanUserChangePassword { get; set; } public dynamic RecordId { get; set; } public string _EntityId { get; set; } - public DateTime Created { get; set; } - public DateTime Modified { get; set; } - - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? ModifiedAt { get { return Modified; } set { Modified = value.Value; } } - - // Added due to IBrowsableDataObject interface and compatibility with Prometheus. - public DateTime? CreatedAt { get { return Created; } set { Created = value.Value; } } + public DateTime _Created { get; set; } + public DateTime _Modified { get; set; } public bool EnableAutoLogOut { get; set; } public uint AutoLogOutTimeOutMinutes { get; set; } @@ -35,8 +29,8 @@ public User(string username, string email, string phoneNumber, string group, boo CanUserChangePassword = canUserChangePassword; ExternalAuthId = externalAuthId; Id = Guid.NewGuid().ToString(); - Created = DateTime.Now; - Modified = DateTime.Now; + _Created = DateTime.Now; + _Modified = DateTime.Now; EnableAutoLogOut = enableAutoLogOut; AutoLogOutTimeOutMinutes = autoLogOutTimeOutMinutes; } From 5aa71f44581e3d6d7703b37164d5609cf54978f9 Mon Sep 17 00:00:00 2001 From: "blazej.kuhajda" Date: Wed, 11 Feb 2026 14:01:40 +0100 Subject: [PATCH 2/2] _created modified prop --- .../src/AXOpen.Security.Blazor/Pages/GroupManagement.razor | 4 ++-- .../src/AXOpen.Security.Blazor/Pages/UserManagement.razor | 6 +++--- src/security/src/AXOpen.Security/RoleGroupManager.cs | 6 +++--- src/security/src/AXOpen.Security/Stores/UserStore.cs | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Security/src/AXOpen.Security.Blazor/Pages/GroupManagement.razor b/src/Security/src/AXOpen.Security.Blazor/Pages/GroupManagement.razor index acb0e1bf2..2cbc0f139 100644 --- a/src/Security/src/AXOpen.Security.Blazor/Pages/GroupManagement.razor +++ b/src/Security/src/AXOpen.Security.Blazor/Pages/GroupManagement.razor @@ -27,8 +27,8 @@ { @group.Name - @group.Created - @group.Modified + @group._Created + @group._Modified } diff --git a/src/Security/src/AXOpen.Security.Blazor/Pages/UserManagement.razor b/src/Security/src/AXOpen.Security.Blazor/Pages/UserManagement.razor index 9b906854f..d3adf73f3 100644 --- a/src/Security/src/AXOpen.Security.Blazor/Pages/UserManagement.razor +++ b/src/Security/src/AXOpen.Security.Blazor/Pages/UserManagement.razor @@ -36,8 +36,8 @@ @user.UserName @user.CanUserChangePassword - @user.Created - @user.Modified + @user._Created + @user._Modified } @@ -272,7 +272,7 @@ SelectedUser.EnableAutoLogOut = Input.EnableAutoLogOut; SelectedUser.AutoLogOutTimeOutMinutes = Input.AutoLogOutTimeOutMinutes ?? 30; - SelectedUser.Modified = DateTime.Now; + SelectedUser._Modified = DateTime.Now; //SelectedUser.RoleHash = Hasher.CalculateHash(SelectedUser.Roles, _model.Username); var result = await _userManager.UpdateAsync(SelectedUser); diff --git a/src/security/src/AXOpen.Security/RoleGroupManager.cs b/src/security/src/AXOpen.Security/RoleGroupManager.cs index 50abe8962..be9e48bab 100644 --- a/src/security/src/AXOpen.Security/RoleGroupManager.cs +++ b/src/security/src/AXOpen.Security/RoleGroupManager.cs @@ -99,7 +99,7 @@ public IdentityResult AddRoleToGroup(string group, string role) { data.Roles.Add(role); data.RolesHash = new PasswordHasher().HashPassword(data, String.Join(",", data.Roles)); - data.Modified = DateTime.Now; + data._Modified = DateTime.Now; } else { @@ -134,7 +134,7 @@ public IdentityResult AddRolesToGroup(string group, IEnumerable roles) data.Roles.Add(role); } data.RolesHash = new PasswordHasher().HashPassword(data, String.Join(",", data.Roles)); - data.Modified = DateTime.Now; + data._Modified = DateTime.Now; } else { @@ -171,7 +171,7 @@ public IdentityResult RemoveRolesFromGroup(string group, IEnumerable rol data.Roles.Remove(role); } data.RolesHash = new PasswordHasher().HashPassword(data, String.Join(",", data.Roles)); - data.Modified = DateTime.Now; + data._Modified = DateTime.Now; } else { diff --git a/src/security/src/AXOpen.Security/Stores/UserStore.cs b/src/security/src/AXOpen.Security/Stores/UserStore.cs index aa4423aa1..b264d569b 100644 --- a/src/security/src/AXOpen.Security/Stores/UserStore.cs +++ b/src/security/src/AXOpen.Security/Stores/UserStore.cs @@ -230,7 +230,7 @@ public Task UpdateAsync(User user, CancellationToken cancellatio userData.Group = user.Group; userData.GroupHash = new PasswordHasher().HashPassword(user, user.Group); userData.CanUserChangePassword = user.CanUserChangePassword; - userData.Modified = user.Modified; + userData._Modified = user._Modified; userData.AutoLogOutTimeOutMinutes = user.AutoLogOutTimeOutMinutes; userData.EnableAutoLogOut = user.EnableAutoLogOut; userData.ExternalAuthId = user.ExternalAuthId;