示例#1
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);
                }
            }
        }
		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 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);
				}
			}
		}
        public SCDeleteObjectsRecursivelyExecutor(SCOrganization parent, SchemaObjectCollection objectsToDelete) :
            base(SCOperationType.DeleteObjectsRecursively)
        {
            parent.NullCheck("parent");
            objectsToDelete.NullCheck("objectsToDelete");

            this._Parent = parent;
            this._OriginalObjectsToDelete = objectsToDelete;
            this.AutoStartTransaction     = false;
        }
		/// <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;
		}
        /// <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;
        }
示例#8
0
        public SCRelationObject AddUserToOrganization(SCUser user, SCOrganization parent)
        {
            user.NullCheck("user");
            parent.NullCheck("parent");

            SCOrganizationRelativeExecutor executor =
                new SCOrganizationRelativeExecutor(SCOperationType.AddUserToOrganization, parent, user)
            {
                NeedValidation = this.NeedValidationAndStatusCheck, NeedParentStatusCheck = this.NeedValidationAndStatusCheck
            };

            if (this._NeedCheckPermissions)
            {
                CheckPermissions(SCOperationType.AddUserToOrganization, parent.Schema, "AddChildren", parent.ID);
            }

            SCRelationObject result = null;

            ExecuteWithActions(SCOperationType.AddUserToOrganization, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute()));

            return(result);
        }
		public SCRelationObject AddUserToOrganization(SCUser user, SCOrganization parent)
		{
			user.NullCheck("user");
			parent.NullCheck("parent");

			SCOrganizationRelativeExecutor executor =
				new SCOrganizationRelativeExecutor(SCOperationType.AddUserToOrganization, parent, user) { NeedValidation = this.NeedValidationAndStatusCheck, NeedParentStatusCheck = this.NeedValidationAndStatusCheck };

			if (this._NeedCheckPermissions)
				CheckPermissions(SCOperationType.AddUserToOrganization, parent.Schema, "AddChildren", parent.ID);

			SCRelationObject result = null;

			ExecuteWithActions(SCOperationType.AddUserToOrganization, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute()));

			return result;
		}