public List <Project> LoadAllProject(State state) { var projects = new List <Project>(); var root = state.RootPath; var path = FolderPattern.GetPathForProjectRoot(root); if (!DoesFolderExist(path)) { return(projects); } var files = GetProjectFileNames(path); foreach (var file in files) { var filename = file.Split('\\'); var data = Load(path, filename.Last()); if (data != null) { projects.Add(data); } } return(projects); }
public void SaveRecord(State state, Project project, Record record) { var root = state.RootPath; var pathForProject = FolderPattern.GetPathForProject(root, project.GetFileName()); SaveRecordInternal(pathForProject, record); }
public List <Record> LoadRecords(State state) { var records = new List <Record>(); if (state?.CurrentProject == null) { return(records); } var root = state.RootPath; var path = FolderPattern.GetPathForProject(root, state.CurrentProject.GetFileName()); if (!DoesFolderExist(path)) { return(records); } var files = GetRecordFileNames(path); foreach (var filepath in files) { var filename = filepath.Split('\\').Last(); var data = Load(path, filename); if (data != null) { records.Add(data); } } state.CurrentProject.Records = records; return(records); }
public void SaveExport(State state, Project project, Export export) { var root = state.RootPath; var path = FolderPattern.GetPathForProject(root, project.GetFileName()); var file = FilePattern.GetFileName(export.GetFileName(), FilePattern.DataExportFileEnding); Write(path, file, export.data); }
public Project LoadProject(State state, string projectKey) { var root = state.RootPath; var path = FolderPattern.GetPathForProjectRoot(root);; var file = FilePattern.GetFileName(projectKey, FilePattern.ProjectFileEnding); return(Load(path, file)); }
public void SaveRecords(State state, Project project) { var root = state.RootPath; var pathForProject = FolderPattern.GetPathForProject(root, project.GetFileName()); foreach (var record in state.CurrentProject.Records) { SaveRecordInternal(pathForProject, record); } }
/// <summary> /// 目录列表,前缀搜索 /// </summary> /// <param name="bucketName">bucket名称</param> /// <param name="remotePath">远程文件夹路径</param> /// <param name="num">拉取的总数</param> /// <param name="context">透传字段,用于翻页,前端不需理解,需要往前/往后翻页则透传回来</param> /// <param name="order">默认正序(=0), 填1为反序</param> /// <param name="pattern">拉取模式:只是文件,只是文件夹,全部</param> /// <param name="prefix">读取文件/文件夹前缀</param> /// <returns></returns> public async Task<string> GetFolderList(string bucketName, string remotePath, int num, string context, int order, FolderPattern pattern, string prefix = "") { remotePath = StandardizationRemotePath(remotePath); var url = VIDEOAPI_CGI_URL + appId + "/" + bucketName + EncodeRemotePath(remotePath) + HttpUtility.UrlEncode(prefix); var data = new Dictionary<string, string>(); data.Add("op", "list"); data.Add("num", num.ToString()); data.Add("context", context); data.Add("order", order.ToString()); string[] patternArray = { "eListFileOnly", "eListDirOnly", "eListBoth" }; data.Add("pattern", patternArray[(int)pattern]); var expired = DateTime.Now.ToUnixTime() / 1000 + 60; var sign = Sign.Signature(appId, secretId, secretKey, expired, bucketName); var header = new Dictionary<string, string>(); header.Add("Authorization", sign); return await Request.SendRequest(url, data, HttpMethod.Get, header, timeOut); }
/// <summary> /// 目录列表,前缀搜索 /// </summary> /// <param name="bucketName">bucket名称</param> /// <param name="remotePath">远程文件夹路径</param> /// <param name="num">拉取的总数</param> /// <param name="context">透传字段,用于翻页,前端不需理解,需要往前/往后翻页则透传回来</param> /// <param name="order">默认正序(=0), 填1为反序</param> /// <param name="pattern">拉取模式:只是文件,只是文件夹,全部</param> /// <param name="prefix">读取文件/文件夹前缀</param> /// <returns></returns> public string GetFolderList(string bucketName, string remotePath, int num, string context, int order, FolderPattern pattern, string prefix = "") { remotePath = StandardizationRemotePath(remotePath); var url = COSAPI_CGI_URL + appId + "/" + bucketName + EncodeRemotePath(remotePath) + HttpUtility.UrlEncode(prefix); var data = new Dictionary <string, string>(); data.Add("op", "list"); data.Add("num", num.ToString()); data.Add("context", context); data.Add("order", order.ToString()); string[] patternArray = { "eListFileOnly", "eListDirOnly", "eListBoth" }; data.Add("pattern", patternArray[(int)pattern]); var expired = DateTime.Now.ToUnixTime() / 1000 + 60; var sign = Sign.Signature(appId, secretId, secretKey, expired, bucketName); var header = new Dictionary <string, string>(); header.Add("Authorization", sign); return(Request.SendRequest(url, data, HttpMethod.Get, header, timeOut)); }
public void SaveProject(State state, Project project) { var file = FilePattern.GetFileName(project.GetFileName(), FilePattern.ProjectFileEnding); Save(FolderPattern.GetPathForProjectRoot(state.RootPath), file, project); }