示例#1
0
 public static void RegisterPack()
 {
     if (!UriParser.IsKnownScheme(UriSchemePack))
     {
         UriParser parser = new GenericUriParser(GenericUriParserOptions.GenericAuthority);
         UriParser.Register(parser, UriSchemePack, -1);
     }
 }
示例#2
0
        public static IEnumerable <CoapOption> DecomposeCoapUri(this Uri resource)
        {
            List <CoapOption> options = new List <CoapOption>();

            GenericUriParser gup = new GenericUriParser(GenericUriParserOptions.NoFragment);

            if (!UriParser.IsKnownScheme("coap"))
            {
                UriParser.Register(gup, "coap", -1);
            }

            if (!resource.IsWellFormedOriginalString())
            {
                throw new UriFormatException("Not well formed URI.");
            }

            if (!resource.IsAbsoluteUri)
            {
                throw new UriFormatException("Not absolute URI.");
            }

            if (resource.Scheme != "coap" && resource.Scheme != "coaps")
            {
                throw new UriFormatException(String.Format("Invalid scheme '{0}'", resource.Scheme));
            }

            options.Add(new CoapOption(OptionType.UriHost, resource.Host));

            if (resource.Port > 0)
            {
                options.Add(new CoapOption(OptionType.UriPort, (uint)resource.Port));
            }

            if (resource.AbsolutePath != "/")
            {
                string[] parts = resource.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string part in parts)
                {
                    options.Add(new CoapOption(OptionType.UriPath, part));
                }
            }

            if (!string.IsNullOrEmpty(resource.Query))
            {
                NameValueCollection nvc = HttpUtility.ParseQueryString(resource.Query);
                int index = 0;
                while (index < nvc.Count)
                {
                    options.Add(new CoapOption(OptionType.UriQuery, nvc.GetKey(index) + "=" + nvc[index]));
                    index++;
                }
            }

            return(options.ToArray());
        }
示例#3
0
        public static void GenericUriParser_ctor()
        {
            // Make sure that constructor doesn't throw when using different types of  Parser Options
            GenericUriParser parser;

            parser = new GenericUriParser(GenericUriParserOptions.AllowEmptyAuthority);
            parser = new GenericUriParser(GenericUriParserOptions.Default);
            parser = new GenericUriParser(GenericUriParserOptions.DontCompressPath);
            parser = new GenericUriParser(GenericUriParserOptions.DontConvertPathBackslashes);
            parser = new GenericUriParser(GenericUriParserOptions.DontUnescapePathDotsAndSlashes);
            parser = new GenericUriParser(GenericUriParserOptions.GenericAuthority);
            parser = new GenericUriParser(GenericUriParserOptions.Idn);
            parser = new GenericUriParser(GenericUriParserOptions.IriParsing);
            parser = new GenericUriParser(GenericUriParserOptions.NoFragment);
            parser = new GenericUriParser(GenericUriParserOptions.NoPort);
            parser = new GenericUriParser(GenericUriParserOptions.NoQuery);
            parser = new GenericUriParser(GenericUriParserOptions.NoUserInfo);
        }
示例#4
0
 public static void GenericUriParser_ctor()
 {
     // Make sure that constructor doesn't throw when using different types of  Parser Options
     GenericUriParser parser; 
     
     parser = new GenericUriParser(GenericUriParserOptions.AllowEmptyAuthority);
     parser = new GenericUriParser(GenericUriParserOptions.Default);
     parser = new GenericUriParser(GenericUriParserOptions.DontCompressPath);
     parser = new GenericUriParser(GenericUriParserOptions.DontConvertPathBackslashes);
     parser = new GenericUriParser(GenericUriParserOptions.DontUnescapePathDotsAndSlashes);
     parser = new GenericUriParser(GenericUriParserOptions.GenericAuthority);
     parser = new GenericUriParser(GenericUriParserOptions.Idn);
     parser = new GenericUriParser(GenericUriParserOptions.IriParsing);
     parser = new GenericUriParser(GenericUriParserOptions.NoFragment);
     parser = new GenericUriParser(GenericUriParserOptions.NoPort);
     parser = new GenericUriParser(GenericUriParserOptions.NoQuery);
     parser = new GenericUriParser(GenericUriParserOptions.NoUserInfo);
 }
示例#5
0
 public async Task CreateAsync(GenericUriParser id, StringComparer name, string description, DateTime startDate, DateTime endDate)
 {
     throw new NotImplementedException();
 }