public SimulationHistory SimulationStart(StartSimulationViewModel model) { Step = model.Step; Complexity = model.Complexity; StartProcedure = GenerateSimGraph(model); CheckConntection(); Simulate(); return(GetSimHistory()); }
SimProcedure GenerateSimGraph(StartSimulationViewModel model) { SimProcedures = GetSimProcedures(model.Procedures); SimResources = GetSimResources(model.Resources); CreateProceduresLinks(model.ProcLinks); CreateResourcesLinks(model.ProcResLinks); UpdateProceduresResParams(); var startProcedure = SimProcedures.SingleOrDefault(x => x.ProcedureKey == model.StartProcKey); return(startProcedure); }
public async Task <RequestResult <SimulationResultViewModel> > StartSimulation(StartSimulationViewModel model, string userId) { var resources = await _resourceRepository.GetAllResources(); var simCore = new SimulationCore(resources); var currentUser = await _userManager.FindByIdAsync(userId); SimulationHistory history; try { history = simCore.SimulationStart(model); } catch (SimulationException ex) { return(RequestResult <SimulationResultViewModel> .Success(new SimulationResultViewModel { IsSuccess = false, Error = ex.Message })); } history.Username = currentUser.UserName; history.AuthorName = $"{currentUser.LastName} {currentUser.FirstName}"; var simName = await _simulationNameRepository.FindSimulationNameByUsername(model.SimulationName, currentUser.UserName); if (simName == null) { var newSimName = new SimulationName { Name = model.SimulationName, Username = currentUser.UserName }; await _simulationNameRepository.AddSimulationName(newSimName); history.SimulationName = newSimName; } else { history.SimulationName = simName; } await _simulationHistoryRepository.AddSimulationHistory(history); return(RequestResult <SimulationResultViewModel> .Success(new SimulationResultViewModel(history))); }
public async Task <IActionResult> StartSimulation([FromBody] StartSimulationViewModel model) { var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value; return((await _simulationService.StartSimulation(model, userId)).ToJsonResult()); }