Пример #1
0
 public static void Assert(bool condition)
 {
     if (!condition)
     {
         NephosAssertionException.Fail();
     }
 }
Пример #2
0
 public static void Assert(bool condition, string message, Exception innerException)
 {
     if (!condition)
     {
         NephosAssertionException.Fail(message, innerException);
     }
 }
Пример #3
0
        public static string ConvertDateTimeToHttpString(DateTime dt)
        {
            if (dt != DateTime.MaxValue && dt != DateTime.MinValue)
            {
                NephosAssertionException.Assert(dt.Kind == DateTimeKind.Utc);
            }
            StringBuilder stringBuilder = StringBuilderPool.Allocate();

            stringBuilder.Append(HttpUtilities.DaysOfWeek[(int)dt.DayOfWeek]);
            stringBuilder.Append(", ");
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Day, (long)10);
            stringBuilder.Append(' ');
            stringBuilder.Append(HttpUtilities.MonthsOfYear[dt.Month]);
            stringBuilder.Append(' ');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Year, (long)1000);
            stringBuilder.Append(' ');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Hour, (long)10);
            stringBuilder.Append(':');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Minute, (long)10);
            stringBuilder.Append(':');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Second, (long)10);
            stringBuilder.Append(" GMT");
            string str = stringBuilder.ToString();

            StringBuilderPool.Release(stringBuilder);
            return(str);
        }
Пример #4
0
 public static void Assert(bool condition, string format, params object[] args)
 {
     if (!condition)
     {
         NephosAssertionException.Fail(format, args);
     }
 }
Пример #5
0
        public static string ConvertSnapshotDateTimeToHttpString(DateTime dt)
        {
            if (dt != DateTime.MaxValue && dt != DateTime.MinValue)
            {
                NephosAssertionException.Assert(dt.Kind == DateTimeKind.Utc);
            }
            StringBuilder stringBuilder = StringBuilderPool.Allocate();

            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Year, (long)1000);
            stringBuilder.Append('-');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Month, (long)10);
            stringBuilder.Append('-');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Day, (long)10);
            stringBuilder.Append('T');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Hour, (long)10);
            stringBuilder.Append(':');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Minute, (long)10);
            stringBuilder.Append(':');
            HttpUtilities.AppendDigits(stringBuilder, (long)dt.Second, (long)10);
            stringBuilder.Append('.');
            HttpUtilities.AppendDigits(stringBuilder, dt.Ticks % (long)10000000, (long)1000000);
            stringBuilder.Append('Z');
            string str = stringBuilder.ToString();

            StringBuilderPool.Release(stringBuilder);
            return(str);
        }
Пример #6
0
 public static void Assert(bool condition, string format, Func <string, string, string> preFormatFunc, string preFormatArg1, string preFormatArg2)
 {
     if (!condition)
     {
         object[] objArray = new object[] { preFormatFunc(preFormatArg1, preFormatArg2) };
         NephosAssertionException.Fail(format, objArray);
     }
 }
Пример #7
0
        public static string CanonicalizeHttpRequestVer1(Uri address, NephosUriComponents uriComponents, string method, string contentEncoding, string contentLanguage, string contentLength, string contentMD5, string contentType, string date, string ifModifiedSince, string ifMatch, string ifNoneMatch, string ifUnmodifiedSince, string range, NameValueCollection headers, bool isFileService = false, string rawUrl = null, bool multipleConditionalHeadersEnabled = false)
        {
            NephosAssertionException.Assert(address != null);
            NephosAssertionException.Assert(uriComponents != null);
            NephosAssertionException.Assert(!string.IsNullOrEmpty(method));
            NephosAssertionException.Assert(headers != null);
            MessageCanonicalizer.CanonicalizedString canonicalizedString = new MessageCanonicalizer.CanonicalizedString(method);
            canonicalizedString.AppendCanonicalizedElement(contentEncoding ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(contentLanguage ?? string.Empty);
            if (contentLength == null || !MessageCanonicalizer.IsVersionBeforeFeb15(headers) && contentLength.Equals("0"))
            {
                canonicalizedString.AppendCanonicalizedElement(string.Empty);
            }
            else
            {
                canonicalizedString.AppendCanonicalizedElement(contentLength);
            }
            canonicalizedString.AppendCanonicalizedElement(contentMD5 ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(contentType ?? string.Empty);
            if (headers["x-ms-date"] != null)
            {
                canonicalizedString.AppendCanonicalizedElement(string.Empty);
            }
            else
            {
                canonicalizedString.AppendCanonicalizedElement(date ?? string.Empty);
            }
            canonicalizedString.AppendCanonicalizedElement(ifModifiedSince ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(ifMatch ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(ifNoneMatch ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(ifUnmodifiedSince ?? string.Empty);
            canonicalizedString.AppendCanonicalizedElement(range ?? string.Empty);
            ArrayList arrayLists = new ArrayList();

            foreach (string key in headers.Keys)
            {
                if (key == null || !key.ToLowerInvariant().StartsWith("x-ms-", StringComparison.Ordinal))
                {
                    continue;
                }
                arrayLists.Add(key.ToLowerInvariant());
            }
            arrayLists.Sort();
            foreach (string arrayList in arrayLists)
            {
                string canonicalizedHeaderValueVer1 = MessageCanonicalizer.GetCanonicalizedHeaderValueVer1(headers, arrayList, multipleConditionalHeadersEnabled);
                if (string.IsNullOrEmpty(canonicalizedHeaderValueVer1) && !isFileService && MessageCanonicalizer.IsVersionBeforeFeb16(headers["x-ms-version"]))
                {
                    continue;
                }
                StringBuilder stringBuilder = new StringBuilder(arrayList);
                stringBuilder.Append(":");
                stringBuilder.Append(canonicalizedHeaderValueVer1);
                canonicalizedString.AppendCanonicalizedElement(stringBuilder.ToString());
            }
            canonicalizedString.AppendCanonicalizedElement(MessageCanonicalizer.GetCanonicalizedResourceVer1(address, uriComponents, rawUrl));
            return(canonicalizedString.Value);
        }
Пример #8
0
 public static string DecodeContinuationToken(string continuationToken)
 {
     string[] strArrays = ContinuationTokenParser.DecodeContinuationToken(continuationToken, new List <ContinuationTokenVersion>()
     {
         ContinuationTokenVersion.VersionOne
     });
     NephosAssertionException.Assert((int)strArrays.Length == 1);
     return(strArrays[0]);
 }
Пример #9
0
        private static Uri ConstructHostStyleAccountUri(Uri hostSuffix, string accountName)
        {
            NephosAssertionException.Assert(hostSuffix.AbsolutePath == "/", "hostSuffix can't have path.");
            Uri         uri = hostSuffix;
            CultureInfo invariantCulture = CultureInfo.InvariantCulture;

            object[] scheme = new object[] { uri.Scheme, Uri.SchemeDelimiter, accountName, uri.Host, uri.Port };
            return(new Uri(string.Format(invariantCulture, "{0}{1}{2}.{3}:{4}/", scheme)));
        }
Пример #10
0
 public static Uri ConstructNephosUri(Uri endpoint, NephosUriComponents uriComponents, bool pathStyleUri)
 {
     NephosAssertionException.Assert(endpoint != null);
     NephosAssertionException.Assert(uriComponents != null);
     if (!pathStyleUri)
     {
         return(HttpRequestAccessorJuly09.ConstructHostStyleNephosUri(endpoint, uriComponents));
     }
     return(HttpRequestAccessorJuly09.ConstructPathStyleNephosUri(endpoint, uriComponents));
 }
Пример #11
0
        public static T ConvertFromString <T>(string data, char[] separators)
        {
            string[] strArrays = data.Split(separators);
            NephosAssertionException.Assert((int)strArrays.Length > 0, "Enum value cannot be empty");
            int num = 0;

            for (int i = 0; i < (int)strArrays.Length; i++)
            {
                num |= (int)Enum.Parse(typeof(T), strArrays[i]);
            }
            return((T)Enum.ToObject(typeof(T), num));
        }
Пример #12
0
        public static byte[] Encode(NameValueCollection metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }
            int length = 0;

            string[] allKeys = metadata.AllKeys;
            for (int i = 0; i < (int)allKeys.Length; i++)
            {
                string str = allKeys[i];
                length = length + str.Length + 1 + metadata[str].Length + Environment.NewLine.Length;
            }
            byte[]   numArray = new byte[length];
            int      bytes    = 0;
            Encoding encoding = MetadataEncoding.CreateAsciiEncoder();

            try
            {
                for (int j = 0; j < metadata.Count; j++)
                {
                    string item = metadata.Keys[j];
                    try
                    {
                        bytes += encoding.GetBytes(item, 0, item.Length, numArray, bytes);
                    }
                    catch (EncoderFallbackException encoderFallbackException)
                    {
                        throw new MetadataFormatException(string.Concat("Metadata key is not valid ASCII: ", item), encoderFallbackException);
                    }
                    bytes += encoding.GetBytes(":", 0, 1, numArray, bytes);
                    string item1 = metadata[j];
                    try
                    {
                        bytes += encoding.GetBytes(item1, 0, item1.Length, numArray, bytes);
                    }
                    catch (EncoderFallbackException encoderFallbackException1)
                    {
                        throw new MetadataFormatException(string.Concat("Metadata value is not valid ASCII: ", item1), encoderFallbackException1);
                    }
                    bytes += encoding.GetBytes(Environment.NewLine, 0, Environment.NewLine.Length, numArray, bytes);
                }
            }
            catch (ArgumentException argumentException)
            {
                NephosAssertionException.Fail("Byte array not long enough to encode metadata", argumentException);
            }
            return(numArray);
        }
Пример #13
0
        public static string GetCanonicalizedResourceVer1(Uri uri, NephosUriComponents uriComponents, string rawUrl = null)
        {
            NephosAssertionException.Assert((uriComponents == null ? false : !string.IsNullOrEmpty(uriComponents.AccountName)), "Resource account name must be non-empty.");
            StringBuilder stringBuilder = new StringBuilder("/");

            stringBuilder.Append(uriComponents.AccountName);
            string uriStringToSign = MessageCanonicalizer.GetUriStringToSign(uri.AbsolutePath, rawUrl);

            stringBuilder.Append(MessageCanonicalizer.GetUriWithoutSecondarySuffix(uriStringToSign, uriComponents));
            MessageCanonicalizer.CanonicalizedString canonicalizedString = new MessageCanonicalizer.CanonicalizedString(stringBuilder.ToString());
            NameValueCollection nameValueCollection  = HttpUtility.ParseQueryString(uri.Query);
            NameValueCollection nameValueCollection1 = new NameValueCollection();

            foreach (string key in nameValueCollection.Keys)
            {
                object[] values = nameValueCollection.GetValues(key);
                Array.Sort <object>(values);
                StringBuilder stringBuilder1 = new StringBuilder();
                object[]      objArray       = values;
                for (int i = 0; i < (int)objArray.Length; i++)
                {
                    object obj = objArray[i];
                    if (stringBuilder1.Length > 0)
                    {
                        stringBuilder1.Append(",");
                    }
                    stringBuilder1.Append(obj.ToString());
                }
                nameValueCollection1.Add((key == null ? key : key.ToLowerInvariant()), stringBuilder1.ToString());
            }
            string[] allKeys = nameValueCollection1.AllKeys;
            Array.Sort <string>(allKeys);
            string[] strArrays = allKeys;
            for (int j = 0; j < (int)strArrays.Length; j++)
            {
                string        str            = strArrays[j];
                StringBuilder stringBuilder2 = new StringBuilder(string.Empty);
                stringBuilder2.Append(str);
                stringBuilder2.Append(":");
                stringBuilder2.Append(nameValueCollection1[str]);
                canonicalizedString.AppendCanonicalizedElement(stringBuilder2.ToString());
            }
            return(canonicalizedString.Value);
        }
Пример #14
0
        public static string GetCanonicalizedResource(Uri address, NephosUriComponents uriComponents, string rawUrl = null)
        {
            NephosAssertionException.Assert(!string.IsNullOrEmpty(uriComponents.AccountName), "Resource account name must be non-empty.");
            StringBuilder stringBuilder = new StringBuilder("/");

            stringBuilder.Append(uriComponents.AccountName);
            string uriStringToSign = MessageCanonicalizer.GetUriStringToSign(address.AbsolutePath, rawUrl);

            stringBuilder.Append(MessageCanonicalizer.GetUriWithoutSecondarySuffix(uriStringToSign, uriComponents));
            string item = HttpUtility.ParseQueryString(address.Query)["comp"];

            if (item != null)
            {
                stringBuilder.Append("?");
                stringBuilder.Append("comp");
                stringBuilder.Append("=");
                stringBuilder.Append(item);
            }
            return(stringBuilder.ToString());
        }
Пример #15
0
        public static NephosUriComponents GetCopySourceResourceComponents(string resource)
        {
            string str = HttpUtility.UrlDecode(resource);

            if (!str.StartsWith("/", StringComparison.OrdinalIgnoreCase))
            {
                return(null);
            }
            string[] strArrays  = new string[] { "/" };
            string[] strArrays1 = str.Split(strArrays, 4, StringSplitOptions.None);
            NephosAssertionException.Assert(((int)strArrays1.Length < 2 || (int)strArrays1.Length > 4 ? false : strArrays1[0] == string.Empty));
            if ((int)strArrays1.Length == 2)
            {
                return(new NephosUriComponents(strArrays1[1]));
            }
            if ((int)strArrays1.Length == 3)
            {
                return(new NephosUriComponents(strArrays1[1], strArrays1[2]));
            }
            return(new NephosUriComponents(strArrays1[1], strArrays1[2], strArrays1[3]));
        }
Пример #16
0
 public static Uri ConstructStorageDomainUri(Uri endpoint, NephosUriComponents uriComponents)
 {
     NephosAssertionException.Assert(endpoint != null);
     NephosAssertionException.Assert(uriComponents != null);
     return(HttpRequestAccessorJuly09.ConstructStorageDomainStyleNephosUri(endpoint, uriComponents));
 }
Пример #17
0
 public static int CompareVersions(string version1, string version2)
 {
     NephosAssertionException.Assert(!string.IsNullOrEmpty(version1));
     NephosAssertionException.Assert(!string.IsNullOrEmpty(version2));
     if (version1.Equals("2008-10-27", StringComparison.InvariantCulture))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2012-09-19", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2012-09-19", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2013-07-14", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2013-07-14", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2016-02-19", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2016-02-19", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2016-05-31", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-02-19", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2016-05-31", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (version1.Equals("2016-10-16", StringComparison.InvariantCultureIgnoreCase))
     {
         if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-02-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-05-31", StringComparison.InvariantCultureIgnoreCase))
         {
             return(1);
         }
         if (version2.Equals("2016-10-16", StringComparison.InvariantCultureIgnoreCase))
         {
             return(0);
         }
         return(-1);
     }
     if (!version1.Equals("2017-04-17", StringComparison.InvariantCultureIgnoreCase))
     {
         NephosAssertionException.Fail("version1 = '{0}' is an invalid version.", new object[] { version1 });
         NephosAssertionException.Fail("Should never get to this point in VersioningHelper.CompareVersions. This is a coding bug.");
         return(0);
     }
     if (version2.Equals("2008-10-27", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-07-17", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-09-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2009-04-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2011-08-18", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2012-02-12", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2013-08-15", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2014-02-14", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-02-21", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-04-05", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-07-08", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2015-12-11", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-02-19", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-05-31", StringComparison.InvariantCultureIgnoreCase) || version2.Equals("2016-10-16", StringComparison.InvariantCultureIgnoreCase))
     {
         return(1);
     }
     if (version2.Equals("2017-04-17", StringComparison.InvariantCultureIgnoreCase))
     {
         return(0);
     }
     return(-1);
 }
Пример #18
0
 private static string QueryWithoutQuestionMark(string query)
 {
     NephosAssertionException.Assert(query[0] == "?"[0], "Uri.Query should include the question mark with the query parameters");
     return(query.Substring(1));
 }
Пример #19
0
        public static string[] DecodeContinuationToken(string continuationToken, List <ContinuationTokenVersion> supportedVersions, bool isOriginalVersionSupported, out ContinuationTokenVersion continuationTokenVersion)
        {
            string[] strArrays;
            if (supportedVersions == null || supportedVersions.Count <= 0)
            {
                throw new ArgumentException("The supported versions cannot be null and must contain at least one version.", "supportedVersions");
            }
            if (string.IsNullOrEmpty(continuationToken))
            {
                throw new ArgumentException("The continuation token cannot be null or empty.", "continuationToken");
            }
            continuationTokenVersion = ContinuationTokenVersion.None;
            try
            {
                if (Regex.IsMatch(continuationToken, "^(\\d+)!(\\d+)!"))
                {
                    char[]   chrArray   = new char[] { '!' };
                    string[] strArrays1 = continuationToken.Split(chrArray, 3, StringSplitOptions.None);
                    if ((int)strArrays1.Length != 3)
                    {
                        throw new ContinuationTokenParserException(string.Format("Did find expected number of tokens ({0}).", 3), "continuationToken");
                    }
                    continuationTokenVersion = (ContinuationTokenVersion)Convert.ToInt32(strArrays1[0]);
                    if (!supportedVersions.Contains((ContinuationTokenVersion)((int)continuationTokenVersion)))
                    {
                        string str = "[";
                        int    num = 0;
                        foreach (ContinuationTokenVersion supportedVersion in supportedVersions)
                        {
                            str = string.Concat(str, supportedVersion.ToString());
                            if (num < supportedVersions.Count - 1)
                            {
                                str = string.Concat(str, ", ");
                            }
                            num++;
                        }
                        str = string.Concat(str, "]");
                        throw new ContinuationTokenParserException(string.Format("The version found ({0}) is not in the list of supported versions; supported versions = {1}.", (ContinuationTokenVersion)((int)continuationTokenVersion), str));
                    }
                    switch ((int)continuationTokenVersion)
                    {
                    case 1:
                    {
                        strArrays = ContinuationTokenParser.DecodeContinuationTokenV1(strArrays1);
                        return(strArrays);
                    }

                    case 2:
                    {
                        strArrays = ContinuationTokenParser.DecodeContinuationTokenV2(strArrays1);
                        return(strArrays);
                    }
                    }
                    object[] objArray = new object[] { (ContinuationTokenVersion)((int)continuationTokenVersion) };
                    NephosAssertionException.Fail("Internal error: Version {0} is invalid.", objArray);
                    strArrays = null;
                }
                else
                {
                    if (!isOriginalVersionSupported)
                    {
                        throw new ContinuationTokenParserException("Proper header format not found.", "continuationToken");
                    }
                    Logger <IRestProtocolHeadLogger> .Instance.Verbose.Log("Received continuation token in original PDC2008 format. Token = '{0}'", new object[] { continuationToken });

                    strArrays = new string[] { continuationToken };
                }
            }
            catch (ContinuationTokenParserException continuationTokenParserException1)
            {
                ContinuationTokenParserException continuationTokenParserException = continuationTokenParserException1;
                IStringDataEventStream           error = Logger <IRestProtocolHeadLogger> .Instance.Error;
                object[] objArray1 = new object[] { (ContinuationTokenVersion)((int)continuationTokenVersion), continuationToken };
                error.Log("Error decoding continuation token with version {0} and value {1}", objArray1);
                throw new ContinuationTokenParserException(string.Format("Caught an exception when decoding a {0} continuation token. Continuation token = '{1}'.", (ContinuationTokenVersion)((int)continuationTokenVersion), continuationToken), continuationTokenParserException);
            }
            return(strArrays);
        }
Пример #20
0
 public static void Assert(bool condition, string message)
 {
     NephosAssertionException.Assert(condition, message, (Exception)null);
 }