internal BackupPartitionStatus Build()
            {
                var tempPartitionStatus = partitionStatus;

                partitionStatus = null;     // So that build cannot be invoked again, not an ideal solution but works for us
                return(tempPartitionStatus);
            }
        /// <summary>
        /// Internal copy constructor
        /// </summary>
        /// <param name="other">Object to copy from</param>
        internal BackupPartitionStatus(BackupPartitionStatus other)
        {
            if (null == other)
            {
                throw new ArgumentNullException("other");
            }

            this.BackupId                   = other.BackupId;
            this.BackupLocation             = other.BackupLocation;
            this.BackupPartitionStatusState = other.BackupPartitionStatusState;
            this.EpochOfLastBackupRecord    = other.EpochOfLastBackupRecord;            // Note: This is assumed here that Epoch is not mutated
            this.ErrorCode                  = other.ErrorCode;
            this.LsnOfLastBackupRecord      = other.LsnOfLastBackupRecord;
            this.Message      = other.Message;
            this.OperationId  = other.OperationId;
            this.TimeStampUtc = other.TimeStampUtc;
            this.Uri          = other.Uri;
        }
 internal Builder(BackupPartitionStatus partitionStatus)
 {
     this.partitionStatus = new BackupPartitionStatus(partitionStatus);
 }