Exemple #1
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)));
        }
        private static void repaintQueueListA(SimulationCore simulation, Form1 form)
        {
            form.listBox1.Items.Clear();
            List <Vehicle> frontA = simulation.getQueueDepo().getList();

            if (frontA.Count() > 0)
            {
                for (int i = 0; i < frontA.Count(); i++)
                {
                    form.listBox1.Items.Add(frontA[i].toString() + "\n");
                }
            }
        }
        private static void repaintLoad(SimulationCore simulation, Form1 form)
        {
            Vehicle car = simulation.carAtLoader;

            if (car != null)
            {
                form.label16.Text = car.toString();
            }
            else
            {
                form.label16.Text = "";
            }
        }
        // prekresluje GUIcko
        public static void repaint(SimulationCore simulation, Form1 form)
        {
            form.label12.Text = "Material: " + simulation.materialA;
            form.label13.Text = "Material: " + simulation.materialB;

            // nastavenie dlzky radu pred depom a budovou

            repaintQueueListA(simulation, form);
            repaintQueueListB(simulation, form);
            repaintLoad(simulation, form);
            repaintUnload(simulation, form);
            repaintAB(simulation, form);
            repaintBC(simulation, form);
            repaintCA(simulation, form);
        }
        private static void repaintBC(SimulationCore simulation, Form1 form)
        {
            List <Vehicle> bc   = simulation.getCarsBC();
            string         text = "B-C ";

            if (bc.Count == 0)
            {
                form.label10.Text = text;
                return;
            }
            foreach (Vehicle v in bc)
            {
                text += v.toString();
            }
            form.label10.Text = text;
        }
        private static void repaintCA(SimulationCore simulation, Form1 form)
        {
            List <Vehicle> ca   = simulation.getCarsCA();
            string         text = "C-A ";

            if (ca.Count == 0)
            {
                form.label11.Text = text;
                return;
            }
            foreach (Vehicle v in ca)
            {
                text += v.toString();
            }
            form.label11.Text = text;
        }
        private static void repaintAB(SimulationCore simulation, Form1 form)
        {
            List <Vehicle> ab   = simulation.getCarsAB();
            string         text = "A-B ";

            if (ab.Count == 0)
            {
                form.label9.Text = text;
                return;
            }
            foreach (Vehicle v in ab)
            {
                text += v.toString();
            }
            form.label9.Text = text;
        }
 public EventVehiclesInit(SimulationCore actualSimulation, double scheduledTime, params Vehicle[] cars) : base(actualSimulation, 0)
 {
     this.core = actualSimulation;
     this.time = scheduledTime;
     this.cars = cars;
 }