Example #1
0
        public object PutCodeToCompile([FromBody] JToken input)
        {
            CompiledFormDto        result        = new CompiledFormDto();
            CompileResultContainer compileResult = null;

            if (input["csharpCode"] == null)
            {
                result.ErrorMessages.Add("No Code!");
                return(result);
            }

            try
            {
                compileResult = CompileService.TryCompileAndSearchType(input["csharpCode"].ToString());

                result.CompilationSuccessfull = compileResult.CompilationSuccessfull;
                result.TypeName      = compileResult.TypeName;
                result.ErrorMessages = compileResult.ErrorMessages;

                if (compileResult.CompilationSuccessfull)
                {
                    DefaultSchemaFormBuilder builder        = new DefaultSchemaFormBuilder();
                    SchemaFormInfo           schemaFormInfo = builder.CreateSchemaForm(compileResult.Type);
                    result.Form   = schemaFormInfo.Form;
                    result.Schema = schemaFormInfo.Schema;
                }
            }
            catch (Exception e)
            {
                result.ErrorMessages.Add(e.ToString());
            }
            finally
            {
                if (compileResult != null)
                {
                    compileResult.ReleaseResources();
                }
            }

            return(result);
        }