public static PSStorageAccount Create(StorageModels.StorageAccount storageAccount, IStorageManagementClient client)
 {
     var result = new PSStorageAccount(storageAccount);
     var credentials = StorageUtilities.GenerateStorageCredentials(client, result.ResourceGroupName, result.StorageAccountName);
     CloudStorageAccount account = new CloudStorageAccount(credentials,
         storageAccount.PrimaryEndpoints.Blob, storageAccount.PrimaryEndpoints.Queue, storageAccount.PrimaryEndpoints.Table, null);
     result.Context = new AzureStorageContext(account);
     return result;
 }
        public static PSStorageAccount Create(StorageModels.StorageAccount storageAccount, IStorageManagementClient client)
        {
            var result = new PSStorageAccount(storageAccount);
             result.Context = new LazyAzureStorageContext((s) => 
             { 
                var credentials = StorageUtilities.GenerateStorageCredentials(new ARMStorageProvider(client), result.ResourceGroupName, s); 
                 return new CloudStorageAccount(credentials, 
                     ARMStorageService.GetUri(storageAccount.PrimaryEndpoints.Blob), 
                     ARMStorageService.GetUri(storageAccount.PrimaryEndpoints.Queue), 
                     ARMStorageService.GetUri(storageAccount.PrimaryEndpoints.Table), 
                     ARMStorageService.GetUri(storageAccount.PrimaryEndpoints.File)); 
             }, result.StorageAccountName) as AzureStorageContext; 

            return result;
        }
 public PSStorageAccount(StorageModels.StorageAccount storageAccount)
 {
     this.ResourceGroupName = ParseResourceGroupFromId(storageAccount.Id);
     this.StorageAccountName = storageAccount.Name;
     this.Id = storageAccount.Id;
     this.Location = storageAccount.Location;
     this.AccountType = storageAccount.AccountType;
     this.CreationTime = storageAccount.CreationTime;
     this.CustomDomain = storageAccount.CustomDomain;
     this.LastGeoFailoverTime = storageAccount.LastGeoFailoverTime;
     this.PrimaryEndpoints = storageAccount.PrimaryEndpoints;
     this.PrimaryLocation = storageAccount.PrimaryLocation;
     this.ProvisioningState = storageAccount.ProvisioningState;
     this.SecondaryEndpoints = storageAccount.SecondaryEndpoints;
     this.SecondaryLocation = storageAccount.SecondaryLocation;
     this.StatusOfPrimary = storageAccount.StatusOfPrimary;
     this.StatusOfSecondary = storageAccount.StatusOfSecondary;
     this.Tags = storageAccount.Tags;
 }
 protected void WriteStorageAccount(StorageModels.StorageAccount storageAccount)
 {
     WriteObject(PSStorageAccount.Create(storageAccount, this.StorageClient));
 }