/// <summary>
 /// Creating or Updating an object anchors Account.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of an Azure resource group.
 /// </param>
 /// <param name='accountName'>
 /// Name of an Mixed Reality Account.
 /// </param>
 /// <param name='objectAnchorsAccount'>
 /// Object Anchors Account parameter.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ObjectAnchorsAccount> CreateAsync(this IObjectAnchorsAccountsOperations operations, string resourceGroupName, string accountName, ObjectAnchorsAccount objectAnchorsAccount, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, objectAnchorsAccount, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public void TestObjectAnchorsAccountOperations()
        {
            var resourceGroup = new ResourceGroup
            {
                Name     = "MixedRealityNetSdkTests",
                Location = Location
            };

            var account = new ObjectAnchorsAccount
            {
                Location = Location,
            };

            using (var context = StartTest())
            {
                var operations = Client.ObjectAnchorsAccounts;

                try
                {
                    resourceGroup = ArmClient.ResourceGroups.CreateOrUpdate(resourceGroup.Name, resourceGroup);

                    // Create
                    AssertObjectAnchorsAccountNotExist(operations, resourceGroup.Name, ObjectAnchorsAccountName);

                    account = operations.Create(resourceGroup.Name, ObjectAnchorsAccountName, account);

                    Assert.Equal(ObjectAnchorsAccountName, account.Name);
                    Assert.Equal(Location, account.Location);

                    // Read
                    account = operations.Get(resourceGroup.Name, ObjectAnchorsAccountName);

                    Assert.Equal(ObjectAnchorsAccountName, account.Name);
                    Assert.Equal(Location, account.Location);

                    // Primary Key
                    var oldKey = operations.ListKeys(resourceGroup.Name, account.Name).PrimaryKey;
                    var newKey = operations.RegenerateKeys(resourceGroup.Name, account.Name, 1).PrimaryKey;
                    Assert.NotEqual(oldKey, newKey);

                    // Secondary Key
                    oldKey = operations.ListKeys(resourceGroup.Name, account.Name).SecondaryKey;
                    newKey = operations.RegenerateKeys(resourceGroup.Name, account.Name, 2).SecondaryKey;
                    Assert.NotEqual(oldKey, newKey);

                    // Delete
                    operations.Delete(resourceGroup.Name, account.Name);

                    AssertObjectAnchorsAccountNotExist(operations, resourceGroup.Name, ObjectAnchorsAccountName);
                }
                catch (CloudException e)
                {
                    Debug.Print(e.ToString());
                }
                finally
                {
                    // Delete is idempotent
                    operations.Delete(resourceGroup.Name, ObjectAnchorsAccountName);

                    ArmClient.ResourceGroups.Delete(resourceGroup.Name);
                }
            }
        }
 /// <summary>
 /// Creating or Updating an object anchors Account.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of an Azure resource group.
 /// </param>
 /// <param name='accountName'>
 /// Name of an Mixed Reality Account.
 /// </param>
 /// <param name='objectAnchorsAccount'>
 /// Object Anchors Account parameter.
 /// </param>
 public static ObjectAnchorsAccount Create(this IObjectAnchorsAccountsOperations operations, string resourceGroupName, string accountName, ObjectAnchorsAccount objectAnchorsAccount)
 {
     return(operations.CreateAsync(resourceGroupName, accountName, objectAnchorsAccount).GetAwaiter().GetResult());
 }