/// <summary> /// This method is used by the client to compare the position of two objects in an address book container. /// </summary> /// <param name="compareMIdsRequestBody">The CompareMinIds request type request body.</param> /// <returns>The response body of the CompareMinIds request type.</returns> public CompareMinIdsResponseBody CompareMinIds(CompareMinIdsRequestBody compareMIdsRequestBody) { CommonResponse commonResponse = this.SendAddressBookRequest(compareMIdsRequestBody, RequestType.CompareMIds); CompareMinIdsResponseBody compareMinIdsResponseBody = CompareMinIdsResponseBody.Parse(commonResponse.ResponseBodyRawData); this.VerifyComapreMinIdsResponsebody(compareMinIdsResponseBody); return(compareMinIdsResponseBody); }
/// <summary> /// Parse the CompareMinIds request type response body. /// </summary> /// <param name="rawData">The raw data of response.</param> /// <returns>The response body of compare minimal IDs request.</returns> public static CompareMinIdsResponseBody Parse(byte[] rawData) { CompareMinIdsResponseBody responseBody = new CompareMinIdsResponseBody(); int index = 0; responseBody.StatusCode = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.ErrorCode = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.Result = BitConverter.ToInt32(rawData, index); index += 4; responseBody.AuxiliaryBufferSize = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.AuxiliaryBuffer = new byte[responseBody.AuxiliaryBufferSize]; Array.Copy(rawData, index, responseBody.AuxiliaryBuffer, 0, responseBody.AuxiliaryBufferSize); return responseBody; }
/// <summary> /// Parse the CompareMinIds request type response body. /// </summary> /// <param name="rawData">The raw data of response.</param> /// <returns>The response body of compare minimal IDs request.</returns> public static CompareMinIdsResponseBody Parse(byte[] rawData) { CompareMinIdsResponseBody responseBody = new CompareMinIdsResponseBody(); int index = 0; responseBody.StatusCode = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.ErrorCode = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.Result = BitConverter.ToInt32(rawData, index); index += 4; responseBody.AuxiliaryBufferSize = BitConverter.ToUInt32(rawData, index); index += 4; responseBody.AuxiliaryBuffer = new byte[responseBody.AuxiliaryBufferSize]; Array.Copy(rawData, index, responseBody.AuxiliaryBuffer, 0, responseBody.AuxiliaryBufferSize); return(responseBody); }
/// <summary> /// Verify the ComapreMinIds response body related requirements. /// </summary> /// <param name="compareMinIdsResponseBody">The CompareMinIds response body to be verified.</param> private void VerifyComapreMinIdsResponsebody(CompareMinIdsResponseBody compareMinIdsResponseBody) { // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R399"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R399 this.Site.CaptureRequirementIfIsInstanceOfType( compareMinIdsResponseBody.StatusCode, typeof(uint), 399, @"[In CompareMinIds Request Type Success Response Body] StatusCode (4 bytes): An unsigned integer that specifies the status of the request."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R1290"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R1290 this.Site.CaptureRequirementIfAreEqual<uint>( 0, compareMinIdsResponseBody.StatusCode, 1290, @"[In CompareMinIds Request Type Success Response Body] [StatusCode] This field MUST be set to 0x00000000."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R400"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R400 this.Site.CaptureRequirementIfIsInstanceOfType( compareMinIdsResponseBody.ErrorCode, typeof(uint), 400, @"[In CompareMinIds Request Type Success Response Body] ErrorCode (4 bytes): An unsigned integer that specifies the return status of the operation."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R401"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R401 this.Site.CaptureRequirementIfIsInstanceOfType( compareMinIdsResponseBody.Result, typeof(int), 401, @"[In CompareMinIds Request Type Success Response Body] Result (4 bytes): A signed integer that specifies the result of the comparison."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R402"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R402 this.Site.CaptureRequirementIfIsInstanceOfType( compareMinIdsResponseBody.AuxiliaryBufferSize, typeof(uint), 402, @"[In CompareMinIds Request Type Success Response Body] AuxiliaryBufferSize (4 bytes): An unsigned integer that specifies the size, in bytes, of the AuxiliaryBuffer field."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R403"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R403 this.Site.CaptureRequirementIfIsInstanceOfType( compareMinIdsResponseBody.AuxiliaryBuffer, typeof(byte[]), 403, @"[In CompareMinIds Request Type Success Response Body] AuxiliaryBuffer (variable): An array of bytes that constitute the auxiliary payload data returned from the server."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R404"); // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R404 this.Site.CaptureRequirementIfAreEqual<uint>( compareMinIdsResponseBody.AuxiliaryBufferSize, (uint)compareMinIdsResponseBody.AuxiliaryBuffer.Length, 404, @"[In CompareMinIds Request Type Success Response Body] [AuxiliaryBuffer] The size of this field, in bytes, is specified by the AuxiliaryBufferSize field."); }