protected async Task <HttpResponseMessage> ExecuteAsync(int timeoutMs) { var log = new DefaultLogService(); string input = await Request.Content.ReadAsStringAsync(); try { JobsRunner.JobResult result = JobsRunner.Job.RunToCompletion(Path.Combine(basePath, executableName), input, timeoutMs); if (result.Errors.Length > 0) { var contents = new LogContents(null, result.Errors); faultLogger.Add(DateTime.Now, typeof(JobController).Assembly.GetName().Version.ToString(), input, contents); } return(HttpResponses.Json(Request, result.Content)); } catch (System.TimeoutException ex) { RegisterException(faultLogger, log, input, ex); return(HttpResponses.PlainText(Request, "Timeout while waiting for the execution to complete", HttpStatusCode.NoContent)); // status 204 if timeout } catch (Exception ex) { RegisterException(faultLogger, log, input, ex); throw ex; } }
private void SetSelectedLogContents(PageAddress address) { LogContents.Clear(); foreach (DataGridViewRow row in dataGridView.Rows) { if (row.Cells["PageAddressColumn"].Value != DBNull.Value && (PageAddress)row.Cells["PageAddressColumn"].Value == address) { GetLogData(row.Cells["OperationColumn"].Value.ToString(), row); } } }
public SimulationOutput Post([FromBody] SimulationInput input) { var log = new DefaultLogService(); var output = Utilities.RunWithTimeLimit(() => Simulation.Simulate(input), Utilities.GetTimeLimitFromConfig()); if (output.ErrorMessages != null && output.ErrorMessages.Length > 0) { var contents = new LogContents(output.DebugMessages, output.ErrorMessages); faultLogger.Add(DateTime.Now, typeof(JobController).Assembly.GetName().Version.ToString(), input, contents); } return(output); }
private void GetLogData(string operation, DataGridViewRow row) { LogContents.Clear(); switch (operation) { case "MODIFY ROW": LogContents.Add("Before", GetLogData(row, 0)); LogContents.Add("After", GetLogData(row, 1)); break; case "INSERT ROWS": LogContents.Add("Before", GetLogData(row, 0)); break; } }