EntityChangeSetReasonProviderBase.cs 914 B

12345678910111213141516171819202122232425
  1. using Abp.Runtime;
  2. using System;
  3. namespace Abp.EntityHistory
  4. {
  5. public abstract class EntityChangeSetReasonProviderBase : IEntityChangeSetReasonProvider
  6. {
  7. public const string ReasonOverrideContextKey = "Abp.EntityHistory.Reason.Override";
  8. public abstract string Reason { get; }
  9. protected ReasonOverride OverridedValue => ReasonOverrideScopeProvider.GetValue(ReasonOverrideContextKey);
  10. protected IAmbientScopeProvider<ReasonOverride> ReasonOverrideScopeProvider { get; }
  11. protected EntityChangeSetReasonProviderBase(IAmbientScopeProvider<ReasonOverride> reasonOverrideScopeProvider)
  12. {
  13. ReasonOverrideScopeProvider = reasonOverrideScopeProvider;
  14. }
  15. public IDisposable Use(string reason)
  16. {
  17. return ReasonOverrideScopeProvider.BeginScope(ReasonOverrideContextKey, new ReasonOverride(reason));
  18. }
  19. }
  20. }