示例#1
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"));
        }
示例#2
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); }
 }
示例#3
0
        public void create_history_table(string table, string h_table, string fld_del = null, string fld_ref = null)
        {
            // elimino la tabella se già presente
            _doc.remove("/root/tables/table[@name-upper='" + h_table.ToUpper() + "']");

            // copia dello schema senza gli indici
            XmlNode cols = _doc.add_xml("/root/tables", "<table nameupper='" + h_table.ToUpper() + "' name='" + h_table + "'/>").node
                           .AppendChild(_doc.node("/root/tables/table[@name-upper='" + table.ToUpper() + "']/cols").node.CloneNode(true));

            // inizializzo le colonne
            foreach (XmlNode col in cols.ChildNodes)
            {
                xml_node.set_attr(col, "nullable", "true");
            }
            if (!string.IsNullOrEmpty(fld_del))
            {
                xml_node.add_xml(cols, "<col name='" + fld_del + "' nameupper='" + fld_del.ToUpper() + "' type='datetime' />");
            }
            if (!string.IsNullOrEmpty(fld_ref))
            {
                xml_node.add_xml(cols, "<col name='" + fld_ref + "' nameupper='" + fld_ref.ToUpper() + "' type='datetime' />");
            }
            xml_node.set_attrs(cols.SelectSingleNode("col[@autonumber='true']")
                               , new Dictionary <string, string>()
            {
                { "nullable", "" }, { "autonumber", "" }
            });
        }
示例#4
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);
        }
示例#5
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); }
        }