public ActionResult <JsonStatus> ProblemsPost([FromBody] JsonJob instance) { // Sanity check job var inputErr = JsonIO.Validate(instance.Instance); if (inputErr != null) { _logger.LogWarning($"POST calculation had error: {inputErr}"); return(BadRequest(inputErr)); } // Create calculation job int calcId = _jobManager.GetNextId(); var calc = new Calculation(calcId, instance, null); if (calc.Problem.Configuration == null) // Set a default config, if none is given { calc.Problem.Configuration = new ObjectModel.Configuration.Configuration(ObjectModel.MethodType.ExtremePointInsertion, false); } calc.Status.ProblemUrl = $"{SUB_CALCULATION_PROBLEMS}/{calcId}"; calc.Status.StatusUrl = $"{SUB_CALCULATION_PROBLEMS}/{calcId}/status"; calc.Status.SolutionUrl = $"{SUB_CALCULATION_PROBLEMS}/{calcId}/solution"; // Log _logger.LogInformation($"POST calculation (got ID {calcId})"); // Enqueue the problem _jobManager.Enqueue(calc); return(Ok(calc.Status)); }