public void CreateLog() { var auditConfiguration = AuditConfiguration.Default; auditConfiguration.IncludeRelationships = true; auditConfiguration.LoadRelationships = true; auditConfiguration.DefaultAuditable = true; // customize the audit for Task entity auditConfiguration.IsAuditable<Task>() .NotAudited(t => t.TaskExtended) .FormatWith(t => t.Status, v => FormatStatus(v)); // set name as the display member when status is a foreign key auditConfiguration.IsAuditable<Status>() .DisplayMember(t => t.Name); var db = new TrackerContext(); var user1 = new User() { Id = 1 }; db.Users.Add(user1); var audit = db.BeginAudit(); var user = db.Users.Find(1); user.Comment = "Testing: " + DateTime.Now.Ticks; var task = new Task() { Id = 1, AssignedId = 1, CreatedId = 1, StatusId = 1, PriorityId = 2, Summary = "Summary: " + DateTime.Now.Ticks }; db.Tasks.Add(task); var task2 = db.Tasks.Find(1); task2.PriorityId = 2; task2.StatusId = 2; task2.Summary = "Summary: " + DateTime.Now.Ticks; var log = audit.CreateLog(); Assert.IsNotNull(log); string xml = log.ToXml(); Assert.IsNotNull(xml); }
public void CreateLog3() { AuditConfiguration.Default.IncludeRelationships = true; AuditConfiguration.Default.LoadRelationships = true; AuditConfiguration.Default.IsAuditable<Task>(); AuditConfiguration.Default.IsAuditable<User>(); var db = new TrackerContext(); var audit = db.BeginAudit(); var user = new User(); user.EmailAddress = string.Format("email.{0}@test.com", DateTime.Now.Ticks); user.CreatedDate = DateTime.Now; user.ModifiedDate = DateTime.Now; user.PasswordHash = DateTime.Now.Ticks.ToString(); user.PasswordSalt = "abcde"; user.IsApproved = false; user.LastActivityDate = DateTime.Now; db.Users.Add(user); var log = audit.CreateLog(); Assert.IsNotNull(log); string beforeXml = log.ToXml(); Assert.IsNotNull(beforeXml); db.SaveChanges(); log.Refresh(); string afterXml = log.ToXml(); Assert.IsNotNull(afterXml); }
public void Update() { AuditConfiguration.Default.IncludeRelationships = true; AuditConfiguration.Default.LoadRelationships = true; AuditConfiguration.Default.IsAuditable<Task>(); AuditConfiguration.Default.IsAuditable<User>().NotAudited(p => p.Avatar); var db = new TrackerContext(); var audit = db.BeginAudit(); var user = new User(); user.EmailAddress = string.Format("email.{0}@test.com", DateTime.Now.Ticks); user.CreatedDate = DateTime.Now; user.ModifiedDate = DateTime.Now; user.PasswordHash = DateTime.Now.Ticks.ToString(); user.PasswordSalt = "abcde"; user.IsApproved = false; user.LastActivityDate = DateTime.Now; db.Users.Add(user); var log = audit.CreateLog(); Assert.IsNotNull(log); string beforeXml = log.ToXml(); Assert.IsNotNull(beforeXml); db.SaveChanges(); log.Refresh(); foreach (var property in log.Entities.SelectMany(e => e.Properties)) { Assert.AreNotEqual(property.Current, "{error}"); Assert.AreNotEqual(property.Original, "{error}"); } string afterXml = log.ToXml(); Assert.IsNotNull(afterXml); var lastLog = audit.LastLog; var lastXml = lastLog.Refresh().ToXml(); Assert.IsNotNull(lastXml); Console.WriteLine(lastXml); user.EmailAddress = string.Format("update.{0}@test.com", DateTime.Now.Ticks); var updateLog = audit.CreateLog(); Assert.IsNotNull(updateLog); foreach (var property in log.Entities.SelectMany(e => e.Properties)) { Assert.AreNotEqual(property.Current, "{error}"); Assert.AreNotEqual(property.Original, "{error}"); } db.SaveChanges(); var updateXml = updateLog.ToXml(); Assert.IsNotNull(updateXml); Console.WriteLine(updateXml); }