Esempio n. 1
0
        /// <summary>
        ///     Get extendVault Info.
        /// </summary>
        /// <param name="vaultResourceGroupName">Vault ResourceGroup Name</param>
        /// <param name="vaultName">Vault Name</param>
        /// <returns>VaultExtendedInfo Resource Object</returns>
        public VaultExtendedInfoResource GetVaultExtendedInfo(String vaultResourceGroupName, String vaultName)
        {
            VaultExtendedInfoResource extendedInformation = null;

            try
            {
                extendedInformation = this.recoveryServicesVaultClient
                                      .VaultExtendedInfo
                                      .GetWithHttpMessagesAsync(vaultResourceGroupName, vaultName, this.GetRequestHeaders(false))
                                      .GetAwaiter()
                                      .GetResult()
                                      .Body;
            }
            catch (Exception exception)
            {
                CloudException cloudException = exception as CloudException;

                if (!string.IsNullOrEmpty(cloudException?.Response?.Content))
                {
                    rpError.Error error = JsonConvert.DeserializeObject <rpError.Error>(cloudException.Response.Content);

                    if (error.ErrorCode.Equals(
                            RpErrorCode.ResourceExtendedInfoNotFound.ToString(),
                            StringComparison.InvariantCultureIgnoreCase))
                    {
                        extendedInformation = new VaultExtendedInfoResource();
                        extendedInformation.IntegrityKey = Utilities.GenerateRandomKey(128);
                        extendedInformation.Algorithm    = CryptoAlgorithm.None.ToString();
                        extendedInformation = this.recoveryServicesVaultClient.VaultExtendedInfo.CreateOrUpdateWithHttpMessagesAsync(
                            vaultResourceGroupName,
                            vaultName,
                            extendedInformation,
                            GetRequestHeaders(false)).Result.Body;
                    }
                }
            }

            return(extendedInformation);
        }