private void OnSaving(object sender, EntitySavingEventArgs e) { if (IsSaving) { throw new InvalidOperationException( StringResources.ThisEntityManagerIsCurrentlyBusyWithAPreviousSaveChangeAsync); } IsSaving = true; try { Validate(e); if (e.Cancel) { IsSaving = false; return; } var syncEntities = e.Entities.Where(SyncInterceptor.ShouldExportEntity); RetainDeletedEntityKeys(syncEntities); } catch (Exception) { IsSaving = false; throw; } }
public void Should_Assign_Correct_Session_Arg() { var session = new Mock <ISession>().Object; var entity = new Mock <IEntity>().Object; var args = new EntitySavingEventArgs(entity, session); Assert.AreEqual(args.Session, session); Assert.AreEqual(args.Entity, entity); }
private void OnEntitySave(EntitySavingEventArgs args) { using (var container = ContextScopeProvider.CreateChildContainer()) { if (args.Session == null || args.Session.IsDirtyEntity(args.Entity)) { var tracker = container.Resolve <IEntityTrackingService>(); tracker.OnEntityUpdate(args.Entity); } } }
public override void OnSaving(TempHireEntities source, EntitySavingEventArgs args) { // Add necessary aggregate root object to the save list for validation and concurrency check List <EntityAspect> rootEas = args.Entities.OfType <IHasRoot>() .Select(e => EntityAspect.Wrap(e.Root)) .Distinct() .Where(ea => ea != null && !ea.IsChanged && !ea.IsNullOrPendingEntity) .ToList(); rootEas.ForEach(ea => ea.SetModified()); rootEas.ForEach(ea => args.Entities.Add(ea.Entity)); }
private void Validate(EntitySavingEventArgs args) { var allValidationErrors = new VerifierResultCollection(); foreach (var entity in args.Entities) { var entityAspect = EntityAspect.Wrap(entity); if (entityAspect.EntityState.IsDeletedOrDetached()) { continue; } var validationErrors = Manager.VerifierEngine.Execute(entity); foreach (var d in _configuration.Delegates ?? new EntityManagerDelegate <T> [0]) { d.Validate(entity, validationErrors); } // Extract only validation errors validationErrors = validationErrors.Errors; validationErrors.Where(vr => !entityAspect.ValidationErrors.Contains(vr)) .ForEach(entityAspect.ValidationErrors.Add); validationErrors.ForEach(allValidationErrors.Add); } if (allValidationErrors.HasErrors) { if (!ValidationErrorNotifiers.Any()) { throw new ValidationException(allValidationErrors.Select(v => v.Message).ToAggregateString("\n")); } ValidationErrorNotifiers.ForEach(s => s.OnValidationError(allValidationErrors)); args.Cancel = true; } }
public virtual void OnRecordSaved(object sender, EntitySavingEventArgs <T> e) { }
public virtual void OnBeforeSavingRecord(object sender, EntitySavingEventArgs <T> e) { }
void Instance_EntitySaving(EntitySavingEventArgs args) { firedSave++; }
public override void OnBeforeSavingRecord(object sender, EntitySavingEventArgs <Bank> e) { base.OnBeforeSavingRecord(sender, e); }