a0971cf974
- 创建 CodePlay 解决方案和 4 个项目 (Core, Web, CLI, Tests) - 实现核心数据模型 (ConversionRequest, ConversionResult, Project 等) - 实现核心接口 (IParser, IConverter, ICodeGenerator 等) - 实现基础抽象类 BaseParser - 实现 CSharpParser 解析器 (基于 Roslyn) - 添加 Microsoft.CodeAnalysis.CSharp NuGet 包 - 所有代码编译通过 Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
142 lines
3.1 KiB
C#
142 lines
3.1 KiB
C#
using CodePlay.Core.Common;
|
|
|
|
namespace CodePlay.Core.Models;
|
|
|
|
/// <summary>
|
|
/// 项目模型
|
|
/// </summary>
|
|
public class Project
|
|
{
|
|
/// <summary>
|
|
/// 项目 ID
|
|
/// </summary>
|
|
public string Id { get; set; } = Guid.NewGuid().ToString("N");
|
|
|
|
/// <summary>
|
|
/// 项目名称
|
|
/// </summary>
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 源语言
|
|
/// </summary>
|
|
public LanguageType SourceLanguage { get; set; }
|
|
|
|
/// <summary>
|
|
/// 目标语言
|
|
/// </summary>
|
|
public LanguageType TargetLanguage { get; set; }
|
|
|
|
/// <summary>
|
|
/// 项目状态
|
|
/// </summary>
|
|
public ProjectStatus Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// 创建时间
|
|
/// </summary>
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// 更新时间
|
|
/// </summary>
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// 转换任务列表
|
|
/// </summary>
|
|
public List<ConversionTask> Tasks { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// 配置
|
|
/// </summary>
|
|
public ProjectConfiguration? Configuration { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转换任务
|
|
/// </summary>
|
|
public class ConversionTask
|
|
{
|
|
/// <summary>
|
|
/// 任务 ID
|
|
/// </summary>
|
|
public string Id { get; set; } = Guid.NewGuid().ToString("N");
|
|
|
|
/// <summary>
|
|
/// 源文件路径
|
|
/// </summary>
|
|
public string SourceFilePath { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 目标文件路径
|
|
/// </summary>
|
|
public string TargetFilePath { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 源代码
|
|
/// </summary>
|
|
public string? SourceCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 转换后的代码
|
|
/// </summary>
|
|
public string? TransformedCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 转换状态
|
|
/// </summary>
|
|
public ConversionStatus Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// 创建时间
|
|
/// </summary>
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// 完成时间
|
|
/// </summary>
|
|
public DateTime? CompletedAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// 转换结果
|
|
/// </summary>
|
|
public ConversionResult? Result { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 项目配置
|
|
/// </summary>
|
|
public class ProjectConfiguration
|
|
{
|
|
/// <summary>
|
|
/// 验证轮次
|
|
/// </summary>
|
|
public int ValidationRounds { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// 自动修复启用
|
|
/// </summary>
|
|
public bool EnableAutoFix { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 保留注释
|
|
/// </summary>
|
|
public bool KeepComments { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 保留文档字符串
|
|
/// </summary>
|
|
public bool KeepDocStrings { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 缩进大小
|
|
/// </summary>
|
|
public int IndentSize { get; set; } = 4;
|
|
|
|
/// <summary>
|
|
/// 输出目录
|
|
/// </summary>
|
|
public string? OutputDirectory { get; set; }
|
|
}
|