public async Task Should_Save_An_Audit_Log() { //Arrange var userId = new Guid("4456fb0d-74cc-4807-9eee-23e551e6cb06"); var ipAddress = "153.1.7.61"; var firstComment = "first Comment"; var auditLog = new AuditLogInfo { UserId = userId, ImpersonatorUserId = Guid.NewGuid(), ImpersonatorTenantId = Guid.NewGuid(), ImpersonatorTenantName = "default", ImpersonatorUserName = "******", ExecutionTime = DateTime.Today, ExecutionDuration = 42, ClientIpAddress = ipAddress, ClientName = "MyDesktop", BrowserInfo = "Chrome", Comments = new List <string> { firstComment, "Second Comment" }, EntityChanges = { new EntityChangeInfo { EntityId = Guid.NewGuid().ToString(), EntityTypeFullName = "Volo.Abp.AuditLogging.TestEntity", ChangeType = EntityChangeType.Created, ChangeTime = DateTime.Now, PropertyChanges = new List <EntityPropertyChangeInfo> { new EntityPropertyChangeInfo { PropertyTypeFullName = typeof(string).FullName, PropertyName = "Name", NewValue = "New value", OriginalValue = null } } } } }; //Act await _auditingStore.SaveAsync(auditLog); //Assert var insertedLog = (await _auditLogRepository.GetListAsync(true)) .FirstOrDefault(al => al.UserId == userId); insertedLog.ShouldNotBeNull(); insertedLog.ClientIpAddress.ShouldBe(ipAddress); insertedLog.Comments.ShouldStartWith(firstComment); insertedLog.EntityChanges.Count.ShouldBeGreaterThan(0); insertedLog.EntityChanges.First().PropertyChanges.Count.ShouldBeGreaterThan(0); }
/// <summary> /// Should save audits to a persistent store. /// </summary> /// <param name="auditingStore">Auditing store</param> /// <param name="auditInfo">Audit informations</param> public static void Save <TTenantId, TUserId>(this IAuditingStore <TTenantId, TUserId> auditingStore, AuditInfo <TTenantId, TUserId> auditInfo) where TTenantId : struct where TUserId : struct { AsyncHelper.RunSync(() => auditingStore.SaveAsync(auditInfo)); }
public async Task SaveAsync(AuditInfo auditInfo) { using (var uow = _unitOfWorkManager.Begin()) { await _auditingStore.SaveAsync(auditInfo); await uow.CompleteAsync(); } }
internal async Task SaveAsync(DisposableSaveHandle saveHandle) { BeforeSave(saveHandle); if (ShouldSave(saveHandle.Info)) { await _auditingStore.SaveAsync(saveHandle.Info); } }
/// <summary> /// Should save audits to a persistent store. /// </summary> /// <param name="auditingStore">Auditing store</param> /// <param name="auditInfo">Audit informations</param> public static void Save(this IAuditingStore auditingStore, AuditInfo auditInfo) { AsyncHelper.RunSync(() => auditingStore.SaveAsync(auditInfo)); }