/// <summary> /// Handle VehicleExitRegistered message. /// </summary> /// <param name="msg">The message to handle.</param> private void Handle(VehicleExitRegistered msg) { _exitTimestamp = msg.Timestamp; // check speed limit int speedingViolation = DetermineSpeedingViolation(); // log exit if (speedingViolation > 0) { FluentConsole.Red.Line($"{_color} {_brand} '{msg.VehicleId}' exited at {msg.Timestamp.ToString("HH:mm:ss.ffffff")}" + $"(avg speed {_avgSpeedInKmh} km/h - {speedingViolation} km/h over speed-limit (after correction))"); // register speeding violation _cjcaActor = Context.ActorSelection("/user/cjcaactor"); var rsv = new RegisterSpeedingViolation(_vehicleId, _roadInfo.RoadId, speedingViolation); _cjcaActor.Tell(rsv); } else { FluentConsole.Yellow.Line($"{_color} {_brand} '{msg.VehicleId}' exited at {msg.Timestamp.ToString("HH:mm:ss.ffffff")}" + $"(avg speed {_avgSpeedInKmh} km/h)"); } Self.Tell(new Shutdown()); }
private void Handle(VehicleExitRegistered message) { Console.WriteLine($"Zaregistrován výjezd vozu z poznávací značkou {message.Registration}. Čas {message.ExitTime}"); _exitTime = message.ExitTime; int totalSpeed = CalculateSpeed(); if (totalSpeed > 80) { var prosecutorActor = Context.ActorSelection("/user/prosecutor"); prosecutorActor.Tell(new RegisterSpeedingViolation(_registration, _color, _brand, totalSpeed)); Context.Self.Tell(new Shutdown()); } }
/// <summary> /// Handle VehicleExitRegistered message. /// </summary> /// <param name="msg">The message to handle.</param> private void Handle(VehicleExitRegistered msg) { var vehicleActor = Context.ActorSelection($"/user/traffic-control/*/vehicle-{msg.VehicleId}"); vehicleActor.Tell(msg); }
/// <summary> /// Handle VehiclePassed message /// </summary> /// <param name="msg">The message to handle.</param> private void Handle(VehiclePassed msg) { VehicleExitRegistered vehicleExitRegistered = new VehicleExitRegistered(msg.VehicleId, msg.Timestamp); _trafficControlActor.Tell(vehicleExitRegistered); }