protected override void OnIDChanged() { base.OnIDChanged(); this._AllChildrenRelations = null; this._AllChildren = null; this._CurrentlChildren = null; }
private void PrepareRelationObject() { AUCommon.DoDbAction(() => { this.oldRelationToSchema = SchemaRelationObjectAdapter.Instance.Load(((AdminUnit)this.Data).AUSchemaID, this.Data.ID); this.oldRelationToUnit = SchemaRelationObjectAdapter.Instance.LoadByObjectID(this.Data.ID).Where(m => m.Status == SchemaObjectStatus.Normal && m.ParentSchemaType == AUCommon.SchemaAdminUnit).FirstOrDefault(); if (this.Data.Status == SchemaObjectStatus.Normal) //添加操作 { this.actualParent = inputParent != null ? SchemaObjectAdapter.Instance.Load(this.inputParent.ID) : this.schema; if (this.actualParent.ID == this.Data.ID) throw new AUObjectValidationException("管理单元的父管理单元不能是其自身。"); if (this.actualParent == null || this.actualParent.Status != SchemaObjectStatus.Normal) throw new AUObjectValidationException("指定的父管理单元在系统中不存在或已删除"); if (this.oldRelationToSchema != null && this.oldRelationToSchema.Status == SchemaObjectStatus.Normal && this.oldRelationToUnit != null && this.oldRelationToUnit.Status == SchemaObjectStatus.Normal) throw new AUObjectValidationException("关系错误。此管理单元已经存在,但存在错误的关联。一个管理单元不能同时与Schema和另一个管理单元关联"); else if (this.oldRelationToSchema != null && this.oldRelationToSchema.Status == SchemaObjectStatus.Normal && actualParent.ID != this.oldRelationToSchema.ParentID) throw new AUObjectValidationException("关系错误。此管理单元已经与另一个Schema关联。"); else if (this.oldRelationToUnit != null && this.oldRelationToUnit.Status == SchemaObjectStatus.Normal && actualParent.ID != this.oldRelationToUnit.ParentID) throw new AUObjectValidationException("关系错误。此管理单元已经与另一个AdminUnit关联。"); } else //删除操作,忽略传,m入的parent参数,因此需要查找真实的parent { if (oldRelationToUnit != null && oldRelationToUnit.Status == SchemaObjectStatus.Normal) { this.actualParent = SchemaObjectAdapter.Instance.Load(oldRelationToUnit.ParentID); } else if (oldRelationToSchema != null && oldRelationToSchema.Status == SchemaObjectStatus.Normal) { this.actualParent = schema; } } this.oldRelationToChildren = SchemaRelationObjectAdapter.Instance.LoadByParentID(this.Data.ID); if (actualParent is AUSchema) { // 应该是跟Schema关联 if (oldRelationToSchema != null && oldRelationToSchema.Status == SchemaObjectStatus.Normal) { relationExists = true; } targetRelation = new SCRelationObject(schema, this.Data) { Status = SchemaObjectStatus.Normal }; } else { targetRelation = SchemaRelationObjectAdapter.Instance.Load(actualParent.ID, this.Data.ID); if (targetRelation != null) { if (targetRelation.Status == SchemaObjectStatus.Normal) { relationExists = true; } targetRelation.Status = SchemaObjectStatus.Normal; } else { targetRelation = new SCRelationObject(actualParent, this.Data) { Status = SchemaObjectStatus.Normal }; } } }); }
protected override void OnIDChanged() { base.OnIDChanged(); this._AllChildrenRelations = null; this._AllChildren = null; this._CurrentlChildren = null; }
private void PrepareRelationObject() { AUCommon.DoDbAction(() => { this.oldRelationToSchema = SchemaRelationObjectAdapter.Instance.Load(((AdminUnit)this.Data).AUSchemaID, this.Data.ID); this.oldRelationToUnit = SchemaRelationObjectAdapter.Instance.LoadByObjectID(this.Data.ID).Where(m => m.Status == SchemaObjectStatus.Normal && m.ParentSchemaType == AUCommon.SchemaAdminUnit).FirstOrDefault(); if (this.Data.Status == SchemaObjectStatus.Normal) //添加操作 { this.actualParent = inputParent != null ? SchemaObjectAdapter.Instance.Load(this.inputParent.ID) : this.schema; if (this.actualParent.ID == this.Data.ID) { throw new AUObjectValidationException("管理单元的父管理单元不能是其自身。"); } if (this.actualParent == null || this.actualParent.Status != SchemaObjectStatus.Normal) { throw new AUObjectValidationException("指定的父管理单元在系统中不存在或已删除"); } if (this.oldRelationToSchema != null && this.oldRelationToSchema.Status == SchemaObjectStatus.Normal && this.oldRelationToUnit != null && this.oldRelationToUnit.Status == SchemaObjectStatus.Normal) { throw new AUObjectValidationException("关系错误。此管理单元已经存在,但存在错误的关联。一个管理单元不能同时与Schema和另一个管理单元关联"); } else if (this.oldRelationToSchema != null && this.oldRelationToSchema.Status == SchemaObjectStatus.Normal && actualParent.ID != this.oldRelationToSchema.ParentID) { throw new AUObjectValidationException("关系错误。此管理单元已经与另一个Schema关联。"); } else if (this.oldRelationToUnit != null && this.oldRelationToUnit.Status == SchemaObjectStatus.Normal && actualParent.ID != this.oldRelationToUnit.ParentID) { throw new AUObjectValidationException("关系错误。此管理单元已经与另一个AdminUnit关联。"); } } else //删除操作,忽略传,m入的parent参数,因此需要查找真实的parent { if (oldRelationToUnit != null && oldRelationToUnit.Status == SchemaObjectStatus.Normal) { this.actualParent = SchemaObjectAdapter.Instance.Load(oldRelationToUnit.ParentID); } else if (oldRelationToSchema != null && oldRelationToSchema.Status == SchemaObjectStatus.Normal) { this.actualParent = schema; } } this.oldRelationToChildren = SchemaRelationObjectAdapter.Instance.LoadByParentID(this.Data.ID); if (actualParent is AUSchema) { // 应该是跟Schema关联 if (oldRelationToSchema != null && oldRelationToSchema.Status == SchemaObjectStatus.Normal) { relationExists = true; } targetRelation = new SCRelationObject(schema, this.Data) { Status = SchemaObjectStatus.Normal }; } else { targetRelation = SchemaRelationObjectAdapter.Instance.Load(actualParent.ID, this.Data.ID); if (targetRelation != null) { if (targetRelation.Status == SchemaObjectStatus.Normal) { relationExists = true; } targetRelation.Status = SchemaObjectStatus.Normal; } else { targetRelation = new SCRelationObject(actualParent, this.Data) { Status = SchemaObjectStatus.Normal }; } } }); }