using System; using System.IO; namespace IStation.DAL { /// /// 项目 /// public class Project : BaseDAL { public override string FileName { get { var workFolder = FileHelper.GetWorkFolder(); var fileName = FileHelper.GetFilePath(workFolder); return fileName; } } /// /// 导入 /// public long Import(string fileName, out string msg) { msg = string.Empty; var newProjectId = SnowflakeIdHelper.NextId(); var newProjectFolder = FileHelper.GetProjectFolder(newProjectId); ZipHelper.UnZipFolder(fileName, newProjectFolder); var newProjectFile = FileHelper.GetFilePath(newProjectFolder);//导入的项目内的旧项目文件 var defaultProject = GetFileObject(newProjectFile); if (defaultProject == null) { msg = "项目文件缺失"; return default; } else { File.Delete(newProjectFile);//解析完成后删除 } var entity = new Entity.Project(); entity.ID = newProjectId; entity.Name = defaultProject.Name + "(导入)"; entity.Version = defaultProject.Version; entity.TagName = defaultProject.TagName; entity.Description = defaultProject.Description; entity.CreateTime = DateTime.Now; entity.UpdateTime = null; newProjectId = Insert(entity); if (newProjectId < 0) return default; return newProjectId; } /// /// 导出 /// public bool Export(long id, string fileName, out string msg) { msg = string.Empty; var project = GetByID(id); if (project == null) { msg = "项目不存在"; return false; } //生成项目信息文件 var projectFolder = FileHelper.GetProjectFolder(id); var projectFile = FileHelper.GetFilePath(projectFolder); SaveObjectFile(projectFile, project); //压缩项目文件夹 ZipHelper.ZipFolder(projectFolder, fileName); return true; } /// /// 移除项目文件夹 /// public void RemoveFolder(long id) { var projectFolder = FileHelper.GetProjectFolder(id); Directory.Delete(projectFolder, true); } } }