Example #1
0
        public static string folder_path(db.db_schema conn, deeper.frmwrk.lib_page page, long id_folder, string base_path = "")
        {
            string folders_tbl = conn.meta_doc.table_from_code(deeper.db.meta_table.align_codes.folders);
            string fld_path    = conn.dt_table(string.Format("select dbo.getPathOfFolder({0}) as fld from {1} where {2} = {3}", conn.schema.pkOfTable(folders_tbl), folders_tbl,
                                                             conn.schema.pkOfTable(folders_tbl), id_folder)).Rows[0]["fld"].ToString();

            if (fld_path[0] == '/' || fld_path[0] == '\\')
            {
                fld_path = fld_path.Substring(1);
            }
            return(System.IO.Path.Combine(string.IsNullOrEmpty(base_path) ? page.cfg_var("filesFolder") : base_path, fld_path).Replace('/', '\\'));
        }
Example #2
0
        public static string file_path(deeper.frmwrk.lib_page page, long id_file)
        {
            db.db_schema db        = page.conn_db_user(true);
            string       files_tbl = db.meta_doc.table_from_code(deeper.db.meta_table.align_codes.files);
            string       fld_path  = db.dt_table(string.Format("select dbo.getPathOfFolder(idfolder)  + '/' + filename + '.' + ext as path_file from " + files_tbl + " where idfile = {0}", id_file)).Rows[0]["path_file"].ToString();

            if (fld_path[0] == '/' || fld_path[0] == '\\')
            {
                fld_path = fld_path.Substring(1);
            }
            return(System.IO.Path.Combine(page.cfg_var("filesFolder"), fld_path).Replace('/', '\\'));
        }
Example #3
0
        public static void mountBackup(int id, deeper.frmwrk.lib_page page, bool onlyData = false, string logid = "", string name_db = "")
        {
            xmlDoc doc        = new xmlDoc(Path.Combine(page.cfg_var("backupsFolder"), page.cfg_var("fsIndex")));
            string index_path = page.classPage.extract_dbpck(Path.Combine(page.cfg_var("backupsFolder")
                                                                          , doc.get_value("/root/files/file[@idfile=" + id.ToString() + "]", "name")));

            // aggiorno db
            db.db_schema db = name_db != "" ? page.conn_db(name_db, true) : page.conn_db_user(true);
            db.upgrade_data(page.conn_schema(index_path), onlyData, false
                            , doc.get_value("/root/files/file[@idfile=" + id.ToString() + "]", "title"));

            // copio i files in locale
            page.files_from_backup(index_path);
        }
Example #4
0
        public static int ins_file(db.db_schema db, string path_file, deeper.frmwrk.lib_page page)
        {
            string rel_path  = strings.rel_path(page.cfg_var("filesFolder"), path_file).Replace("\\", "/");
            string files_tbl = db.meta_doc.table_from_code(deeper.db.meta_table.align_codes.files);

            // folders
            int id_folder = ins_folder(rel_path.Substring(0, rel_path.LastIndexOf('/')), page);

            // files
            DataTable dt = db.dt_table("select tbl.* from "
                                       + " (select idfile, dbo.getPathOfFolder(idfolder)  + '/' + filename + '.' + ext as path_file from files) tbl "
                                       + " where tbl.path_file = " + db.val_toqry(rel_path, deeper.db.fieldType.VARCHAR));

            if (dt.Rows.Count >= 1)
            {
                return(int.Parse(dt.Rows[0]["idfile"].ToString()));
            }

            return((int)db.exec(string.Format("insert into " + files_tbl + " (idfolder, ext, filename, title, note, dtins) values ({0}, {1}, {2}, null, null, getdate()) ", id_folder
                                              , db.val_toqry(Path.GetExtension(path_file).Substring(1), deeper.db.fieldType.VARCHAR), db.val_toqry(Path.GetFileNameWithoutExtension(path_file), deeper.db.fieldType.VARCHAR)), true));
        }
Example #5
0
        protected static void import_csv(page_cls pg, string path_file, xmlDoc sch)
        {
            System.IO.StreamReader rdr = null;
            int i_line = 0;

            try {
                // schema
                Dictionary <string, string> flds = sch.nodes("/root/fields/field").Cast <XmlNode>()
                                                   .ToDictionary(x => x.Attributes["name"].Value, x => (string)null);

                // lines
                db.db_schema db = pg.page.conn_db_user();
                rdr = new System.IO.StreamReader(path_file);
                int    from_line = var_import_int(sch, "from_line");
                string line      = rdr.ReadLine();
                while (!string.IsNullOrEmpty(line))
                {
                    if (i_line >= from_line)
                    {
                        parse_line_csv(line.Trim(), var_import(sch, "separator"), flds);
                        if (int.Parse(pg.dt_from_id("check", "", "", flds, null, true, sch.root_node)
                                      .Rows[0][0].ToString()) == 0)
                        {
                            pg.exec_updates("ins", "", flds, null, sch.root_node); System.Threading.Thread.Sleep(50);
                        }
                        else
                        {
                            pg.exec_updates("upd", "", flds, null, sch.root_node); System.Threading.Thread.Sleep(50);
                        }
                    }
                    line = rdr.ReadLine(); i_line++;
                }
            } catch (Exception ex) { throw new Exception(ex.Message + " (line: " + i_line.ToString() + ")"); } finally { if (rdr != null)
                                                                                                                         {
                                                                                                                             rdr.Close();
                                                                                                                         }
            }
        }
Example #6
0
        // /cartellona/catellina/cartellozza
        public static int ins_folder(string path_folder, deeper.frmwrk.lib_page page)
        {
            db.db_schema db = null;
            bool         identity_folders = false;

            try {
                db = page.conn_db_user(true);

                path_folder = path_folder.Replace("\\", "/");
                string folders_tbl = db.meta_doc.table_from_code(deeper.db.meta_table.align_codes.folders);

                DataTable dt = db.dt_table("select tbl.* from "
                                           + " (select idfolder, dbo.getPathOfFolder(idfolder) as path_folder from folders) tbl "
                                           + "  where tbl.path_folder = " + db.val_toqry(path_folder, deeper.db.fieldType.VARCHAR));
                if (dt.Rows.Count >= 1)
                {
                    return(int.Parse(dt.Rows[0]["idfolder"].ToString()));
                }

                int      id_parent   = -1;
                string   tmp_folder  = "";
                string[] sub_folders = path_folder.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = -1; i < sub_folders.Count(); i++)
                {
                    // folder vuoto
                    if (i < 0)
                    {
                        if (db.get_count("select count(*) from " + folders_tbl + " where idfolder = 0") == 0)
                        {
                            db.set_identity("folders", true);
                            identity_folders = true;
                            db.exec("insert into " + folders_tbl + " (idfolder, idfolderpadre, foldername, note, dtins) values (0, 0, '', null, getdate())", true);
                            db.set_identity("folders", false);
                            identity_folders = false;
                        }
                        id_parent = 0;
                        continue;
                    }

                    tmp_folder += "/" + sub_folders[i];
                    dt          = db.dt_table("select tbl.* from "
                                              + " (select idfolder, dbo.getPathOfFolder(idfolder) as path_folder from folders) tbl "
                                              + "  where tbl.path_folder = " + db.val_toqry(tmp_folder, deeper.db.fieldType.VARCHAR));
                    if (dt.Rows.Count >= 1)
                    {
                        id_parent = int.Parse(dt.Rows[0]["idfolder"].ToString());
                    }
                    else
                    {
                        id_parent = (int)db.exec("insert into " + folders_tbl + " (idfolderpadre, foldername, note, dtins) values (" + id_parent.ToString() + ", "
                                                 + db.val_toqry(sub_folders[i], deeper.db.fieldType.VARCHAR) + ", null, getdate())", true);
                    }

                    continue;
                }
                return(id_parent);
            } catch (Exception ex) { throw ex; } finally {
                if (db != null && identity_folders)
                {
                    db.set_identity("folders", false);
                }
            }
        }