/// <summary> /// 共享记录时触发的事件 /// </summary> /// <param name="data"></param> /// <param name="stage"></param> /// <param name="entityMetadata"></param> private void InternalOnShare(Entity data, OperationStage stage, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Share, stage, data, entityMetadata, attributeMetadatas); if (stage == OperationStage.PreOperation) { _eventPublisher.Publish(new EntitySharingEvent() { Data = data, EntityMetadata = entityMetadata, Principals = null }); } else if (stage == OperationStage.PostOperation) { _eventPublisher.Publish(new EntitySharedEvent() { Data = data, EntityMetadata = entityMetadata, Principals = null }); } OnShare(data, stage, entityMetadata, attributeMetadatas); }
/// <summary> /// 单据转换时触发的事件 /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <param name="stage"></param> /// <param name="targetEntityMeta"></param> private void InternalOnMap(Entity source, Entity target, OperationStage stage, Schema.Domain.Entity targetEntityMeta, List <Schema.Domain.Attribute> targetAttributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Merge, stage, target, targetEntityMeta, targetAttributeMetadatas); if (stage == OperationStage.PreOperation) { _eventPublisher.Publish(new EntityMappingEvent() { Source = source, Target = target, EntityMetadata = targetEntityMeta }); } else if (stage == OperationStage.PostOperation) { _eventPublisher.Publish(new EntityMappedEvent() { Source = source, Target = target, EntityMetadata = targetEntityMeta }); } OnMap(source, target, stage, targetEntityMeta, targetAttributeMetadatas); }
/// <summary> /// 分派记录时触发的事件 /// </summary> /// <param name="data"></param> /// <param name="newOwnerEntity"></param> /// <param name="stage"></param> /// <param name="entityMetadata"></param> private void InternalOnAssign(Entity data, Entity newOwnerEntity, OperationStage stage, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Assign, stage, newOwnerEntity, entityMetadata, attributeMetadatas); if (stage == OperationStage.PreOperation) { _eventPublisher.Publish(new EntityAssigningEvent() { OriginData = data, Data = newOwnerEntity, EntityMetadata = entityMetadata }); } else if (stage == OperationStage.PostOperation) { _eventPublisher.Publish(new EntityAssignedEvent() { OriginData = data, Data = newOwnerEntity, EntityMetadata = entityMetadata }); } OnAssign(data, newOwnerEntity, stage, entityMetadata, attributeMetadatas); }
/// <summary> /// 合并记录时触发的事件 /// </summary> /// <param name="merged"></param> /// <param name="target"></param> /// <param name="stage"></param> /// <param name="entityMetadata"></param> private void InternalOnMerge(Entity merged, Entity target, OperationStage stage, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Merge, stage, target, entityMetadata, attributeMetadatas); if (stage == OperationStage.PreOperation) { _eventPublisher.Publish(new EntityMergingEvent() { Merged = merged, Target = target, EntityMetadata = entityMetadata }); } else if (stage == OperationStage.PostOperation) { _eventPublisher.Publish(new EntityMergedEvent() { Merged = merged, Target = target, EntityMetadata = entityMetadata }); } OnMerge(merged, target, stage, entityMetadata, attributeMetadatas); }
/// <summary> /// 删除记录时触发的事件 /// </summary> /// <param name="data"></param> /// <param name="stage"></param> /// <param name="entityMetadata"></param> private void InternalOnDelete(Entity data, OperationStage stage, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Delete, stage, data, entityMetadata, attributeMetadatas); if (stage == OperationStage.PreOperation) { _eventPublisher.Publish(new EntityDeletingEvent(data) { EntityMetadata = entityMetadata, AttributeMetadatas = attributeMetadatas }); } else if (stage == OperationStage.PostOperation) { _eventPublisher.Publish(new EntityDeletedEvent(data) { EntityMetadata = entityMetadata, AttributeMetadatas = attributeMetadatas }); } OnDelete(data, stage, entityMetadata, attributeMetadatas); }
/// <summary> /// 更新记录时触发的事件 /// </summary> /// <param name="originData"></param> /// <param name="newData"></param> /// <param name="stage"></param> /// <param name="entityMetadata"></param> private void InternalOnUpdate(Entity originData, Entity newData, OperationStage stage, Schema.Domain.Entity entityMetadata, List <Schema.Domain.Attribute> attributeMetadatas) { //plugin _entityPluginExecutor.Execute(OperationTypeEnum.Update, stage, newData, entityMetadata, attributeMetadatas); OnUpdate(originData, newData, stage, entityMetadata, attributeMetadatas); }