public async Task Remove(LpTask lpTask) { _ctx.LpTasks.Remove(lpTask); await _ctx.SaveChangesAsync(); }
public async Task <IActionResult> Solve([FromBody] LPModelDto lpModelDto, bool integerProgramming = false) { bool wrongFormat = false; string message = null; SimplexSolutionDto solution = null; LPModel lpModel = null; try { lpModelDto.Validate(); } catch (ArgumentException e) { wrongFormat = true; message = string.Format(Messages.WRONG_FORMAT_CHECK_ARG, e.ParamName); } if (wrongFormat) { return(BadRequest(new { success = false, message = message })); } if (integerProgramming) { try { lpModel = Gomory.RunGomory(lpModelDto); solution = lpModel.GetSolutionFromDictionary(lpModelDto.MapTo(new LPModel()).Objective.Function); } catch (SimplexAlgorithmExectionException e) { message = e.ExecutionError == SimplexAlgorithmExectionErrorType.NoSolution ? Messages.SIMPLEX_INT_RESULT_NO_SOLUTION : Messages.SIMPLEX_INT_RESULT_NO_LIMIT; } } else { lpModel = lpModelDto.MapTo(new LPModel()); try { lpModel.TwoPhaseSimplex(); solution = lpModel.GetSolutionFromDictionary(lpModelDto.MapTo(new LPModel()).Objective.Function); } catch (SimplexAlgorithmExectionException e) { message = e.ExecutionError == SimplexAlgorithmExectionErrorType.NoSolution ? Messages.SIMPLEX_RESULT_NO_SOLUTION : Messages.SIMPLEX_RESULT_NO_LIMIT; } catch (Exception) { message = Messages.GENERAL_ERROR; } } if (message == Messages.GENERAL_ERROR) { return(StatusCode(500, new { success = false, message = message })); } var lpTask = new LpTask { LPModelAsJson = JsonConvert.SerializeObject(lpModelDto), SolutionAsJson = JsonConvert.SerializeObject(new LPTaskResultDto { SolutionFound = solution != null, Message = message, Solution = solution }), SolvedAt = DateTimeOffset.Now, IntegerProgramming = integerProgramming }; await _lpTaskOperations.Add(lpTask); return(Json(new { success = true, taskId = lpTask.Id })); }
public async Task Add(LpTask lpTask) { _ctx.LpTasks.Add(lpTask); await _ctx.SaveChangesAsync(); }