Beispiel #1
0
        public void read_vars(xml_doc doc, Dictionary <string, var> dv, string var_key = "", string doc_key = "", bool for_pg = false
                              , string xpath = "")
        {
            // vars
            string nkey = "";

            try {
                foreach (xml_node vars in doc.nodes(xpath == "" ? "/config/vars" : xpath))
                {
                    string network = vars.get_attr("network"), bname = vars.get_attr("name");
                    foreach (xml_node var in vars.nodes("var"))
                    {
                        string network2 = var.get_attr("network") != "" ? var.get_attr("network") : network;
                        if (network2 != "" && _core.network_key() != network2.ToLower())
                        {
                            continue;
                        }
                        nkey = var_key + bname + var.get_attr("name");
                        if (dv.Keys.Contains(nkey))
                        {
                            dv.Remove(nkey);
                        }
                        dv.Add(nkey, new var(doc_key, nkey, _core.parse(var.get_val()), for_pg));
                    }
                }
            } catch (Exception ex) { throw new Exception("chiave vars.'" + nkey + "' - " + ex.Message); }
        }
Beispiel #2
0
        public void save_remember(string login, string password)
        {
            xml_doc doc  = new xml_doc();
            string  from = DateTime.Now.ToString("dd/MM/yyyy");

            doc.load_xml($@"<root data='{from}'><login/><password/></root>");
            doc.node("//root/login").data    = crypt.encrypt(login, from);
            doc.node("//root/password").data = crypt.encrypt(password, from);
            doc.save(path_file_data("remember.xml"));
        }
Beispiel #3
0
 public void load_config(xml_doc doc, string doc_key, db_provider conn, Dictionary <string, object> keys = null, string vars_key = "", bool page = false)
 {
     try {
         if (!_cfg_keys.Keys.Contains(doc_key))
         {
             _cfg_keys.Add(doc_key, "doc_path");
         }
         _config.load_doc(doc_key, vars_key, doc, conn, keys, page);
     } catch (Exception ex) { _cfg_keys.Clear(); throw new Exception("caricamento documento '" + doc.path + "': " + ex.Message); }
 }
Beispiel #4
0
 public void load_base_config(xml_doc doc, string doc_key, string vars_key = "", bool page = false)
 {
     try {
         if (!_cfg_keys.Keys.Contains(doc_key))
         {
             _cfg_keys.Add(doc_key, "doc_path");
         }
         _config.load_base_config(doc_key, vars_key, doc, page);
     } catch (Exception ex) { _cfg_keys.Clear(); throw new Exception("caricamento documento '" + doc.path + "': " + ex.Message); }
 }
Beispiel #5
0
        protected void read_base_settings()
        {
            xml_doc bdoc = new xml_doc(app_setting("settings-file", false));

            // network
            _network = bdoc.node("/base/networks/network").text;

            // vars
            Dictionary <string, config.var> vars = new Dictionary <string, config.var>();

            _config.read_vars(bdoc, vars, xpath: "/base/vars");
            _base_url = parse(vars["base_url"].value);
        }
Beispiel #6
0
 protected utente check_remember()
 {
     try {
         xml_doc  doc  = new xml_doc(path_file_data("remember.xml"), true);
         DateTime from = DateTime.Parse(doc.root_value("data"));
         if ((DateTime.Now - from).Days > 7)
         {
             return(null);
         }
         return(utente.al.check_login(crypt.decrypt(doc.node("//root/login").data, doc.root_value("data"))
                                      , crypt.decrypt(doc.node("//root/password").data, doc.root_value("data"))));
     } catch { return(null); }
 }
Beispiel #7
0
        public void load_base_config(string doc_key, string vars_key, xml_doc doc, bool for_pg = false)
        {
            string var_key = !string.IsNullOrEmpty(vars_key) ? vars_key + "." : "";

            // vars
            read_vars(doc, _vars, var_key, doc_key, for_pg);

            // conns
            string nkey = "";

            try {
                foreach (xml_node var in doc.nodes("/config//conns/conn"))
                {
                    nkey = var_key + var.get_attr("name");
                    _conns.Add(nkey, new conn(doc_key, nkey, var.get_attr("conn-string"), var.get_attr("provider"), var.get_attr("des")
                                              , var.get_attr("date-format"), var.get_int("timeout", 0), var.get_attr("key"), var.sub_node("sql_key").text, for_pg));
                }
            } catch (Exception ex) { throw new Exception("chiave lib-conns.'" + nkey + "' - " + ex.Message); }
        }
Beispiel #8
0
        public void load_base_config(string doc_key, string vars_key, xml_doc doc, bool for_pg = false)
        {
            string var_key = !string.IsNullOrEmpty(vars_key) ? vars_key + "." : "";

            // vars
            string nkey = "";

            try {
                foreach (xml_node vars in doc.nodes("/config/vars"))
                {
                    string machine = vars.get_attr("machine");
                    string bname   = vars.get_attr("name");
                    foreach (xml_node var in vars.nodes("var"))
                    {
                        string machine2 = var.get_attr("machine") != "" ? var.get_attr("machine") : machine;
                        if (machine2 != "" && core.machine_name().ToLower() != machine2.ToLower())
                        {
                            continue;
                        }
                        nkey = var_key + bname + var.get_attr("name");
                        _vars.Add(nkey, new var(doc_key, nkey, _core.parse(var.get_val()), for_pg));
                    }
                }
            } catch (Exception ex) { throw new Exception("chiave vars.'" + nkey + "' - " + ex.Message); }

            // conns
            nkey = "";
            try {
                foreach (xml_node var in doc.nodes("/config//conns/conn"))
                {
                    nkey = var_key + var.get_attr("name");
                    _conns.Add(nkey, new conn(doc_key, nkey, var.get_attr("conn-string"), var.get_attr("provider"), var.get_attr("des")
                                              , var.get_attr("date-format"), var.get_int("timeout", 0), var.get_attr("key"), var.sub_node("sql_key").text, for_pg));
                }
            } catch (Exception ex) { throw new Exception("chiave conns.'" + nkey + "' - " + ex.Message); }
        }
Beispiel #9
0
 public meta_doc(XmlDocument doc, schema_doc sch)
 {
     _doc = new xml_doc(doc); _schema = sch;
 }
Beispiel #10
0
 public meta_doc(string path, schema_doc sch)
 {
     _doc = new xml_doc(path); _schema = sch;
 }
Beispiel #11
0
 public schema_doc(xml_doc doc)
 {
     _doc = new xml_doc(doc.doc, doc.path);
 }
Beispiel #12
0
 public schema_doc(XmlDocument doc)
 {
     _doc = new xml_doc(doc);
 }
Beispiel #13
0
 public schema_doc(string path)
 {
     _doc = new xml_doc(path);
 }
Beispiel #14
0
 public schema_doc()
 {
     _doc = new xml_doc();
 }
Beispiel #15
0
    protected override void OnPreInit(EventArgs e)
    {
        // check user
        string u_name = ""; int u_id = -1;

        if (User.Identity.IsAuthenticated)
        {
            FormsIdentity             id     = (FormsIdentity)User.Identity;
            FormsAuthenticationTicket ticket = id.Ticket;
            u_name = ticket.Name.Split(new char[] { '|' })[0];
            u_id   = int.Parse(ticket.Name.Split(new char[] { '|' })[1]);
        }

        try {
            // core
            bool reload_cfg = false;
            if (Cache["core_obj"] == null)
            {
                log.log_info("reload core");
                core cr = new core(base_path);
                reload_cfg        = true;
                Cache["core_obj"] = cr;
            }

            // configs
            _core = (core)Cache["core_obj"];
            //_core.base_url = this.base_url;
            foreach (string key in _core.config_keys)
            {
                if (Cache[key] == null)
                {
                    reload_cfg = true; break;
                }
            }
            reload_cfg = true;
            if (reload_cfg)
            {
                log.log_info("reload config docs");
                _core.reset_configs();

                // docs
                Dictionary <string, xml_doc> docs = new Dictionary <string, xml_doc>();
                Directory.EnumerateFiles(_core.app_setting("settings-folder")).ToList().ForEach(f => {
                    string doc_key = strings.rel_path(base_path, f), vars_key = Path.GetFileNameWithoutExtension(f).ToLower();
                    log.log_info("load xml config doc: " + doc_key + " - " + f);
                    docs.Add(string.Format("{0};{1};{2}", doc_key, vars_key, f), Path.GetExtension(f) != _core.app_setting("enc-ext-xml") ? new xml_doc(f)
            : new xml_doc(cry.xml_decrypt(f, _core.app_setting("pwdcr-xml"))));
                });

                // vars
                foreach (KeyValuePair <string, xml_doc> d in docs)
                {
                    try {
                        string[] keys = d.Key.Split(new char[] { ';' });
                        string   doc_key = keys[0], vars_key = keys[1], f = keys[2];
                        log.log_info("load vars doc: " + doc_key + " - " + f);
                        _core.load_base_config(d.Value, doc_key, vars_key);
                    } catch (Exception ex) { string err = ex.Message; }
                }

                // docs
                foreach (KeyValuePair <string, xml_doc> d in docs)
                {
                    try {
                        string[] keys = d.Key.Split(new char[] { ';' });
                        string   doc_key = keys[0], vars_key = keys[1], f = keys[2];
                        log.log_info("load config doc: " + doc_key + " - " + f);
                        _core.load_config(d.Value, doc_key, db_conn, new Dictionary <string, object>()
                        {
                            { "user_id", u_id }
                        }, vars_key);
                        if (Cache[doc_key] == null)
                        {
                            Cache.Insert(doc_key, true, new System.Web.Caching.CacheDependency(f));
                        }
                    } catch (Exception ex) { string err = ex.Message; }
                }

                Cache["core_obj"] = _core;
            }
        } catch (Exception ex) { throw ex; }

        // carico il config page
        string ap = abs_path, base_dir = Path.GetDirectoryName(HttpContext.Current.Server.MapPath(ap))
        , pn = Path.GetFileNameWithoutExtension(ap), xml = Path.Combine(base_dir, pn + ".xml")
        , xml_enc = Path.Combine(base_dir, pn + "." + _core.app_setting("enc-ext-xml")), dck = strings.rel_path(base_path, xml);

        xml_doc dp = null;

        if (Cache[dck] != null)
        {
            dp = (xml_doc)Cache[dck];
        }
        else
        {
            dp = File.Exists(xml) ? new xml_doc(xml) : (File.Exists(xml_enc) ?
                                                        new xml_doc(cry.xml_decrypt(xml_enc, _core.app_setting("pwdcr-xml"))) : null);
            if (dp != null)
            {
                Cache.Insert(dck, dp, new System.Web.Caching.CacheDependency(xml));
            }
        }

        if (dp != null)
        {
            _core.reset_page_config(); _core.load_page_config(dp, dck, db_conn, new Dictionary <string, object>()
            {
                { "user_id", u_id }
            });
        }

        // conn to db
        db_reconn();
    }
Beispiel #16
0
 public void load_page_config(xml_doc doc, string doc_key, db_provider conn, Dictionary <string, object> keys)
 {
     load_config(doc, doc_key, conn, keys, page: true);
 }
Beispiel #17
0
        public void load_doc(string doc_key, string vars_key, xml_doc doc, db_provider conn, Dictionary <string, object> keys = null, bool for_pg = false)
        {
            string var_key = !string.IsNullOrEmpty(vars_key) ? vars_key + "." : "";

            // sql-select
            if (doc.exists("//sql-select"))
            {
                foreach (xml_node s in doc.nodes("//sql-select"))
                {
                    xml_node ref_node = s;
                    foreach (DataRow r in conn.dt_table(_core.parse(s.get_attr("qry"), keys)).Rows)
                    {
                        foreach (xml_node n in _core.parse_nodes(s.clone_childs(s), keys, r))
                        {
                            ref_node = ref_node.add_after(n);
                        }
                    }
                }
                while (true)
                {
                    xml_node s = doc.node("//sql-select"); if (!s.remove())
                    {
                        break;
                    }
                }
            }

            // aggiungo
            string nkey = "";

            try {
                foreach (xml_node var in doc.nodes("/config//folders/folder"))
                {
                    nkey = var_key + var.get_attr("name");
                    _folders.Add(nkey, new folder(doc_key, nkey, _core.parse(var.get_val()), for_pg));
                }
            } catch (Exception ex) { throw new Exception("chiave folders.'" + nkey + "' - " + ex.Message); }

            nkey = "";
            try {
                foreach (xml_node tbl in doc.nodes("/config//tables/table"))
                {
                    nkey = var_key + tbl.get_attr("name");
                    _tables.Add(nkey, new table(doc_key, nkey, tbl, for_pg));
                }
            } catch (Exception ex) { throw new Exception("chiave tables.'" + nkey + "' - " + ex.Message); }

            nkey = "";
            try {
                foreach (xml_node tbl in doc.nodes("/config/html-blocks/html-block"))
                {
                    nkey = var_key + tbl.get_attr("name");
                    html_block b = new html_block(doc_key, nkey, tbl.text, for_pg);
                    foreach (xml_node f in tbl.nodes("cond"))
                    {
                        b.add_cond(f.get_attr("name"), f.text);
                    }
                    _html_blocks.Add(nkey, b);
                }
            } catch (Exception ex) { throw new Exception("chiave html-blocks.'" + nkey + "' - " + ex.Message); }

            nkey = "";
            try {
                foreach (xml_node qry in doc.nodes("/config//queries/*"))
                {
                    if (qry.name == "query")
                    {
                        nkey = var_key + qry.get_attr("name");
                        query q = new query(doc_key, nkey, qry.text, qry.get_attr("des"), for_pg);
                        foreach (xml_node f in qry.nodes("cond"))
                        {
                            q.add_cond(f.get_attr("name"), f.text);
                        }
                        _queries.Add(nkey, q);
                    }
                    else if (qry.name == "query_do")
                    {
                        nkey = var_key + qry.get_attr("name");
                        _queries.Add(nkey, new query(doc_key, nkey, qry.get_attr("des"), for_pg)
                        {
                            tp      = query.tp_query.do_while,
                            text_do = qry.sub_node("do").text, text_while = qry.sub_node("while").text
                        });
                    }
                    else if (qry.name == "queries")
                    {
                        nkey = var_key + qry.get_attr("name");
                        query q = new query(doc_key, nkey, qry.get_attr("des"), for_pg);
                        _queries.Add(nkey, q);
                        foreach (xml_node q2 in qry.nodes("*"))
                        {
                            if (q2.name == "query")
                            {
                                q.add_query(q2.text);
                            }
                            else if (q2.name == "exec_query")
                            {
                                foreach (string q3 in _queries[q2.get_attr("name")].queries)
                                {
                                    q.add_query(q3);
                                }
                            }
                        }
                    }
                }
            } catch (Exception ex) { throw new Exception("chiave queries.'" + nkey + "' - " + ex.Message); }
        }