/// <summary> /// Tracking self entity base /// </summary> private void HandleTracking() { foreach (var entry in ChangeTracker.Entries <EntityTenant>()) { if (entry.Entity.IsNoneTracking) { continue; } EntityTracking entity; switch (entry.State) { case EntityState.Detached: case EntityState.Modified: entity = entry.Entity as EntityTracking; if (entity != null) { entity.Version++; entity.ModifiedDate = _tenantFactory.GetCurrentClientTime(); entity.ModifiedBy = _tenantFactory.GetUserName(); } break; case EntityState.Added: entry.Entity.TenantId = _tenantFactory.GetTenantId(); entity = entry.Entity as EntityTracking; if (entity != null) { entity.Version = 0; entity.CreatedDate = _tenantFactory.GetCurrentClientTime(); entity.CreatedBy = _tenantFactory.GetUserName(); } break; case EntityState.Unchanged: break; case EntityState.Deleted: break; default: throw new ArgumentOutOfRangeException(); } } }
private void HandleTracking() { foreach (var entry in ChangeTracker.Entries <EntityVersionTenant>()) { if (entry.Entity.IsNoneTracking) { continue; } EntityTracking entity; switch (entry.State) { case EntityState.Detached: case EntityState.Modified: entry.Entity.Version++; entity = (entry.Entity as EntityTracking); if (entity != null) { entity.ModifiedDate = new DateTimeOffset(DateTime.UtcNow, TimeSpan.FromMinutes(TenantFactory.GetClientOffset())); entity.ModifiedBy = TenantFactory.GetUserName(); } break; case EntityState.Added: entry.Entity.Version = 0; entry.Entity.TenantId = TenantFactory.GetTenantId(); entity = (entry.Entity as EntityTracking); if (entity != null) { entity.CreatedDate = new DateTimeOffset(DateTime.UtcNow, TimeSpan.FromMinutes(TenantFactory.GetClientOffset())); entity.CreatedBy = TenantFactory.GetUserName(); entity.ModifiedDate = new DateTimeOffset(DateTime.UtcNow, TimeSpan.FromMinutes(TenantFactory.GetClientOffset())); entity.ModifiedBy = TenantFactory.GetUserName(); } break; } } }