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);
}
}
}