using Fantasy.Exporter; using Fantasy.Helper; // ReSharper disable ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract #pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. namespace Fantasy.Tools.ConfigTable; /// /// 自定义导出接口 /// public interface ICustomExport { /// /// 执行导出操作 /// void Run(); /// /// 内部操作用于初始化、不明白原理不要修改这里和调用这个方法 /// /// /// void Init(ExcelExporter excelExporter, ExcelWorksheets worksheets); } /// /// 抽象自定义导出基类 /// public abstract class ACustomExport : ICustomExport { protected ExcelExporter ExcelExporter; protected ExcelWorksheets Worksheets; /// /// 自定义导出类型枚举:客户端、服务器 /// protected enum CustomExportType { /// /// 客户端 /// Client, /// /// 服务器 /// Server } /// /// 内部操作用于初始化、不明白原理不要修改这里 /// /// /// public void Init(ExcelExporter excelExporter, ExcelWorksheets worksheets) { ExcelExporter = excelExporter; Worksheets = worksheets; } /// /// 执行导出操作的抽象方法 /// public abstract void Run(); /// /// 写入文件内容到指定位置 /// /// 文件名 /// 文件内容 /// 相对的导出的目录 /// 自定义导出类型 protected void Write(string fileName, string fileContent, string filePath, CustomExportType customExportType) { if (filePath == null) { Log.Error($" {nameof(filePath)} is null"); return; } filePath = FileHelper.GetFullPath(filePath); if (!Directory.Exists(filePath)) { FileHelper.CreateDirectory(filePath); } var combine = Path.Combine(filePath, fileName); File.WriteAllText(combine, fileContent); switch (customExportType) { case CustomExportType.Client: { Log.Info($"导出客户端自定义文件:{filePath}/{fileName}"); return; } case CustomExportType.Server: { Log.Info($"导出服务器自定义文件:{filePath}/{fileName}"); return; } } } /// /// 写入文件内容到指定位置 /// /// 文件名 /// 文件内容 /// 自定义导出类型 protected void Write(string fileName, string fileContent, CustomExportType customExportType) { switch (customExportType) { case CustomExportType.Client: { if (string.IsNullOrEmpty(ExcelExporter.ClientCustomExportDirectory)) { return; } if (!Directory.Exists(ExcelExporter.ClientCustomExportDirectory)) { Directory.CreateDirectory(ExcelExporter.ClientCustomExportDirectory); } File.WriteAllText($"{ExcelExporter.ClientCustomExportDirectory}/{fileName}", fileContent); Log.Info($"导出客户端自定义文件:{ExcelExporter.ClientCustomExportDirectory}/{fileName}"); return; } case CustomExportType.Server: { if (string.IsNullOrEmpty(ExcelExporter.ServerCustomExportDirectory)) { return; } if (!Directory.Exists(ExcelExporter.ServerCustomExportDirectory)) { Directory.CreateDirectory(ExcelExporter.ServerCustomExportDirectory); } File.WriteAllText($"{ExcelExporter.ServerCustomExportDirectory}/{fileName}", fileContent); Log.Info($"导出服务器自定义文件:{ExcelExporter.ServerCustomExportDirectory}/{fileName}"); return; } } } }