private void PreSaveChanges(ChangedEntriesTracker tracker, IEnumerable <IValidationDomainRule> validationRules) { foreach (var validationRule in validationRules.OrderBy(x => x.Order)) { validationRule.Validate(tracker); } }
private void PostSaveChanges(ChangedEntriesTracker tracker, IEnumerable <IPostProcessingDomainRule> postProcessingRules) { foreach (var postProcessingRule in postProcessingRules.OrderBy(x => x.Order)) { postProcessingRule.Execute(tracker); } }
/// <inheritdoc/> public override async Task <int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken)) { var tracker = new ChangedEntriesTracker(ChangeTracker); PreSaveChanges(tracker, _serviceProvider.GetServices <IValidationDomainRule>()); var res = await base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken); PostSaveChanges(tracker, _serviceProvider.GetServices <IPostProcessingDomainRule>()); return(res); }
/// <inheritdoc/> public override int SaveChanges(bool acceptAllChangesOnSuccess) { var tracker = new ChangedEntriesTracker(ChangeTracker); PreSaveChanges(tracker, _serviceProvider.GetServices <IValidationDomainRule>()); var res = base.SaveChanges(acceptAllChangesOnSuccess); PostSaveChanges(tracker, _serviceProvider.GetServices <IPostProcessingDomainRule>()); return(res); }