@page "/" @using CodePlay.Core.Models @using CodePlay.Core.Common @using CodePlay.Core.Services @inject ConversionService ConversionService @inject ILogger Logger CodePlay - 代码转换器

CodePlay 代码转换平台

代码转换

@if (isLoading) { } @if (!string.IsNullOrEmpty(errorMessage)) { } @if (conversionResult != null && conversionResult.Success) { }
@if (conversionResult != null && conversionResult.Success && (conversionResult.Report?.TodoItems.Count > 0 || conversionResult.Report?.Issues.Count > 0)) {
需要注意的事项
@if (conversionResult.Report?.TodoItems.Count > 0) {
TODO 列表
    @foreach (var todo in conversionResult.Report.TodoItems) {
  • @todo.Description
    原因:@todo.WhyNotDirect
    建议:@todo.RecommendedAlternative
  • }
} @if (conversionResult.Report?.Issues.Count > 0) {
问题列表
    @foreach (var issue in conversionResult.Report.Issues) {
  • @issue.Description
    建议:@issue.Suggestion
  • }
}
}
@code { private string sourceCode = string.Empty; private string transformedCode = string.Empty; private LanguageType sourceLanguage = LanguageType.CSharp; private LanguageType targetLanguage = LanguageType.Java; private int validationRounds = 2; private bool isLoading = false; private string? errorMessage; private ConversionResult? conversionResult; private async Task ConvertAsync() { if (string.IsNullOrWhiteSpace(sourceCode)) { errorMessage = "请输入源代码"; return; } isLoading = true; errorMessage = null; transformedCode = string.Empty; conversionResult = null; try { var request = new ConversionRequest { SourceLanguage = sourceLanguage.ToString(), TargetLanguage = targetLanguage.ToString(), SourceCode = sourceCode, ValidationRounds = validationRounds, Options = new ConversionOptions { KeepComments = true, KeepDocStrings = true } }; conversionResult = await ConversionService.ConvertAsync(request); if (conversionResult.Success) { transformedCode = conversionResult.TransformedCode; } else { errorMessage = conversionResult.ErrorMessage ?? "转换失败"; } } catch (Exception ex) { Logger.LogError(ex, "转换过程中发生错误"); errorMessage = $"转换失败:{ex.Message}"; } finally { isLoading = false; } } private void Clear() { sourceCode = string.Empty; transformedCode = string.Empty; errorMessage = null; conversionResult = null; } private async Task CopyToClipboard() { await Task.CompletedTask; } }