Skip to content

Conversation

@PTKu
Copy link
Contributor

@PTKu PTKu commented Jan 13, 2026

This pull request introduces several improvements and fixes across the codebase, focusing on data object consistency, logging robustness, caching optimizations, and MongoDB repository enhancements. The most significant changes include the addition of timestamp fields to data objects, safer handling of identity information in logging, caching for message counts to improve performance, and improved configurability for MongoDB repositories.

Data Object Consistency and Timestamping

  • Added ModifiedAt and CreatedAt properties to the IBrowsableDataObject interface and implemented them in related classes (PersistentRecord, AxoDataEntity, and IAxoDataEntity) for better tracking of entity creation and modification times. [1] [2] [3] [4]
  • Ensured ModifiedAt is updated to the current UTC time during Create and Update operations in RepositoryBase. [1] [2]

Logging Robustness

  • Improved logging methods in SerilogLogger by adding null checks for identity properties, preventing potential null reference exceptions.

Caching and Performance Improvements

  • Implemented caching for active and relevant message counts in AxoMessageProvider to reduce flickering and improve performance, with cache invalidation support after batch reads. [1] [2]

MongoDB Repository Enhancements

  • Exposed repository settings via a public property in MongoDbRepository, and made the collection name accessible and consistent through MongoDbRepositorySettings. [1] [2] [3] [4] [5]
  • Removed unnecessary package reference to MongoDB.Driver.Core for cleaner project dependencies.

Miscellaneous Fixes

  • Reset message count upon initialization in AxoObject to ensure correct state. [1] [2] [3]
  • Updated observer initialization method in AxoObjectSpotView.razor for improved polling behavior.
  • Minor code organization and documentation improvements. [1] [2]

Let me know if you'd like deeper details on any of these changes!

PTKu added 7 commits January 7, 2026 11:58
Introduce 500ms caching for ActiveMessagesCount and RelevantMessagesCount in AxoMessageProvider to reduce flickering and improve performance. Ensure thread safety with locks and add InvalidateMessageCountCache for manual cache invalidation. Update AxoObjectSpotView.razor to use InitializeUpdate instead of InitializeLightUpdate.
Added CreatedAt and ModifiedAt properties to test data classes for timestamp tracking. Updated RepositoryBase to initialize these fields on creation. Introduced apax.yml for "apax.traversal" app with dependencies and config.
Prevent possible NullReferenceException by using the null-conditional operator when assigning to data.ModifiedAt. This ensures the assignment only occurs if the data object is not null.
Added AXOpen.Operon.Blazor to the solution with appropriate folder structure and solution configuration updates. Also removed the apax.yml file from the repository.
@kuh0005 kuh0005 marked this pull request as ready for review January 14, 2026 12:29
@PTKu PTKu merged commit b83b8bf into dev Jan 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants