Exemplo n.º 1
0
        public void CanGetSingleNewLineSymbol(string c, string r)
        {
            var code = c;
            var b    = new BxlParser().Parse(code, "", BxlParserOptions.NoLexData);

            Assert.AreEqual(r, b.Element("e").Attr("x"));
        }
        public void QPT78_Not_Supported_DoubleDot_In_Attribute(string code)
        {
            var parsed = new BxlParser().Parse(code);
            var e      = parsed.Element("e");
            var a      = e.Attribute("x");

            Assert.NotNull(a);
            Assert.AreEqual("a:a", a.Value);
        }
Exemplo n.º 3
0
		public void CanGetSingleNewLineSymbol(string c,string r){
			var code =c;
			var b = new BxlParser().Parse(code, "", BxlParserOptions.NoLexData);
			Assert.AreEqual(r,b.Element("e").Attr("x"));
		}
Exemplo n.º 4
0
		public void MI_344_InvalidRegexParsing(){
			var x = new BxlParser().Parse(@"x 'http://mstrok.ru/\\?id=\\d{4}\\d*$'");
			Assert.AreEqual(@"http://mstrok.ru/\?id=\d{4}\d*$",x.Element("x").Attr("code"));
		}
Exemplo n.º 5
0
		public void KeepLeadingBraceInAttrValExpressions(string code, string test)
		{
			var x = new BxlParser().Parse(code);
			Assert.AreEqual(test, x.Element("a").Attr("code"));
		}
Exemplo n.º 6
0
        public void MI_344_InvalidRegexParsing()
        {
            var x = new BxlParser().Parse(@"x 'http://mstrok.ru/\\?id=\\d{4}\\d*$'");

            Assert.AreEqual(@"http://mstrok.ru/\?id=\d{4}\d*$", x.Element("x").Attr("code"));
        }
Exemplo n.º 7
0
        public void KeepLeadingBraceInAttrValExpressions(string code, string test)
        {
            var x = new BxlParser().Parse(code);

            Assert.AreEqual(test, x.Element("a").Attr("code"));
        }
Exemplo n.º 8
0
        private void processCreation() {
#if OLDCREATION
            Entity = Regex.Match(Query, @"^\s*create\s+(\w+)").Groups[1].Value;
            Type = Entity;
            var applyes = Regex.Matches(Query,@"(?<name>\w+)\s*=\s*'(?<value>[^']*)'");
            var dict = new Dictionary<string, string>();
            foreach (Match applye in applyes) {
                dict[applye.Groups["name"].Value] = applye.Groups["value"].Value;
            }
            create(dict);
            //Query = "from " + Entity + " where Id = " + CreatedObjId;
            PropertyBag["result"] = new object[] { CreatedObj };
#else

			Query = Query.replace(@"/\*[\s\S]+?\*/", "");
            var createscriptxml = new BxlParser().Parse(this.Query,"main");
        	var transform = createscriptxml.Element("transform");
			if(null!=transform) {
				transform.Remove();
				var file = transform.attr("code")+".xslt";
				var path = myapp.files.Resolve(file,true);
				if(path.noContent()) {
					throw new Exception("cannot find transform file "+file);
				}
				var xslt = new XslCompiledTransform();
				xslt.Load(path,XsltSettings.TrustedXslt,new XmlUrlResolver());
				var sw = new StringWriter();
				var arglist = new XsltArgumentList();
				arglist.AddParam("timestamp","",DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"));
				xslt.Transform(createscriptxml.CreateReader(),arglist,sw);
				createscriptxml = XElement.Parse(sw.ToString());
			}
            var creations = createscriptxml.Elements("create");
            var result = new List<HqlResult>();
            foreach (var creation in creations) {
                var tree = creation.attr("tree");
                var subresult = new HqlResult();
                subresult.Entity = creation.attr("id");
                subresult.Items = new List<object>();
                if (creation.Elements(subresult.Entity).Count() == 0) {
                    creation.Add(new XElement(subresult.Entity));
                }
                var items = creation.Descendants(subresult.Entity);
                foreach (var item in items) {
                    var selfattributes = item.Attributes();
                    var parentattributes =
                        item.Parent.Attributes().Where(
                            x => null == selfattributes.FirstOrDefault(y => y.Name.LocalName == x.Name.LocalName));
                    var allattributes =
                        selfattributes.Union(parentattributes).Where(x => x.Name.LocalName != "id").ToArray();
                    var dict = new Dictionary<string, string>();
                    foreach (var o in allattributes) {
                        dict[o.Name.LocalName] = o.Value;
                    }
                    if(tree.hasContent() && item.Parent!=null && item.Parent.Name.LocalName!="create") {
                        dict[tree] = item.Parent.attr("code");
                    }
                    create(dict, subresult.Entity);
                    subresult.Items.Add(this.CreatedObj);
                }
                var cols = new HqlColumnLoader().GetColumns(subresult.Entity, View);
                subresult.Columns = cols;
                result.Add(subresult);

                

            }
            PropertyBag["results"] = result;
            PropertyBag["multiple"] = true;

#endif
        }
Exemplo n.º 9
0
        private void InitializeEnvironment()
        {
            Console.WriteLine("in initialize!!!");
            mainpwd = Path.Combine(FileSystemHelper.ResetTemporaryDirectory(), "pwd.bxls");
            var fileuser = new User {
                Login = "******"
            };
            var fadm = new User
            {
                Login = "******"
            };
            var pwd = new PasswordManager();

            pwd.SetPassword(fileuser, Fpass, salt: "fuser_salt");
            pwd.SetPassword(fadm, FApass, salt: "fadm_salt");

            var esuser = new User {
                Login      = "******",
                Logable    = true,
                Active     = true,
                Expire     = new DateTime(2020, 1, 1).ToUniversalTime(),
                Id         = "esuser",
                CreateTime = new DateTime(2015, 1, 1).ToUniversalTime(),
                UpdateTime = new DateTime(2015, 1, 1).ToUniversalTime(),
                Roles      = new [] { "role1" }
            };

            pwd.SetPassword(esuser, Epass, salt: "esuser_salt");
            ExecuteCommand("http://127.0.0.1:9200/" + esindex, method: "DELETE");
            var storeesresult = ExecuteCommand("http://127.0.0.1:9200/" + esindex + "/pwd/esuser?refresh=true",
                                               esuser.ToString("store"));

            Console.WriteLine("ESSTORERESULT: " + storeesresult);
            if (null == storeesresult)
            {
                ignoreelastic = true;
            }
            var bxl = string.Format(@"
class u1 prototype=pwd
    usr fuser salt='{0}' hash='{1}' logable active expire='2020-01-01T00:00:00+0000'
        role role2
    usr fadm salt='{2}' hash='{3}' logable isadmin active expire='2020-01-01T00:00:00+0000'
        role role2
", fileuser.Salt, fileuser.Hash, fadm.Salt, fadm.Hash);

            File.WriteAllText(mainpwd, bxl);

            var configbxl = @"
class app
    cluster
    elastic
        default index=v2securetest
	appinfo
		domain='https://super.puper.com'
        home='home.html'
        name ='Супер-Пупер'
    authrule /public.html notauth=allow
    authrule /roled.html role=special
    authrule /spredir.html notauth=/public.html
    authrule /admin-* role=ADMIN
	messaging
		smtp support [email protected] default
			host=smtp.gmail.com
			port=587
			[email protected]
			pass=a1234567!
			ssl=true
		queue elastic ref=default type=message
    logon
        default schema=localtrust guest 
            trusted sense local=192.168.0.3 origin='http://127.0.0.1:9200' port=3450
            trusted controller remote=192.168.0.2 local=192.168.0.3
        token cookie=testauth secure key=1234567 
        elastic index='v2securetest'
        file path='TEST'
";
            var xml       = new BxlParser().Parse(configbxl, options: BxlParserOptions.ExtractSingle);

            xml.Element("logon").Element("file").SetAttributeValue("path", mainpwd);
            if (ignoreelastic)
            {
                xml.Element("logon").Element("elastic").SetAttributeValue("active", "false");
            }

            config = xml;
        }