/// <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); } }
/// <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); } } }