Ejemplo n.º 1
0
        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));
        }