/// <summary>
 /// Resolves multiple vault structural aliases to ids at once.
 /// </summary>
 /// <param name="aliasRequest">The collection of aliases to resolve.</param>
 /// <param name="token">A cancellation token for the request.</param>
 /// <returns>An awaitable task for the request.</returns>
 public VaultStructureAliasResponse GetMetadataStructureIDsByAliases(VaultStructureAliasRequest aliasRequest,
                                                                     CancellationToken token = default(CancellationToken))
 {
     // Execute the async method.
     return(this.GetMetadataStructureIDsByAliasesAsync(aliasRequest, token)
            .ConfigureAwait(false)
            .GetAwaiter()
            .GetResult());
 }
        public void GetMetadataStructureIDsByAliases()
        {
            // Create our test runner.
            var runner = new RestApiTestRunner <VaultStructureAliasResponse>(Method.POST, "/REST/structure/metadatastructure/itemidbyalias.aspx");

            // Set up the expected body.
            var body = new VaultStructureAliasRequest();

            runner.SetExpectedRequestBody(body);

            // Execute.
            runner.MFWSClient.GetMetadataStructureIDsByAliases(body);

            // Verify.
            runner.Verify();
        }
        /// <summary>
        /// Resolves multiple vault structural aliases to ids at once.
        /// </summary>
        /// <param name="aliasRequest">The collection of aliases to resolve.</param>
        /// <param name="token">A cancellation token for the request.</param>
        /// <returns>An awaitable task for the request.</returns>
        /// <remarks>Only available in M-Files 12.0.6768.0 upwards.</remarks>
        public async Task <VaultStructureAliasResponse> GetMetadataStructureIDsByAliasesAsync(VaultStructureAliasRequest aliasRequest,
                                                                                              CancellationToken token = default(CancellationToken))
        {
            // Sanity.
            if (null == aliasRequest)
            {
                throw new ArgumentNullException(nameof(aliasRequest));
            }

            // Create the request.
            var request = new RestRequest($"/REST/structure/metadatastructure/itemidbyalias.aspx");

            // Assign the body.
            request.AddJsonBody(aliasRequest);

            // Make the request and get the response.
            var response = await this.Post <VaultStructureAliasResponse>(request, token)
                           .ConfigureAwait(false);

            // Return the data.
            return(response.Data);
        }