using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DocTools.Dtos;
using ZetaLongPaths;
namespace DocTools.DBDoc
{
public abstract class Doc
{
///
/// 当前应用程序的名称 => DBCHM
///
private static string ConfigFileName = Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName).Replace(".vshost", "");
///
/// 定义配置存放的路径 => C:\Users\用户名\AppData\Local\DBCHM
///
public static string AppPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, Environment.SpecialFolderOption.Create), ConfigFileName);
public Doc(DBDto dto, string filter)
{
this.Dto = dto;
this.Filter = filter;
this.WorkTmpDir = Path.Combine(AppPath, dto.DBType + "_" + dto.DBName);
if (ZlpIOHelper.DirectoryExists(this.WorkTmpDir))
{
ZlpIOHelper.DeleteDirectory(this.WorkTmpDir, true);
}
ZlpIOHelper.CreateDirectory(this.WorkTmpDir);
this.Ext = this.Filter.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault()?.Trim('*');
}
///
/// 临时文件的存放目录
///
public string WorkTmpDir { get; private set; }
///
/// 文件扩展名
///
public string Ext { get; set; }
///
/// 数据库Dto
///
public DBDto Dto { get; }
///
/// 扩展名过滤字符串
///
public string Filter { get; }
///
/// 构建生成文档
///
public abstract void Build(string filePath);
}
}