public void GetHistory_WithChanges() { Assert.That(Records, Is.Empty); AreaValueModel model = new AreaValueModel { Area = "ROM", Value = 100 }; Repository.Add(model); Assert.That(Records.Count, Is.EqualTo(1)); AmplaRecord record = Repository.FindRecord(model.Id); Assert.That(record, Is.Not.Null); Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area)); Assert.That(record.GetValue("Value"), Is.EqualTo(model.Value)); Assert.That(record.Location, Is.EqualTo(location)); Assert.That(record.Id, Is.EqualTo(model.Id)); AreaValueModel updated = new AreaValueModel { Id = model.Id, Area = "ROM", Value = 200 }; DateTime before = DateTime.Now.AddMinutes(-1); DateTime after = DateTime.Now.AddMinutes(+1); Repository.Update(updated); record = Repository.FindRecord(model.Id); Assert.That(record, Is.Not.Null); Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area)); Assert.That(record.GetValue("Value"), Is.EqualTo(200)); Assert.That(record.Location, Is.EqualTo(location)); Assert.That(record.Id, Is.EqualTo(model.Id)); AmplaAuditRecord auditRecord = Repository.GetHistory(model.Id); Assert.That(auditRecord, Is.Not.Null); Assert.That(auditRecord.Id, Is.EqualTo(model.Id)); Assert.That(auditRecord.Location, Is.EqualTo(location)); Assert.That(auditRecord.Module, Is.EqualTo(module)); Assert.That(auditRecord.Changes, Is.Not.Empty); Assert.That(auditRecord.Changes.Count, Is.EqualTo(1)); AmplaAuditSession session = auditRecord.Changes[0]; Assert.That(session.User, Is.EqualTo("User")); Assert.That(session.EditedTime, Is.InRange(before, after)); Assert.That(session.Fields, Is.Not.Empty); AssertAuditField(session, "Value", "100", "200"); }
public bool Bind() { if (response.RowSets.Length == 0) { return(false); } GetAuditDataRowSet rowSet = response.RowSets[0]; AmplaAuditRecord model = new AmplaAuditRecord { Id = record.Id, Location = record.Location, Module = record.Module }; List <AmplaAuditSession> changes = new List <AmplaAuditSession>(); foreach (GetAuditDataRow row in rowSet.Rows) { if (row.Field != "LastModified") { DateTime editTime = Iso8601DateTimeConverter.ConvertToLocalDateTime(row.EditedDateTime); string user = row.EditedBy.StartsWith(systemConfigUsers) ? row.EditedBy.Substring(systemConfigUsers.Length) : row.EditedBy; AmplaAuditSession session = changes.Find(s => s.EditedTime == editTime && s.User == user); if (session == null) { session = new AmplaAuditSession(user, editTime); changes.Add(session); } session.Fields.Add(new AmplaAuditField { Name = row.Field, OriginalValue = row.OriginalValue, EditedValue = row.EditedValue }); } } changes.Sort(); model.Changes = changes; records.Add(model); return(true); }
protected static AmplaAuditSession AddSession(string user, DateTime time, string[] fields, string[] oldValues, string[] newValues) { AmplaAuditSession session = new AmplaAuditSession(user, time); Assert.That(fields.Length, Is.GreaterThan(0)); Assert.That(fields.Length, Is.EqualTo(oldValues.Length)); Assert.That(fields.Length, Is.EqualTo(newValues.Length)); for (int i = 0; i < fields.Length; i++) { AmplaAuditField field = new AmplaAuditField { Name = fields[i], OriginalValue = oldValues[i], EditedValue = newValues[i] }; session.Fields.Add(field); } return(session); }