Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="zoneHolder"></param>
        public void ExecuteRoomAction(ZoneHolder zoneHolder)
        {
            ZoneViewModel zone = GetZone(zoneHolder.ZoneId);
            var           room = zone?.AllRooms.FirstOrDefault(r => r.RoomId == zoneHolder.RoomId);

            if (room != null && room.AdditionalRoomParameters.ActionsToExecuteOnRoomEntry.Any())
            {
                foreach (var action in room.AdditionalRoomParameters.ActionsToExecuteOnRoomEntry)
                {
                    action.Execute(zoneHolder.RootModel, ActionExecutionContext.Empty);
                }

                zoneHolder.RootModel.PushCommandToConveyor(FlushOutputQueueCommand.Instance);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="zoneHolder"></param>
        public void UpdateControl(ZoneHolder zoneHolder)
        {
            if (_mapControl?.ViewModel != null && _mapControl.ViewModelUid == zoneHolder.Uid)
            {
                if (_mapControl.ViewModel.Id != zoneHolder.ZoneId)
                {
                    var zoneViewModel = GetZone(zoneHolder.ZoneId);
                    var room          = zoneViewModel.AllRooms.FirstOrDefault(r => r.RoomId == zoneHolder.RoomId);

                    _mapControl.UpdateCurrentZone(zoneViewModel, room);
                }
                else
                {
                    _mapControl.UpdateCurrentRoom(zoneHolder.RoomId);
                }
            }
        }