Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

            _log = LogManager.GetLogger(typeof(ElevatorSystem));

            _options = ParseArguments(args);

            _system = new ElevatorSystem(new IElevator[] {
                ElevatorFactory.Instance.Create(),
                ElevatorFactory.Instance.Create(),
            });

            Building.Initialize(_system);

            _system.RunAll();

            if (_options?.Inputs?.Any() == true)
            {
                HandleRequestInputs(_options.Inputs);
            }

            if (_options?.SimplePrompt == true)
            {
                DoSimpleUserPrompt();
            }
            else
            {
                DoInteractiveUserPrompt();
            }

            _system.StopAll();
        }
Exemplo n.º 2
0
        public async void RequestShouldBeWrittenToQueue()
        {
            var queue          = new ElevatorRequestQueueUsingChannel();
            var actualRequests = new List <ElevatorRequest>();
            var elevatorSystem = new ElevatorSystem(
                new ElevatorRequestHandlerFactory(null, null, queue),
                new WaiterService(),
                queue
                );

            elevatorSystem.AddRequest(new ElevatorRequest());

            await Task.WhenAny(
                elevatorSystem.StartAsync(),
                Task.Run(async() =>
            {
                await Task.Delay(10);
                queue.Complete();
            })
                );

            await foreach (var request in queue.ReadAllAsync())
            {
                actualRequests.Add(request);
            }

            Assert.Single(actualRequests);
        }
Exemplo n.º 3
0
    public ArduinoReader(ElevatorSystem elSys)
    {
        _elSys = elSys;
        sPort  = new SerialPort("COM7");
        Task task = new Task(() => ReadCycle());

        task.Start();
    }
Exemplo n.º 4
0
        public void StatePatternTest()
        {
            ElevatorSystem system = new ElevatorSystem();

            //Assert.That(engine.CageAtFloor.Value == 0);

            //engine.GoToFloor(2);

            //Assume.That(engine.CageAtFloor.Value == 2);
        }
Exemplo n.º 5
0
        public async void StartAsyncWithoutRequestsOrElevatorsShouldAbortIfCancelled()
        {
            var elevatorSystem = new ElevatorSystem(
                null,
                new WaiterService(),
                new ElevatorRequestQueueUsingChannel()
                );
            var cancellationTokenSource = new CancellationTokenSource();

            cancellationTokenSource.Cancel();

            await Assert.ThrowsAsync <OperationCanceledException>(
                () =>
                elevatorSystem.StartAsync(cancellationTokenSource.Token)
                );
        }
Exemplo n.º 6
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            FinalFrame     FFrame  = new FinalFrame();
            MainFrame      mFrame  = new MainFrame(FFrame);
            RealTimeFrame  RTFrame = new RealTimeFrame();
            ElevatorSystem Lsys    = new ElevatorSystem();


            CreatePresenter    sysLift  = new CreatePresenter(mFrame, Lsys);
            InfoPressenter     infLift  = new InfoPressenter(RTFrame, Lsys);
            FinalInfoPresenter finalInf = new FinalInfoPresenter(FFrame, Lsys);


            RTFrame.Show();
            Application.Run(mFrame);
        }