예제 #1
0
 protected SapiResult(resultAction result)
 {
     Result    = result.state;
     Reason    = result.reason;
     StartTime = result.startDate;
     EndTime   = result.endDate;
 }
예제 #2
0
        public SapiArchiveListResult(resultAction result) : base(result)
        {
            var item = (result as resultActionArchiveItem).info;

            entityType = item.entityType;
            full       = item.full;
            Moref      = item.moref;
            Name       = item.name;
            TimestampOfLatestGenerationId          = item.timestampOfLatestGenerationId;
            TimestampOfLatestSucceededGenerationId = item.timestampOfLatestSucceededGenerationId;
            Uuid = item.uuid;
        }
예제 #3
0
        protected resultAction[] Progress(String title, tasks actionTasks)
        {
            var TaskList = actionTasks.taskList;

            resultAction[] results = null;
            switch (actionTasks.state)
            {
            case operationState.FAILED:
            case operationState.SKIPPED:
            case operationState.ABORTED:
                results    = new resultAction[1];
                results[0] = new resultAction
                {
                    state  = actionTasks.state,
                    reason = actionTasks.reason
                };
                break;

            case operationState.STARTED:
            case operationState.QUEUED:
            case operationState.SUCCESS:
                int numberOfTasks = TaskList.Length;
                results = new resultAction[numberOfTasks];
                if (numberOfTasks == 1)
                {
                    results[0] = Progress(title, TaskList[0]);
                }
                else
                {
                    ProgressRecord[] myprogresses = new ProgressRecord[numberOfTasks];

                    var globalProgress = new ProgressRecord(0, title, "Progress:");
                    for (int id = 0; id < numberOfTasks; id++)
                    {
                        var titleStr = (TaskList[id].fcoEntity != null) ? title + ":" + TaskList[id].fcoEntity.entityType.ToString() + ":" + TaskList[id].fcoEntity.name : title;

                        myprogresses[id] = new ProgressRecord(id + 1, titleStr, "Progress:")
                        {
                            ParentActivityId = 0
                        };
                        results[id] = SapiClients.client.getTaskInfo(TaskList[id]).result;
                        Thread.Sleep(100);
                    }
                    Boolean allDone = false;

                    while (!allDone)
                    {
                        for (int id = 0; id < numberOfTasks; id++)
                        {
                            if (!results[id].done)
                            {
                                results[id] = SapiClients.client.getTaskInfo(TaskList[id]).result;
                                myprogresses[id].PercentComplete = results[id].progress;
                                WriteProgress(myprogresses[id]);
                                Thread.Sleep(1000);
                            }
                        }
                        WriteProgress(globalProgress);
                        allDone = true;
                        for (int id = 0; id < numberOfTasks; id++)
                        {
                            allDone &= results[id].done;
                        }
                    }
                }
                break;
            }
            return(results);
        }
예제 #4
0
 public SapiVirtualBackupResult(resultAction result) : base(result)
 {
 }
예제 #5
0
 public SapiConnectResult(resultAction result) : base(result)
 {
 }
예제 #6
0
 public SapiDisconnectRepositoryResult(resultAction result) : base(result)
 {
     name = (result as resultActionDisconnectRepository).name;
 }
예제 #7
0
 public SapiConnectRepositoryResult(resultAction result) : base(result)
 {
     name = (result as abstractResultActionConnectRepository).name;
 }
예제 #8
0
 public SapiRestoreResult(resultAction result) : base(result)
 {
 }
예제 #9
0
 public SapiBackupResult(resultAction result) : base(result)
 {
 }
예제 #10
0
 public SapiException(resultAction ra)
 {
     _message = ra.reason;
 }