public ActionResult <ExamResult> saveResult(ResultGenerate result) { try { var examMrk = _examResutlRepo.GenerateExamResult(result); if (examMrk == null) { return(NotFound()); } return(Ok(examMrk)); } catch (Exception ex) { return(BadRequest(ex)); } }
public static ResultGenerate GenerateDLL(string path, string assemblyName) { var scanner = path + "/Scanner.cs"; var parser = path + "/Parser.cs"; var sourceScanner = File.ReadAllText(scanner); var sourceParser = File.ReadAllText(parser); var parsedSyntaxTreeScanner = Parse(sourceScanner, "", CSharpParseOptions.Default.WithLanguageVersion(LanguageVersion.CSharp7)); var parsedSyntaxTreeParser = Parse(sourceParser, "", CSharpParseOptions.Default.WithLanguageVersion(LanguageVersion.CSharp7)); using (MemoryStream ms = new MemoryStream()) { var compilation = CSharpCompilation.Create(assemblyName, new SyntaxTree[] { parsedSyntaxTreeScanner, parsedSyntaxTreeParser }, DefaultReferences, DefaultCompilationOptions); try { var result = compilation.Emit(ms); ResultGenerate resultGenerate = new ResultGenerate() { ResultCode = result.Success ? 1 : 0 }; if (!result.Success) { resultGenerate.ErrorsMessage = new List <string>(); foreach (var item in result.Diagnostics) { resultGenerate.ErrorsMessage.Add(item.ToString()); } } else { resultGenerate.Result = ms.ToArray(); } return(resultGenerate); } catch (Exception ex) { throw (ex); } } }