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; } }
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()); }
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); }
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); }
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); }
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 + "\"})"); }
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); }