StorageResponseClassifier
using Azure.Core;
using System;
namespace Azure.Storage
{
    internal class StorageResponseClassifier
    {
        public Uri SecondaryStorageUri { get; set; }
        public override bool IsRetriableResponse(HttpMessage message)
        {
            if (SecondaryStorageUri != (Uri)null && message.get_Request().get_Uri().get_Host() == SecondaryStorageUri.Host && message.get_Response().get_Status() == 404)
                return true;
            ResponseHeaders headers;
            if (message.get_Response().get_Status() >= 400) {
                headers = message.get_Response().get_Headers();
                string a = default(string);
                if (headers.TryGetValue("x-ms-error-code", ref a) && (a == "InternalError" || a == "OperationTimedOut" || a == "ServerBusy"))
                    return true;
            }
            if (message.get_Response().get_Status() >= 400) {
                headers = message.get_Response().get_Headers();
                string a2 = default(string);
                if (headers.TryGetValue("x-ms-copy-source-error-code", ref a2) && (a2 == "InternalError" || a2 == "OperationTimedOut" || a2 == "ServerBusy"))
                    return true;
            }
            return this.IsRetriableResponse(message);
        }
        public override bool IsErrorResponse(HttpMessage message)
        {
            if (message.get_Response().get_Status() == 409) {
                RequestHeaders headers = message.get_Request().get_Headers();
                ResponseHeaders headers2 = message.get_Response().get_Headers();
                string a = default(string);
                if (headers2.TryGetValue("x-ms-error-code", ref a) && (a == "ContainerAlreadyExists" || a == "BlobAlreadyExists"))
                    return !headers.Contains(Names.get_IfMatch()) && !headers.Contains(Names.get_IfNoneMatch()) && !headers.Contains(Names.get_IfModifiedSince()) && !headers.Contains(Names.get_IfUnmodifiedSince());
            }
            return this.IsErrorResponse(message);
        }
        public StorageResponseClassifier()
            : this()
        {
        }
    }
}