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;
        }