protected override void DoHandle(CargoHandledMessage message) { HandlingEventType lastKnownEvent = (HandlingEventType)message.LastKnownEventType; HandlingEventType?nextExpectedEvent = null; if (message.NextExpectedEventType != null) { nextExpectedEvent = (HandlingEventType)message.NextExpectedEventType; } ReportingDataContext context = new ReportingDataContext(); Cargo cargo = context.Cargos.First(x => x.TrackingId == message.TrackingId); cargo.UpdateHistory( nextExpectedEvent, message.NextExpectedLocation, lastKnownEvent, message.LastKnownLocation, (RoutingStatus)message.RoutingStatus, (TransportStatus)message.TransportStatus, message.EstimatedTimeOfArrival, message.IsUnloaded, message.IsMisdirected, message.CalculatedAt); context.SubmitChanges(); }
protected override void DoHandle(CargoRegisteredMessage message) { Cargo cargo = new Cargo(message.TrackingId, message.Origin, message.Destination, message.ArrivalDeadline); ReportingDataContext context = new ReportingDataContext(); context.Cargos.InsertOnSubmit(cargo); context.SubmitChanges(); }
protected override void DoHandle(CargoAssignedToRouteMessage message) { ReportingDataContext context = new ReportingDataContext(); Cargo cargo = context.Cargos.First(x => x.TrackingId == message.TrackingId); cargo.RouteSpecification = message.Legs; context.SubmitChanges(); }
protected override void DoHandle(CargoDestinationChangedMessage message) { ReportingDataContext context = new ReportingDataContext(); Cargo cargo = context.Cargos.First(x => x.TrackingId == message.TrackingId); cargo.UpdateRouteSpecification(message.Origin, message.Destination, message.ArrivalDeadline); context.SubmitChanges(); }