Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. using System;
  2. using System.Data.Entity.Infrastructure;
  3. using UIWeb.Infrastructure.Logging;
  4. using UIWeb.Infrastructure.Security;
  5. using UIWeb.Models;
  6.  
  7. namespace UIWeb.Data.Interceptors
  8. {
  9. public class AuditChangeInterceptor : ChangeInterceptor<IAmAuditable>
  10. {
  11. public ILogger Logger { get; set; }
  12.  
  13. private readonly IPrincipalProvider principalProvider;
  14.  
  15. public AuditChangeInterceptor(IPrincipalProvider principalProvider)
  16. {
  17. this.principalProvider = principalProvider;
  18. }
  19.  
  20. protected override void OnBeforeInsert(DbEntityEntry entry, IAmAuditable item, InterceptionContext context)
  21. {
  22. Logger.Trace("OnBeforeInsert");
  23.  
  24. item.Created = item.Updated = DateTime.UtcNow;
  25. item.CreatedBy = item.UpdatedBy = principalProvider.GetCurrent().Identity.Name;
  26.  
  27. base.OnBeforeInsert(entry, item, context);
  28. }
  29.  
  30. protected override void OnBeforeUpdate(DbEntityEntry entry, IAmAuditable item, InterceptionContext context)
  31. {
  32. Logger.Trace("OnBeforeInsert");
  33.  
  34. item.Updated = DateTime.UtcNow;
  35. item.UpdatedBy = principalProvider.GetCurrent().Identity.Name;
  36.  
  37. base.OnBeforeUpdate(entry, item, context);
  38. }
  39. }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement