StorageRequestValidationPipelinePolicy
Pipeline policy to verify x-ms-client-request-id and x-ms-client-return-request-id
            headers that are echoed back from a request match.
            
                using Azure.Core;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Azure.Storage
{
    internal class StorageRequestValidationPipelinePolicy
    {
        public StorageRequestValidationPipelinePolicy()
            : this()
        {
        }
        public override void OnReceivedResponse(HttpMessage message)
        {
            if (message.get_HasResponse()) {
                RequestHeaders headers = message.get_Request().get_Headers();
                string text = default(string);
                if (headers.TryGetValue("x-ms-client-request-id", ref text)) {
                    ResponseHeaders headers2 = message.get_Response().get_Headers();
                    IEnumerable<string> source = default(IEnumerable<string>);
                    if (headers2.TryGetValues("x-ms-client-request-id", ref source) && !string.Equals(text, source.First(), StringComparison.OrdinalIgnoreCase))
                        throw Errors.ClientRequestIdMismatch(message.get_Response(), source.First(), text);
                }
            }
        }
    }
}