Esempio n. 1
0
        protected override void Resume(object arg)
        {
            var response = (MovementPermission)this.response;

            while (!response.IsPermitted)
            {
                waitForResponseHandle.Reset();
                Thread.Sleep(_movementRequestPollIntervalMs);
                Initiate();
                waitForResponseHandle.WaitOne();
                response = (MovementPermission)this.response;
            }

            VehiclesComponent.PublishVehicleMovement(
                new VehicleMovement
            {
                VehicleId   = Vehicle.Id,
                VehicleType = Vehicle.Type,
                VertexFrom  = _vertexFrom,
                VertexTo    = _vertexTo,
                DurationMs  = _movementTimeMs
            });
            Thread.Sleep(_movementTimeMs);
            VehiclesComponent.PublishMovementEnd(
                new MovementEnd
            {
                VehicleId  = Vehicle.Id,
                VertexFrom = _vertexFrom,
                VertexTo   = _vertexTo,
            });
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var connFactory = new ConnectionFactory
            {
                HostName = "206.189.60.128"
            };
            var connection = connFactory.CreateConnection();
            var channel    = connection.CreateModel();

            VehiclesComponent.Initialize(channel, new System.Net.Http.HttpClient());

            var cts = new CancellationTokenSource();
            var ct  = cts.Token;

            foreach (var vehicle in Garage.Vehicles)
            {
                Task.Run(() => vehicle.Run(ct));
            }

            Console.WriteLine("Press enter to exit");
            Console.ReadLine();

            cts.Cancel();
            channel.Dispose();
        }
Esempio n. 3
0
 protected override void MakeRequest()
 {
     VehiclesComponent.PublishMovementRequest(
         new MovementRequest
     {
         VehicleId  = Vehicle?.Id ?? Guid.Empty,
         VertexFrom = _vertexFrom,
         VertexTo   = _vertexTo
     });
 }
Esempio n. 4
0
 public void Initiate()
 {
     VehiclesComponent.AddWaitingAction(Vehicle?.Id ?? Guid.Empty, this);
     MakeRequest();
 }