DefaultAuditInfoProvider.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Abp.Dependency;
  2. using Abp.Extensions;
  3. namespace Abp.Auditing
  4. {
  5. /// <summary>
  6. /// Default implementation of <see cref="IAuditInfoProvider" />.
  7. /// </summary>
  8. public class DefaultAuditInfoProvider : IAuditInfoProvider, ITransientDependency
  9. {
  10. public IClientInfoProvider ClientInfoProvider { get; set; }
  11. public DefaultAuditInfoProvider()
  12. {
  13. ClientInfoProvider = NullClientInfoProvider.Instance;
  14. }
  15. public virtual void Fill(AuditInfo auditInfo)
  16. {
  17. if (auditInfo.ClientIpAddress.IsNullOrEmpty())
  18. {
  19. auditInfo.ClientIpAddress = ClientInfoProvider.ClientIpAddress;
  20. }
  21. if (auditInfo.BrowserInfo.IsNullOrEmpty())
  22. {
  23. auditInfo.BrowserInfo = ClientInfoProvider.BrowserInfo;
  24. }
  25. if (auditInfo.ClientName.IsNullOrEmpty())
  26. {
  27. auditInfo.ClientName = ClientInfoProvider.ComputerName;
  28. }
  29. }
  30. }
  31. }