コード例 #1
0
        public async Task <IActionResult> Compile(
            [FromBody] WorkspaceRequest request,
            [FromHeader(Name = "Timeout")] string timeoutInMilliseconds = "45000")
        {
            using (var operation = Log.OnEnterAndConfirmOnExit())
            {
                var workspaceType = request.Workspace.WorkspaceType;

                operation.Info("Compiling workspaceType {workspaceType}", workspaceType);

                if (!int.TryParse(timeoutInMilliseconds, out var timeoutMs))
                {
                    return(BadRequest());
                }

                if (string.Equals(workspaceType, "script", StringComparison.OrdinalIgnoreCase))
                {
                    return(BadRequest());
                }

                var runTimeout = TimeSpan.FromMilliseconds(timeoutMs);
                var budget     = new TimeBudget(runTimeout);

                var result = await _workspaceServer.Compile(request, budget);

                budget.RecordEntry();
                operation.Succeed();
                return(Ok(result));
            }
        }
コード例 #2
0
 public async Task <CompileResult> Compile(WorkspaceRequest request, Budget budget = null)
 {
     return(IsFSharpWorkspaceRequest(request.Workspace)
         ? await _fsharpWorkspaceServer.Compile(request, budget)
         : await _roslynWorkspaceServer.Compile(request, budget));
 }
コード例 #3
0
 public Task <CompileResult> Compile(WorkspaceRequest request, Budget budget = null)
 {
     return(_roslynWorkspaceServer.Compile(request, budget));
 }