/// <summary> /// Sets the properties of multiple objects in one HTTP request. /// </summary> /// <param name="objectVersionUpdateInformation">Information on the objects to promote.</param> /// <param name="token">A cancellation token for the request.</param> /// <remarks>Will also promote objects if they are external and a class property value is provided (see <see cref="MFWSVaultExternalObjectOperations.PromoteObjectsAsync"/>).</remarks> public async Task <List <ExtendedObjectVersion> > SetPropertiesOfMultipleObjectsAsync(CancellationToken token = default(CancellationToken), params ObjectVersionUpdateInformation[] objectVersionUpdateInformation) { // Sanity. if (null == objectVersionUpdateInformation) { throw new ArgumentNullException(nameof(objectVersionUpdateInformation)); } if (objectVersionUpdateInformation.Length == 0) { return(new List <ExtendedObjectVersion>()); } // Create the request. var request = new RestRequest($"/REST/objects/setmultipleobjproperties"); // Create the request body. var body = new ObjectsUpdateInfo(); body.MultipleObjectInfo.AddRange(objectVersionUpdateInformation); // Set the request body. request.AddJsonBody(body); // Make the request and get the response. var response = await this.MFWSClient.Put <List <ExtendedObjectVersion> >(request, token) .ConfigureAwait(false); // Return the object data. return(response.Data); }
public void SetPropertiesOfMultipleObjects() { // Create our test runner. var runner = new RestApiTestRunner <List <ExtendedObjectVersion> >(Method.PUT, "/REST/objects/setmultipleobjproperties"); // Create the expected body. var body = new ObjectsUpdateInfo() { MultipleObjectInfo = new[] { new ObjectVersionUpdateInformation() { ObjVer = new ObjVer() { Type = 0, ID = 1, Version = 2 }, Properties = new List <PropertyValue> { new PropertyValue() { PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefClass, TypedValue = new TypedValue() { Lookup = new Lookup() { Item = (int)MFBuiltInDocumentClass.MFBuiltInDocumentClassOtherDocument } } } } }, new ObjectVersionUpdateInformation() { ObjVer = new ObjVer() { Type = 0, ID = 2, Version = 1 }, Properties = new List <PropertyValue> { new PropertyValue() { PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefClass, TypedValue = new TypedValue() { Lookup = new Lookup() { Item = (int)MFBuiltInDocumentClass.MFBuiltInDocumentClassOtherDocument } } } } } }.ToList() }; // Set the expected body. runner.SetExpectedRequestBody(body); // Execute. runner.MFWSClient.ExternalObjectOperations.PromoteObjects( objectVersionUpdateInformation: body.MultipleObjectInfo.ToArray()); // Verify. runner.Verify(); }
public async Task PromoteObjectsAsync() { // Create our test runner. var runner = new RestApiTestRunner <List <ExtendedObjectVersion> >(Method.PUT, "/REST/objects/setmultipleobjproperties"); // Create the expected body. var body = new ObjectsUpdateInfo() { MultipleObjectInfo = new[] { new ObjectVersionUpdateInformation() { ObjVer = new ObjVer() { ExternalRepositoryName = "hello world", ExternalRepositoryObjectID = "my object id", ExternalRepositoryObjectVersionID = "version", Type = 0 }, Properties = new List <PropertyValue> { new PropertyValue() { PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefClass, TypedValue = new TypedValue() { Lookup = new Lookup() { Item = (int)MFBuiltInDocumentClass.MFBuiltInDocumentClassOtherDocument } } } } }, new ObjectVersionUpdateInformation() { ObjVer = new ObjVer() { ExternalRepositoryName = "hello world", ExternalRepositoryObjectID = "my object id 2", ExternalRepositoryObjectVersionID = "version 2", Type = 0 }, Properties = new List <PropertyValue> { new PropertyValue() { PropertyDef = (int)MFBuiltInPropertyDef.MFBuiltInPropertyDefClass, TypedValue = new TypedValue() { Lookup = new Lookup() { Item = (int)MFBuiltInDocumentClass.MFBuiltInDocumentClassOtherDocument } } } } } }.ToList() }; // Set the expected body. runner.SetExpectedRequestBody(body); // Execute. await runner.MFWSClient.ExternalObjectOperations.PromoteObjectsAsync( objectVersionUpdateInformation : body.MultipleObjectInfo.ToArray()); // Verify. runner.Verify(); }