Example #1
0
        internal AmDatabaseMoveResult ConvertDetailedStatusToRpcMoveResult(AmDbOperationDetailedStatus detailedStatus)
        {
            Guid            guid                  = detailedStatus.Database.Guid;
            string          name                  = detailedStatus.Database.Name;
            string          fromServerFqdn        = string.Empty;
            string          finalActiveServerFqdn = string.Empty;
            AmDbMountStatus dbMountStatusAtStart  = AmDbMountStatus.Unknown;
            AmDbMountStatus dbMountStatusAtEnd    = AmDbMountStatus.Unknown;

            if (detailedStatus.InitialDbState != null)
            {
                fromServerFqdn       = detailedStatus.InitialDbState.ActiveServer.Fqdn;
                dbMountStatusAtStart = AmDbOperation.ConvertMountStatusToRpcMountStatus(detailedStatus.InitialDbState.MountStatus);
            }
            if (detailedStatus.FinalDbState != null)
            {
                finalActiveServerFqdn = detailedStatus.FinalDbState.ActiveServer.Fqdn;
                dbMountStatusAtEnd    = AmDbOperation.ConvertMountStatusToRpcMountStatus(detailedStatus.FinalDbState.MountStatus);
            }
            Exception                        lastException = this.LastException;
            RpcErrorExceptionInfo            errorInfo     = AmRpcExceptionWrapper.Instance.ConvertExceptionToErrorExceptionInfo(lastException);
            AmDbMoveStatus                   dbMoveStatus  = AmDbOperation.TranslateExceptionIntoMoveStatusEnum(lastException);
            List <AmDbRpcOperationSubStatus> attemptedServerSubStatuses = (from opSubStatus in detailedStatus.GetAllSubStatuses()
                                                                           select opSubStatus.ConvertToRpcSubStatus()).ToList <AmDbRpcOperationSubStatus>();

            return(new AmDatabaseMoveResult(guid, name, fromServerFqdn, finalActiveServerFqdn, dbMoveStatus, dbMountStatusAtStart, dbMountStatusAtEnd, errorInfo, attemptedServerSubStatuses));
        }
        private static MoveStatus ConvertToMoveStatus(AmDbMoveStatus rpcMoveStatus)
        {
            switch (rpcMoveStatus)
            {
            case AmDbMoveStatus.Unknown:
                return(MoveStatus.Unknown);

            case AmDbMoveStatus.Succeeded:
                return(MoveStatus.Succeeded);

            case AmDbMoveStatus.Warning:
                return(MoveStatus.Warning);

            case AmDbMoveStatus.Failed:
                return(MoveStatus.Failed);

            case AmDbMoveStatus.Skipped:
                return(MoveStatus.Skipped);

            default:
                return(MoveStatus.Unknown);
            }
        }