Exemplo n.º 1
0
        public SimulationHistory SimulationStart(StartSimulationViewModel model)
        {
            Step           = model.Step;
            Complexity     = model.Complexity;
            StartProcedure = GenerateSimGraph(model);

            CheckConntection();
            Simulate();

            return(GetSimHistory());
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> StartSimulation([FromBody] StartSimulationViewModel model)
        {
            var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            return((await _simulationService.StartSimulation(model, userId)).ToJsonResult());
        }