A class indicates the response body of DNToMinId request
Inheritance: AddressBookResponseBodyBase
Ejemplo n.º 1
0
        /// <summary>
        /// Parse the DnToMinId request type response body.
        /// </summary>
        /// <param name="rawData">The raw data of response.</param>
        /// <returns>The DnToMinId request type response body.</returns>
        public static DnToMinIdResponseBody Parse(byte[] rawData)
        {
            DnToMinIdResponseBody responseBody = new DnToMinIdResponseBody();
            int index = 0;

            responseBody.StatusCode = BitConverter.ToUInt32(rawData, index);
            index += sizeof(uint);
            responseBody.ErrorCode = BitConverter.ToUInt32(rawData, index);
            index += sizeof(uint);
            responseBody.HasMinimalIds = BitConverter.ToBoolean(rawData, index);
            index += sizeof(bool);
            if (responseBody.HasMinimalIds)
            {
                responseBody.MinimalIdCount = BitConverter.ToUInt32(rawData, index);
                responseBody.MinimalIds     = new uint[(uint)responseBody.MinimalIdCount];
                index += sizeof(uint);
                for (int i = 0; i < responseBody.MinimalIdCount; i++)
                {
                    responseBody.MinimalIds[i] = BitConverter.ToUInt32(rawData, index);
                    index += sizeof(uint);
                }
            }
            else
            {
                responseBody.MinimalIdCount = null;
                responseBody.MinimalIds     = null;
            }

            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 DnToMinId request type response body.
        /// </summary>
        /// <param name="rawData">The raw data of response.</param>
        /// <returns>The DnToMinId request type response body.</returns>
        public static DnToMinIdResponseBody Parse(byte[] rawData)
        {
            DnToMinIdResponseBody responseBody = new DnToMinIdResponseBody();
            int index = 0;
            responseBody.StatusCode = BitConverter.ToUInt32(rawData, index);
            index += sizeof(uint);
            responseBody.ErrorCode = BitConverter.ToUInt32(rawData, index);
            index += sizeof(uint);
            responseBody.HasMinimalIds = BitConverter.ToBoolean(rawData, index);
            index += sizeof(bool);
            if (responseBody.HasMinimalIds)
            {
                responseBody.MinimalIdCount = BitConverter.ToUInt32(rawData, index);
                responseBody.MinimalIds = new uint[(uint)responseBody.MinimalIdCount];
                index += sizeof(uint);
                for (int i = 0; i < responseBody.MinimalIdCount; i++)
                {
                    responseBody.MinimalIds[i] = BitConverter.ToUInt32(rawData, index);
                    index += sizeof(uint);
                }
            }
            else
            {
                responseBody.MinimalIdCount = null;
                responseBody.MinimalIds = null;
            }

            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>
        /// This method is used by the client to map a set of distinguished names to a set of Minimal Entry IDs.
        /// </summary>
        /// <param name="distinguishedNameToMIdRequestBody">The DnToMinId request type request body.</param>
        /// <returns>The response body of the DnToMinId request type.</returns>
        public DnToMinIdResponseBody DnToMinId(DNToMinIdRequestBody distinguishedNameToMIdRequestBody)
        {
            CommonResponse        commonResponse = this.SendAddressBookRequest(distinguishedNameToMIdRequestBody, RequestType.DNToMId);
            DnToMinIdResponseBody distinguishedNameToMinIdResponseBody = DnToMinIdResponseBody.Parse(commonResponse.ResponseBodyRawData);

            this.VerifyDnToMinIdResponseBody(distinguishedNameToMinIdResponseBody);

            return(distinguishedNameToMinIdResponseBody);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Verify the DnToMinId response body related requirements.
        /// </summary>
        /// <param name="responseBodyDnToMinId">The DnToMinId response body to be verified.</param>
        private void VerifyDnToMinIdResponseBody(DnToMinIdResponseBody responseBodyDnToMinId)
        {
            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R1286");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R1286
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.StatusCode,
                typeof(uint),
                1286,
                @"[In DnToMinId 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_R1287");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R1287
            this.Site.CaptureRequirementIfAreEqual<uint>(
                0,
                responseBodyDnToMinId.StatusCode,
                1287,
                @"[In DnToMinId 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_R430");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R430
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.ErrorCode,
                typeof(uint),
                430,
                @"[In DnToMinId 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_R431");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R431
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.HasMinimalIds,
                typeof(bool),
                431,
                @"[In DnToMinId Request Type Success Response Body] HasMinimalIds (1 byte): A Boolean value that specifies whether the MinimalIdCount and MinimalIds fields are present.");

            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R432");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R432
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.MinimalIdCount,
                typeof(uint),
                432,
                @"[In DnToMinId Request Type Success Response Body] MinimalIdCount (optional) (4 bytes): An unsigned integer that specifies the number of structures in the MinimalIds field.");

            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R440");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R440
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.AuxiliaryBufferSize,
                typeof(uint),
                440,
                @"[In DnToMinId 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_R441");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R441
            this.Site.CaptureRequirementIfIsInstanceOfType(
                responseBodyDnToMinId.AuxiliaryBuffer,
                typeof(byte[]),
                441,
                @"[In DnToMinId 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_R442");

            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R442
            this.Site.CaptureRequirementIfAreEqual<uint>(
                responseBodyDnToMinId.AuxiliaryBufferSize,
                (uint)responseBodyDnToMinId.AuxiliaryBuffer.Length,
                442,
                @"[In DnToMinId Request Type Success Response Body] [AuxiliaryBuffer] The size of this field, in bytes, is specified by the AuxiliaryBufferSize field.");

            if (responseBodyDnToMinId.HasMinimalIds)
            {
                // Add the debug information
                this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R433");

                // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R433
                // Because the HasMinimalIds field is true, so if the MinimalIdCount field has value, then R433 will be verified. 
                this.Site.CaptureRequirementIfIsNotNull(
                    responseBodyDnToMinId.MinimalIdCount,
                    433,
                    @"[In DnToMinId Request Type Success Response Body] [MinimalIdCount] This field is present when the value of the HasMinimalIds field is nonzero.");

                // Add the debug information
                this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R1288");
        
                // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R1288
                // Because the HasMinimalIds field is true, so if the MinimalIds field has value, then R1288 will be verified.  
                this.Site.CaptureRequirementIfIsNotNull(
                    responseBodyDnToMinId.MinimalIds,
                    1288,
                    @"[In DnToMinId Request Type Success Response Body] [MinimalIds] This field is present when the value of the HasMinimalIds field is nonzero.");
            }
        }