/// <summary> /// This method is used by the client to modify the specific properties of an Address Book object. /// </summary> /// <param name="modPropsRequestBody">The ModProps request type request body.</param> /// <returns>The response body of the ModProps request type.</returns> public ModPropsResponseBody ModProps(ModPropsRequestBody modPropsRequestBody) { CommonResponse commonResponse = this.SendAddressBookRequest(modPropsRequestBody, RequestType.ModProps); ModPropsResponseBody modPropsResponseBody = ModPropsResponseBody.Parse(commonResponse.ResponseBodyRawData); this.VerifyModPropsResponseBody(modPropsResponseBody); return(modPropsResponseBody); }
/// <summary> /// Initialize ModProps request body. /// </summary> /// <param name="hasState">A Boolean value that specifies whether the State field is present.</param> /// <param name="stat">A STAT structure that specifies the state of a specific address book container.</param> /// <param name="hasPropertyValues">A Boolean value that specifies whether the PropertyValues field is present.</param> /// <param name="propertyTag">A property tag both identifies a property and gives the data type its value.</param> /// <param name="hasPropertyTagsToRemove">A Boolean value that specifies whether the PropertyTagsToRemove field is present.</param> /// <param name="propertyTagsToRemove">A LargePropTagArray structure that specifies the properties that the client is requesting to be removed. </param> /// <returns>Returns the ModProps request body.</returns> private ModPropsRequestBody BuildModPropsRequestBody(bool hasState, STAT stat, bool hasPropertyValues, PropertyTag propertyTag, bool hasPropertyTagsToRemove, LargePropertyTagArray propertyTagsToRemove) { ModPropsRequestBody modPropsRequestBody = new ModPropsRequestBody(); modPropsRequestBody.Reserved = 0x0; byte[] auxIn = new byte[] { }; modPropsRequestBody.AuxiliaryBuffer = auxIn; modPropsRequestBody.AuxiliaryBufferSize = (uint)auxIn.Length; modPropsRequestBody.HasState = hasState; if (hasState) { modPropsRequestBody.State = stat; } modPropsRequestBody.HasPropertyValues = hasPropertyValues; if (hasPropertyValues) { AddressBookPropertyValueList addressBookProperties = new AddressBookPropertyValueList(); addressBookProperties.PropertyValueCount = 1; AddressBookTaggedPropertyValue[] taggedPropertyValues = new AddressBookTaggedPropertyValue[1]; AddressBookTaggedPropertyValue taggedPropertyValue = new AddressBookTaggedPropertyValue(); taggedPropertyValue.PropertyType = propertyTag.PropertyType; taggedPropertyValue.PropertyId = propertyTag.PropertyId; taggedPropertyValue.Value = new byte[] { 0x00, 0x00 }; taggedPropertyValues[0] = taggedPropertyValue; addressBookProperties.PropertyValues = taggedPropertyValues; modPropsRequestBody.PropertyVaules = addressBookProperties; } modPropsRequestBody.HasPropertyTagsToRemove = hasPropertyTagsToRemove; if (hasPropertyTagsToRemove) { modPropsRequestBody.PropertyTagsToRemove = propertyTagsToRemove; } return modPropsRequestBody; }
/// <summary> /// This method is used by the client to modify the specific properties of an Address Book object. /// </summary> /// <param name="modPropsRequestBody">The ModProps request type request body.</param> /// <returns>The response body of the ModProps request type.</returns> public ModPropsResponseBody ModProps(ModPropsRequestBody modPropsRequestBody) { CommonResponse commonResponse = this.SendAddressBookRequest(modPropsRequestBody, RequestType.ModProps); ModPropsResponseBody modPropsResponseBody = ModPropsResponseBody.Parse(commonResponse.ResponseBodyRawData); this.VerifyModPropsResponseBody(modPropsResponseBody); return modPropsResponseBody; }