public virtual void UpdateAuditEntityConfiguration(AuditEntityConfiguration newEntityConfiguration, IAuditingRepository repo = null) { repo = repo ?? ServiceLocator.Current.GetInstance <IRepositoryBuilder>().CreateAuditingRepository(); #if NETFRAMEWORK using (new Profiling.Profiler(nameof(AuditEntityConfiguration), Profiling.AppDevSymbolType.ClassOperation, nameof(AuditEntityConfiguration.UpdateAuditEntityConfiguration))) { #endif var newPropertyConfiguration = new AuditPropertyConfiguration(); var newProperties = newEntityConfiguration.Properties; Properties?.ForEach(oldPropertyConfiguration => { newPropertyConfiguration = newProperties? .FirstOrDefault(a => a.Name == oldPropertyConfiguration?.Name); if (newPropertyConfiguration == null) { repo.DeleteAuditPropertyConfiguration(oldPropertyConfiguration); } else { oldPropertyConfiguration?.UpdateAuditPropertyConfiguration(newPropertyConfiguration); newProperties?.RemoveAll(c => c.Name == newPropertyConfiguration.Name); } }); if (newProperties.Any()) { this?.AddProperties(newProperties); } repo.Save(this); #if NETFRAMEWORK } #endif }
public AuditingService(IAuditingRepository repo) { _repo = repo; }