protected void DoTransferProgress(object sender, PostProgressDoPostedDataEventArgs e)
        {
            try
            {
                string ser = (string)e.Steps[0];

                DeserialObject obj = JSONSerializerExecute.Deserialize <DeserialObject>(ser);

                BatchExecutor executor = null;

                switch (obj.ActionType)
                {
                case TransferActionType.UserCopyToGroup:
                    executor = new CopyUsersToGroupsTransfer(obj.OrgKey, obj.SrcKeys, obj.TargetKeys);
                    break;

                case TransferActionType.UserCopyToOrg:
                    executor = new CopyUsersToOrgsTransfer(obj.OrgKey, obj.SrcKeys, obj.TargetKeys);
                    break;

                case TransferActionType.UserMoveToOrg:
                    executor = new MoveUsersToOrgsTransfer(obj.OrgKey, obj.SrcKeys, obj.TargetKeys);
                    break;

                case TransferActionType.GroupMoveToOrg:
                case TransferActionType.OrgTransfer:
                case TransferActionType.MixedToOrg:
                    executor = new MoveObjectsToOrgTransfer(obj.OrgKey, obj.SrcKeys, obj.TargetKeys);
                    break;

                default:
                    throw new InvalidOperationException("没有指定如何操作");
                }

                executor.Execute();
            }
            catch (Exception ex)
            {
                ProcessProgress.Current.Output.WriteLine(ex.ToString());
            }

            e.Result.CloseWindow = false;
            e.Result.ProcessLog  = ProcessProgress.Current.GetDefaultOutput();
        }
Beispiel #2
0
        protected void ProcessMoving(object sender, PostProgressDoPostedDataEventArgs e)
        {
            try
            {
                string ser = (string)e.Steps[0];

                DeserialObject obj = JSONSerializerExecute.Deserialize <DeserialObject>(ser);

                var executer = new BatchGroupTransferExecutor(obj.SrcKeys, obj.TargetKeys);

                executer.Execute();
            }
            catch (Exception ex)
            {
                ProcessProgress.Current.Output.WriteLine(ex.ToString());
            }

            e.Result.ProcessLog  = ProcessProgress.Current.GetDefaultOutput();
            e.Result.CloseWindow = false;
        }