public static RecoveryPointBase GetPSAzureVMRecoveryPoint( ServiceClientModel.RecoveryPointResource rp, ItemBase item) { Dictionary <UriEnums, string> uriDict = HelperUtils.ParseUri(item.Id); string containerUri = HelperUtils.GetContainerUri(uriDict, item.Id); string protectedItemUri = HelperUtils.GetProtectedItemUri(uriDict, item.Id); string containerName = IdUtils.GetNameFromUri(containerUri); string protectedItemName = IdUtils.GetNameFromUri(protectedItemUri); ServiceClientModel.IaasVMRecoveryPoint recoveryPoint = rp.Properties as ServiceClientModel.IaasVMRecoveryPoint; DateTime recoveryPointTime = DateTime.MinValue; if (recoveryPoint.RecoveryPointTime.HasValue) { recoveryPointTime = (DateTime)recoveryPoint.RecoveryPointTime; } else { throw new ArgumentNullException("RecoveryPointTime is null"); } bool isInstantILRSessionActive = recoveryPoint.IsInstantIlrSessionActive.HasValue ? (bool)recoveryPoint.IsInstantIlrSessionActive : false; AzureVmRecoveryPoint rpBase = new AzureVmRecoveryPoint() { RecoveryPointId = rp.Name, BackupManagementType = item.BackupManagementType, ItemName = protectedItemName, ContainerName = containerName, ContainerType = item.ContainerType, RecoveryPointTime = recoveryPointTime, RecoveryPointType = recoveryPoint.RecoveryPointType, Id = rp.Id, WorkloadType = item.WorkloadType, RecoveryPointAdditionalInfo = recoveryPoint.RecoveryPointAdditionalInfo, SourceVMStorageType = recoveryPoint.SourceVMStorageType, SourceResourceId = item.SourceResourceId, EncryptionEnabled = recoveryPoint.IsSourceVMEncrypted.HasValue ? recoveryPoint.IsSourceVMEncrypted.Value : false, IlrSessionActive = isInstantILRSessionActive, IsManagedVirtualMachine = recoveryPoint.IsManagedVirtualMachine.HasValue ? recoveryPoint.IsManagedVirtualMachine.Value : false, OriginalSAEnabled = recoveryPoint.OriginalStorageAccountOption.HasValue ? recoveryPoint.OriginalStorageAccountOption.Value : false, }; if (rpBase.EncryptionEnabled && recoveryPoint.KeyAndSecret != null) { rpBase.KeyAndSecretDetails = new KeyAndSecretDetails() { SecretUrl = recoveryPoint.KeyAndSecret.BekDetails.SecretUrl, KeyUrl = recoveryPoint.KeyAndSecret.KekDetails.KeyUrl, SecretData = recoveryPoint.KeyAndSecret.BekDetails.SecretData, KeyBackupData = recoveryPoint.KeyAndSecret.KekDetails.KeyBackupData, KeyVaultId = recoveryPoint.KeyAndSecret.KekDetails.KeyVaultId, SecretVaultId = recoveryPoint.KeyAndSecret.BekDetails.SecretVaultId, }; } return(rpBase); }