using System;
|
using System.IO;
|
|
namespace IStation.DAL
|
{
|
/// <summary>
|
/// 项目
|
/// </summary>
|
public class Project : FileDAL<Entity.Project>
|
{
|
public override string FileName
|
{
|
get
|
{
|
var workFolder = FileHelper.GetWorkFolder();
|
var fileName = FileHelper.GetFilePath<Entity.Project>(workFolder);
|
return fileName;
|
}
|
}
|
|
/// <summary>
|
/// 导入
|
/// </summary>
|
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<Entity.Project>(newProjectFolder);//导入的项目内的旧项目文件
|
var defaultProject = GetFileObject<Entity.Project>(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;
|
}
|
|
|
|
/// <summary>
|
/// 导出
|
/// </summary>
|
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<Entity.Project>(projectFolder);
|
SaveObjectFile(projectFile, project);
|
|
//压缩项目文件夹
|
ZipHelper.ZipFolder(projectFolder, fileName);
|
return true;
|
}
|
|
|
/// <summary>
|
/// 移除项目文件夹
|
/// </summary>
|
public void RemoveFolder(long id)
|
{
|
var projectFolder = FileHelper.GetProjectFolder(id);
|
Directory.Delete(projectFolder, true);
|
}
|
|
}
|
|
}
|