private async Task<Dictionary<string, object>> UpdateMetadata(Uri hostUri, string id, List<BoxMetadataUpdate> updates, string scope, string template)
{
foreach (BoxMetadataUpdate update in updates)
{
update.Path.ThrowIfNullOrWhiteSpace("Path");
update.Op.ThrowIfNull("Op");
}
BoxRequest request = new BoxRequest(hostUri, string.Format(Constants.MetadataPathString, id, scope, template))
.Method(RequestMethod.Put)
.Payload(_converter.Serialize(updates));
request.ContentType = Constants.RequestParameters.ContentTypeJsonPatch;
IBoxResponse<Dictionary<string, object>> response = await ToResponseAsync<Dictionary<string, object>>(request).ConfigureAwait(false);
return response.ResponseObject;
}