示例#1
0
 public static void Assert(bool condition, string format, params object[] args)
 {
     if (!condition)
     {
         NephosAssertionException.Fail(format, args);
     }
 }
示例#2
0
 public static void Assert(bool condition, string message, Exception innerException)
 {
     if (!condition)
     {
         NephosAssertionException.Fail(message, innerException);
     }
 }
示例#3
0
 public static void Assert(bool condition)
 {
     if (!condition)
     {
         NephosAssertionException.Fail();
     }
 }
示例#4
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);
     }
 }
示例#5
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);
        }
示例#6
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);
 }
示例#7
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);
        }