コード例 #1
0
        public static void Main(string[] args)
        {
            IServiceCollection serviceCollection = new ServiceCollection();

            Bootstrapper.ConfigureServices(serviceCollection);

            var test          = serviceCollection.BuildServiceProvider();
            var loggerFactory = test.GetRequiredService <ILoggerFactory>();
            var logger        = loggerFactory.CreateLogger <Program>();

            Migrator migrator;

            switch (args[0])
            {
            case "upgrade":
                var database   = new Database(args[1], args[2], args[3], args[4]);
                var dbfolder   = new DBFolder();
                var validator  = new Validator();
                var dbVersions = database.GetDBState();
                validator.ValidateVersions(dbfolder.allVersions, dbVersions);
                var differ   = new VersionDiff();
                var diff     = differ.Diff(dbfolder.GetVersionsUpTo(args[5]), dbVersions);
                var diffText = differ.DiffText(diff);
                logger.LogInformation(diffText);
                System.Console.ReadKey();
                migrator = new Migrator(database, dbfolder);
                migrator.Upgrade(diff);
                System.Console.ReadKey();
                break;

            case "rollback":
                var database1   = new Database(args[2], args[3], args[4], args[5]);
                var dbVersions1 = database1.GetDBState();
                var dbfolder1   = new DBFolder();
                var validator1  = new Validator();
                validator1.ValidateVersions(dbfolder1.allVersions, dbVersions1);
                var differ1 = new VersionDiff();
                var diff1   = differ1.Diff(dbVersions1, dbfolder1.GetVersionsUpTo(args[1]));
                dbfolder1.AddRollbacks(diff1);
                var diffText1 = differ1.DiffText(diff1);
                logger.LogInformation(diffText1);
                System.Console.ReadKey();
                migrator = new Migrator(database1, dbfolder1);
                migrator.Rollback(diff1);
                System.Console.ReadKey();
                break;

            case "validate":
                var database2   = new Database(args[1], args[2], args[3], args[4]);
                var dbVersions2 = database2.GetDBState();
                var dbfolder2   = new DBFolder();
                var validator2  = new Validator();
                validator2.ValidateVersions(dbfolder2.allVersions, dbVersions2);
                System.Console.ReadKey();
                break;

            default:
                break;
            }
        }
コード例 #2
0
        public static string GetFolderData(int fid, ref FolderInf root)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("select ");
            sb.Append("xf.fd_name");
            sb.Append(",xf.fd_length");
            sb.Append(",xf.fd_size");
            sb.Append(",xf.fd_pid");
            sb.Append(",xf.fd_pathLoc");
            sb.Append(",xf.fd_pathSvr");
            sb.Append(",xf.fd_folders");
            sb.Append(",xf.fd_files");
            sb.Append(",xf.fd_filesComplete");
            sb.Append(" from down_folders as df");
            sb.Append(" left join xdb_files as xf");
            sb.Append(" on xf.fd_id = df.fd_id");
            sb.Append(" where df.fd_id=@fd_id and xf.fd_complete=1;");

            DbHelper  db  = new DbHelper();
            DbCommand cmd = db.GetCommand(sb.ToString());

            db.AddInInt32(cmd, "@fd_id", fid);
            DbDataReader r = db.ExecuteReader(cmd);

            //FolderInf root = new FolderInf();
            if (r.Read())
            {
                root.m_name        = r.GetString(0);
                root.m_lenLoc      = r.GetInt64(1);
                root.m_size        = r.GetString(2);
                root.m_pidSvr      = r.GetInt32(3);
                root.m_idSvr       = fid;
                root.m_pathLoc     = r.GetString(4);
                root.m_pathSvr     = r.GetString(5);
                root.foldersCount  = r.GetInt32(6);
                root.filesCount    = r.GetInt32(7);
                root.filesComplete = r.GetInt32(8);
            }
            r.Close();

            //单独取已上传长度
            root.lenSvr = DBFolder.GetLenPosted(fid);

            //取文件信息
            JArray        files = new JArray();
            List <string> ids   = new List <string>();

            DBFile.GetCompletes(fid, ref files, ref ids);

            JObject obj = (JObject)JToken.FromObject(root);

            obj["files"]  = files;
            obj["length"] = root.m_lenLoc;
            obj["ids"]    = string.Join(",", ids.ToArray());
            return(obj.ToString());
        }
コード例 #3
0
        public async Task <Guid> AddFolder(DBFolder folder)
        {
            if (folder.Id == Guid.Empty)
            {
                folder.Id = Guid.NewGuid();
            }
            await TblFolder.Insert(folder, false).ExecuteAsync().ConfigureAwait(false);

            return(folder.Id);
        }
コード例 #4
0
ファイル: DbFolderTest.cs プロジェクト: crazyants/DBMigrator
        public void Load_Folder_Test()
        {
            var path     = Path.Combine(Path.GetDirectoryName(typeof(Validator).GetTypeInfo().Assembly.Location), "TestDBFolderStructure");
            var dbFolder = new DBFolder(path);

            var differ = new VersionDiff();

            var diff = differ.Diff(dbFolder.allVersions, Folder());

            Assert.AreEqual(0, diff.Count);
        }
コード例 #5
0
ファイル: clear.aspx.cs プロジェクト: 1269085759/up7-asp.net
        protected void Page_Load(object sender, EventArgs e)
        {
            DBFile.Clear();
            DBFolder.Clear();

            Response.Write("数据库清除成功<br/>");

            //删除upload文件夹
            PathBuilder pb      = new PathBuilder();
            string      pathSvr = pb.getRoot();
            //if(Directory.Exists(pathSvr)) Directory.Delete(pathSvr,true);
        }
コード例 #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            String id       = Request.QueryString["id"];
            String pathLoc  = Request.QueryString["pathLoc"];
            String sizeLoc  = Request.QueryString["sizeLoc"];
            String lenLoc   = Request.QueryString["lenLoc"];
            String uid      = Request.QueryString["uid"];
            String fCount   = Request.QueryString["filesCount"];
            String callback = Request.QueryString["callback"];

            pathLoc = PathTool.url_decode(pathLoc);

            FileInf f = new FileInf();

            f.nameLoc   = Path.GetFileName(pathLoc);
            f.nameSvr   = f.nameLoc;
            f.id        = id;
            f.pathLoc   = pathLoc;
            f.sizeLoc   = sizeLoc;
            f.lenLoc    = long.Parse(lenLoc);
            f.fileCount = int.Parse(fCount);
            f.fdTask    = true;
            f.uid       = int.Parse(uid);
            //生成路径,格式:upload/年/月/日/guid/文件夹名称
            PathGuidBuilder pb = new PathGuidBuilder();

            f.pathSvr = Path.Combine(pb.genFolder(f.uid, f.id), f.nameLoc);
            f.pathSvr = f.pathSvr.Replace("\\", "/");
            Directory.CreateDirectory(f.pathSvr);

            //添加到队列表
            DBFile.add(ref f);

            //添加到文件夹表
            DBFolder dbf = new DBFolder();

            dbf.add(ref f);

            //触发事件
            up7_biz_event.folder_create(f);

            string json = JsonConvert.SerializeObject(f);

            json = HttpUtility.UrlEncode(json);
            json = json.Replace("+", "%20");
            Response.Write(callback + "({\"value\":\"" + json + "\"})");
        }
コード例 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string fdID  = Request.QueryString["fdID"];   //xdb_folders.fd_id
            string idSvr = Request.QueryString["idSvr"];
            string cbk   = Request.QueryString["callback"];

            FolderInf fi   = new FolderInf();
            string    json = string.Empty;

            if (!string.IsNullOrEmpty(idSvr))
            {
                json = DnFolder.GetFolderData(int.Parse(idSvr), ref fi);
            }
            else if (!string.IsNullOrEmpty(fdID))
            {
                json = DBFolder.GetFolderData(int.Parse(fdID), ref fi);
            }

            json = HttpUtility.UrlEncode(json);
            //UrlEncode会将空格解析成+号
            json = json.Replace("+", "%20");
            //Response.Write(cbk+"("+json+ ")");
            Response.Write(json);
        }