示例#1
0
        public HassiumCGI()
        {
            AddType(TypeDefinition);

            Get = new HassiumDictionary(new Dictionary <HassiumObject, HassiumObject>());
            string query_string;

            if (Environment.GetEnvironmentVariables().Contains("QUERY_STRING"))
            {
                query_string = Environment.GetEnvironmentVariable("QUERY_STRING");

                foreach (var arg in query_string.Split('&'))
                {
                    if (!arg.Contains("="))
                    {
                        Get.Dictionary.Add(new HassiumString(arg), new HassiumString(string.Empty));
                    }
                    else
                    {
                        var key   = arg.Split('=')[0];
                        var value = HttpUtility.UrlDecode(arg.Split('=')[1]);
                        Get.Dictionary.Add(new HassiumString(key), new HassiumString(value));
                    }
                }
            }
            Post = new HassiumDictionary(new Dictionary <HassiumObject, HassiumObject>());
            if (Environment.GetEnvironmentVariable("CONTENT_LENGTH") != null)
            {
                query_string = string.Empty;
                int PostedDataLength = Convert.ToInt32(Environment.GetEnvironmentVariable("CONTENT_LENGTH"));
                for (int i = 0; i < PostedDataLength; i++)
                {
                    query_string += Convert.ToChar(Console.Read()).ToString();
                }
            }
            else
            {
                //var stdin = new StreamReader(Console.OpenStandardInput());
                query_string = string.Empty;//stdin.ReadToEnd();
            }
            if (!string.IsNullOrWhiteSpace(query_string))
            {
                foreach (var currentArg in query_string.Split('&'))
                {
                    if (!currentArg.Contains("="))
                    {
                        Post.Dictionary.Add(new HassiumString(currentArg), new HassiumString(""));
                    }
                    else
                    {
                        var key   = currentArg.Split('=')[0];
                        var value = HttpUtility.UrlDecode(currentArg.Split('=')[1]);
                        Post.Dictionary.Add(new HassiumString(key), new HassiumString(value));
                    }
                }
            }
        }
示例#2
0
        public static HassiumDictionary getattribs(VirtualMachine vm, HassiumObject self, SourceLocation location, params HassiumObject[] args)
        {
            HassiumDictionary dict = new HassiumDictionary(new Dictionary <HassiumObject, HassiumObject>());

            foreach (var attrib in args[0].GetAttributes())
            {
                dict.Dictionary.Add(new HassiumString(attrib.Key), attrib.Value);
            }

            return(dict);
        }
示例#3
0
 public HassiumTrait(string name)
 {
     Name   = name;
     Traits = new HassiumDictionary(new Dictionary <HassiumObject, HassiumObject>());
     AddType(TypeDefinition);
 }