public DEMemberRelativeExecutorBase(DEOperationType opType, DESchemaObjectBase container, DEBase member) : base(opType, member) { container.NullCheck("container"); container.ClearRelativeData(); if (member != null) { member.ClearRelativeData(); } this._Container = container; this._Relation = PrepareRelationObject(container, member); }
private DEMemberRelationCollection PrepareRelationObject(DESchemaObjectBase container, DESchemaObjectCollection members) { var result = new DEMemberRelationCollection(); members.ForEach(member => { DESimpleRelationBase relation = DEMemberRelationAdapter.Instance.Load(container.ID, member.ID); if (relation == null) { relation = CreateRelation(container, member, _RelationType); } else { OverrideExistedRelation = true; } relation.Status = member.Status; result.Add(relation); }); return(result); }
private DESimpleRelationBase PrepareRelationObject(DESchemaObjectBase container, DESchemaObjectBase member) { DESimpleRelationBase relation = DEMemberRelationAdapter.Instance.Load(container.ID, member.ID); if (relation == null) { relation = CreateRelation(container, member); } else { if (relation.Status == SchemaObjectStatus.Normal) { this._RelationExisted = true; } else { relation.Status = SchemaObjectStatus.Normal; } } return(relation); }