public IHttpActionResult Post([FromBody]ConvertRequest todo) { var languages = todo.requestedConversion.Split('2'); string fromLanguage = "C#"; string toLanguage = "Visual Basic"; int fromVersion = 6; int toVersion = 14; if (languages.Length == 2) { fromLanguage = ParseLanguage(languages[0]); fromVersion = GetDefaultVersionForLanguage(languages[0]); toLanguage = ParseLanguage(languages[1]); toVersion = GetDefaultVersionForLanguage(languages[1]); } var codeWithOptions = new CodeWithOptions(todo.code) .WithDefaultReferences() .SetFromLanguage(fromLanguage, fromVersion) .SetToLanguage(toLanguage, toVersion); var result = CodeConverter.Convert(codeWithOptions); var response = new ConvertResponse() { conversionOk = result.Success, convertedCode = result.ConvertedCode, errorMessage = result.GetExceptionsAsString() }; return Ok(response); }
public static ConversionResult Convert(CodeWithOptions code) { if (!IsSupportedSource(code.FromLanguage, code.FromLanguageVersion)) return new ConversionResult(new NotSupportedException($"Source language {code.FromLanguage} {code.FromLanguageVersion} is not supported!")); if (!IsSupportedTarget(code.ToLanguage, code.ToLanguageVersion)) return new ConversionResult(new NotSupportedException($"Target language {code.ToLanguage} {code.ToLanguageVersion} is not supported!")); if (code.FromLanguage == code.ToLanguage && code.FromLanguageVersion != code.ToLanguageVersion) return new ConversionResult(new NotSupportedException($"Converting from {code.FromLanguage} {code.FromLanguageVersion} to {code.ToLanguage} {code.ToLanguageVersion} is not supported!")); switch (code.FromLanguage) { case "C#": switch (code.ToLanguage) { case "Visual Basic": return ConvVB.CSharpConverter.ConvertText(code.Text, code.References); } break; case "Visual Basic": switch (code.ToLanguage) { case "C#": return ConvCS.VisualBasicConverter.ConvertText(code.Text, code.References); } break; } return new ConversionResult(new NotSupportedException($"Converting from {code.FromLanguage} {code.FromLanguageVersion} to {code.ToLanguage} {code.ToLanguageVersion} is not supported!")); }
public static ConversionResult Convert(CodeWithOptions code) { if (!IsSupportedSource(code.FromLanguage, code.FromLanguageVersion)) { return(new ConversionResult(new NotSupportedException($"Source language {code.FromLanguage} {code.FromLanguageVersion} is not supported!"))); } if (!IsSupportedTarget(code.ToLanguage, code.ToLanguageVersion)) { return(new ConversionResult(new NotSupportedException($"Target language {code.ToLanguage} {code.ToLanguageVersion} is not supported!"))); } if (code.FromLanguage == code.ToLanguage && code.FromLanguageVersion != code.ToLanguageVersion) { return(new ConversionResult(new NotSupportedException($"Converting from {code.FromLanguage} {code.FromLanguageVersion} to {code.ToLanguage} {code.ToLanguageVersion} is not supported!"))); } switch (code.FromLanguage) { case "C#": switch (code.ToLanguage) { case "Visual Basic": return(ConvVB.CSharpConverter.ConvertText(code.Text, code.References)); } break; } return(new ConversionResult(new NotSupportedException($"Converting from {code.FromLanguage} {code.FromLanguageVersion} to {code.ToLanguage} {code.ToLanguageVersion} is not supported!"))); }
static ConversionResult TryConvertingCSToVBCode(string inputCode) { var codeWithOptions = new CodeWithOptions(inputCode) .SetFromLanguage("C#") .SetToLanguage("Visual Basic") .WithDefaultReferences(); return CodeConverter.Convert(codeWithOptions); }
static bool TryConvertingCSToVBCode(string csCode, out string vbCode) { vbCode = null; var codeWithOptions = new CodeWithOptions(csCode) .WithDefaultReferences(); var result = CodeConverter.Convert(codeWithOptions); if (result.Success) { vbCode = result.ConvertedCode; return true; } return false; }