/// <summary>
        /// Hotel is going to be notified because there can only be one item registered in the listener
        /// Hotel will "notify" humans and locationtypes
        /// </summary>
        /// <param name="evt"></param>
        public void Notify(HotelEvent evt)
        {
            // Sometimes we have more destinations
            List <LocationType> destination = new List <LocationType>();
            // The visitor we have found from the list
            Visitor visitor = null;

            // We search on basis off the event enumeration
            switch (evt.EventType)
            {
            // When visitor wants to checkin
            case HotelEventType.CHECK_IN:
                visitor = CreateVisitor(evt.Data);
                // Giving visitor a location
                visitor.GetCurrentEvent(evt);
                // Visitor mag starten
                visitor.PathToLocationType();
                break;

            case HotelEventType.GOTO_CINEMA:
            case HotelEventType.GOTO_FITNESS:
            case HotelEventType.CHECK_OUT:
                visitor = lobby.SearchVisitor(evt.Data);
                if (visitor != null)
                {
                    visitor.GetCurrentEvent(evt);
                    visitor.PathToLocationType();
                }
                break;

            // When cinema is going to start
            case HotelEventType.START_CINEMA:
                List <LocationType> cinema = new List <LocationType>();
                foreach (var item in Facilities)
                {
                    if (item is Cinema)
                    {
                        cinema.Add(item);
                    }
                }
                foreach (var item in cinema)
                {
                    foreach (var cinemaEvt in evt.Data)
                    {
                        if (cinemaEvt.Value == item.ID.ToString())
                        {
                            (item as Cinema).StartMovie();
                        }
                    }
                }
                break;

            // When someone wants to go to a restaurant to eat
            case HotelEventType.NEED_FOOD:
                visitor = lobby.SearchVisitor(evt.Data);
                if (visitor != null)
                {
                    //Console.WriteLine("eten" + visitor.ID);

                    visitor.GetCurrentEvent(evt);
                    visitor.PathToLocationType();
                }
                break;

            // When there is an evacuation
            case HotelEventType.EVACUATE:
                foreach (var item in lobby.Visitors)
                {
                    item.GetCurrentEvent(evt);
                    item.PathToLocationType();
                }
                foreach (var item in lobby.Cleaners)
                {
                    item.GetCurrentEvent(evt);
                    item.CreateGraph(lobby);
                    item.SetWalkingStatus();
                }
                elevator.EmergencyShutdown();
                break;

            // When there is a room to be cleaned
            case HotelEventType.CLEANING_EMERGENCY:
                lobby.AddDirtyRoom(evt.Data);
                break;

            default:
                break;
            }
        }