public void ChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCObjectOperations.Instance.ChangeOwner(user, sidelineOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Console.WriteLine(user.OwnerName); Assert.AreEqual(sidelineOrg.ID, user.OwnerID); }
public SCMoveObjectExecutor(SCOperationType opType, SCOrganization originalOrg, SCBase obj, SCOrganization targetOrg) : base(opType) { obj.NullCheck("obj"); targetOrg.NullCheck("targetOrg"); obj.ClearRelativeData(); targetOrg.ClearRelativeData(); if (originalOrg != null) originalOrg.ClearRelativeData(); this._Object = obj; this._OriginalOrganization = originalOrg; this._TargetOrganization = targetOrg; this._NeedChangeOwner = PrepareNeedChangeOwner(originalOrg, targetOrg, obj); if (originalOrg != null && originalOrg.ID == targetOrg.ID) { this._RelationExisted = true; } else { this._OriginalRelation = PreprareOriginalRelation(originalOrg, obj); this._TargetRelation = PrepareTargetRelation(targetOrg, obj); this._NeedGenerateFullPaths = (obj is ISCRelationContainer) && (((ISCRelationContainer)obj).GetCurrentChildrenCount() > 0); } }
public void UpdateOrganizationNameTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SchemaObjectBase objLoaded = SchemaObjectAdapter.Instance.Load(newOrg.ID); Assert.AreEqual(newOrg.Name, objLoaded.Properties.GetValue("Name", string.Empty)); Assert.IsTrue(objLoaded.CurrentParents.Count > 0); Assert.AreEqual(root.ID, objLoaded.CurrentParents[0].ID); SCObjectOperations.Instance.AddUser(user, newOrg); newOrg.ClearRelativeData(); newOrg.Name = "ChangedOrgName"; SCObjectOperations.Instance.UpdateOrganization(newOrg); Console.WriteLine("Org ID: {0}, User ID: {1}", newOrg.ID, user.ID); }
public void MoveUserNotChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCOrganization targetOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(targetOrg, root); SCObjectOperations.Instance.MoveObjectToOrganization(sidelineOrg, user, targetOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); targetOrg.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Assert.IsTrue(user.CurrentParents.ContainsKey(targetOrg.ID)); Assert.IsTrue(targetOrg.CurrentChildren.ContainsKey(user.ID)); Assert.IsFalse(sidelineOrg.CurrentChildren.ContainsKey(user.ID)); Assert.AreNotEqual(targetOrg.ID, user.OwnerID); }
public SCOrganizationRelativeExecutor(SCOperationType opType, SCOrganization parent, SCBase data) : base(opType, data) { parent.NullCheck("organization"); data.ClearRelativeData(); parent.ClearRelativeData(); this._Parent = parent; this._Relation = PrepareRelationObject(parent, data); if (this.OperationType == SCOperationType.AddOrganization) { this._AclContainer = PrepareAclContainer(parent, data); } if (data is SCUser) { this._TargetParentRelations = data.CurrentParentRelations; if (this.OperationType == SCOperationType.AddUser && this._TargetParentRelations.Count == 0) { SCUser user = (SCUser)data; user.OwnerID = parent.ID; user.OwnerName = parent.Properties.GetValue("Name", string.Empty); } } }
public SCMoveObjectExecutor(SCOperationType opType, SCOrganization originalOrg, SCBase obj, SCOrganization targetOrg) : base(opType) { obj.NullCheck("obj"); targetOrg.NullCheck("targetOrg"); obj.ClearRelativeData(); targetOrg.ClearRelativeData(); if (originalOrg != null) { originalOrg.ClearRelativeData(); } this._Object = obj; this._OriginalOrganization = originalOrg; this._TargetOrganization = targetOrg; this._NeedChangeOwner = PrepareNeedChangeOwner(originalOrg, targetOrg, obj); if (originalOrg != null && originalOrg.ID == targetOrg.ID) { this._RelationExisted = true; } else { this._OriginalRelation = PreprareOriginalRelation(originalOrg, obj); this._TargetRelation = PrepareTargetRelation(targetOrg, obj); this._NeedGenerateFullPaths = (obj is ISCRelationContainer) && (((ISCRelationContainer)obj).GetCurrentChildrenCount() > 0); } }
public SCOrganizationRelativeExecutor(SCOperationType opType, SCOrganization parent, SCBase data) : base(opType, data) { parent.NullCheck("organization"); data.ClearRelativeData(); parent.ClearRelativeData(); this._Parent = parent; this._Relation = PrepareRelationObject(parent, data); if (this.OperationType == SCOperationType.AddOrganization) this._AclContainer = PrepareAclContainer(parent, data); if (data is SCUser) { this._TargetParentRelations = data.CurrentParentRelations; if (this.OperationType == SCOperationType.AddUser && this._TargetParentRelations.Count == 0) { SCUser user = (SCUser)data; user.OwnerID = parent.ID; user.OwnerName = parent.Properties.GetValue("Name", string.Empty); } } }
/// <summary> /// 修改对象的Owner信息 /// </summary> /// <param name="opType">操作类型</param> /// <param name="obj">需要调整Owner的对象</param> /// <param name="targetOrg">调整后的Owner</param> public SCChangeOwnerExecutor(SCOperationType opType, SCBase obj, SCOrganization targetOrg) : base(opType) { obj.NullCheck("obj"); targetOrg.NullCheck("targetOrg"); obj.ClearRelativeData(); targetOrg.ClearRelativeData(); this._Object = obj; this._TargetOrganization = targetOrg; }
public void LoadSimpleObjectTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); root.ClearRelativeData(); SCSimpleObjectCollection simpleChildren = root.CurrentChildren.ToSimpleObjects(); SCSimpleObject simpleObj = simpleChildren.Find(obj => obj.ID == newOrg.ID); Console.WriteLine(simpleObj.DisplayName); Assert.IsNotNull(simpleObj); Assert.AreEqual(simpleObj.Name, simpleObj.DisplayName); }
public void MoveGroupTest() { SCOrganization root = SCOrganization.GetRoot(); SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, root); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SCObjectOperations.Instance.MoveObjectToOrganization(null, group, newOrg); group.ClearRelativeData(); newOrg.ClearRelativeData(); root.ClearRelativeData(); Assert.IsTrue(group.CurrentParents.ContainsKey(newOrg.ID)); Assert.IsTrue(newOrg.CurrentChildren.ContainsKey(group.ID)); Assert.IsFalse(root.CurrentChildren.ContainsKey(group.ID)); }
public void AddUserInOrganizationTest() { SCOrganization org = SCObjectGenerator.PrepareOrganizationObject(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCRelationObject relation = UpdateRelation(org, user); org.ClearRelativeData(); SCRelationObject relationLoaded = SchemaRelationObjectAdapter.Instance.Load(org.ID, user.ID); Console.WriteLine("Org ID: {0}, User ID: {1}", org.ID, user.ID); Assert.IsNotNull(relationLoaded); Assert.AreEqual(org.ID, relationLoaded.ParentID); Assert.AreEqual(user.ID, relationLoaded.ID); Assert.AreEqual(user.VersionStartTime, org.VersionStartTime); Assert.AreEqual(relation.VersionStartTime, org.VersionStartTime); ChildrenCheck(SCOrganization.GetRoot(), org, user); ParentsCheck(user, org, SCOrganization.GetRoot()); }