Exemple #1
0
        /// <summary>
        /// Performs all the actions every HTE
        /// </summary>
        public void PerformAllActions()
        {
            // Adding new guests
            foreach (var item in ArivingGuests)
            {
                ((Guest)item).RegisterAs();
                item.SetPath(GetArea(typeof(Reception)));
                HotelMovables.Add(item);
            }

            ArivingGuests.Clear();

            // Performing all actions
            lock (HotelMovables)
            {
                foreach (IMovable item in HotelMovables)
                {
                    if (!(item is null))
                    {
                        item.PerformAction();
                    }
                }
            }

            // Removing guests that have checked out
            foreach (var item in LeavingGuests)
            {
                HotelMovables.Remove(item);
            }

            LeavingGuests.Clear();
        }
Exemple #2
0
        /// <summary>
        /// Handles checkin events and add the ariving guest to the list
        /// </summary>
        /// <param name="evt">The given event</param>
        public void Notify(HotelEvent evt)
        {
            if (evt.EventType.Equals(HotelEventType.CHECK_IN))
            {
                string name    = string.Empty;
                string request = string.Empty;
                int    requestInt;
                int    id = 0;

                if (!(evt.Data is null))
                {
                    foreach (var DataSet in evt.Data)
                    {
                        if (DataSet.Key.Contains("Gast"))
                        {
                            id = int.Parse(Regex.Match(DataSet.Key, @"\d+").Value);
                        }
                    }

                    name    = evt.Data.FirstOrDefault().Key;
                    request = evt.Data.FirstOrDefault().Value;

                    requestInt = int.Parse(Regex.Match(request, @"\d+").Value);
                }
                else
                {
                    // Kill test events
                    return;
                }

                Guest guest = new Guest(this, name, requestInt, new Point(0, HotelHeight), id)
                {
                    Area = HotelAreas.Find(X => X.Position == new Point(0, HotelHeight))
                };

                guest.Area = HotelAreas.Find(X => X.Position == guest.Position);


                guest.Hotel = this;



                ArivingGuests.Add(guest);
            }