public override void HandleMessage(string incomingMessage)
        {
            var incomingEvent = JsonConvert.DeserializeObject <Event>(incomingMessage);

            if (incomingEvent.Type.Equals(EventType.VisitorsUnboarded))
            {
                var visitors = JsonConvert.DeserializeObject <List <Guid> >(incomingEvent.Payload.First(item => item.Key.Equals("Visitors")).Value);
                var dateTime = JsonConvert.DeserializeObject <DateTime>(incomingEvent.Payload.First(item => item.Key.Equals("DateTime")).Value);
                foreach (var visitorGuid in visitors)
                {
                    var visitor = visitorControl.GetVisitor(visitorGuid);
                    visitor.TargetLocation = null;
                    visitorControl.UpdateVisitorAvailabilityAt(visitorGuid, dateTime);
                }
            }
            else if (incomingEvent.Type.Equals(EventType.WatchingFairyTale) && incomingEvent.Payload.TryGetValue("Visitor", out var visitorGuid) &&
                     incomingEvent.Payload.TryGetValue("EndDateTime", out var endDateTime))
            {
                var visitorGuidObject = Guid.Parse(visitorGuid);
                visitorControl.RemoveVisitorTargetLocation(visitorGuidObject);
                visitorControl.UpdateVisitorAvailabilityAt(visitorGuidObject, DateTime.Parse(endDateTime));
            }
            else if (incomingEvent.Type.Equals(EventType.WaitingForOrder) &&
                     incomingEvent.Payload.TryGetValue("Visitor", out var waitingForOrderVisitorGuid) &&
                     incomingEvent.Payload.TryGetValue("Ticket", out var ticket))
            {
                visitorControl.AddVisitorWaitingForOrder(ticket, Guid.Parse(waitingForOrderVisitorGuid));
            }
            else if (incomingEvent.Type.Equals(EventType.OrderReady) && incomingEvent.Payload.TryGetValue("Order", out var order))
            {
                visitorControl.NotifyOrderReady(order);
            }
        }
Beispiel #2
0
 public ActionResult <VisitorDto> GetVisitors(string guid)
 {
     return(visitorControl.GetVisitor(Guid.Parse(guid)).ToDto());
 }