internal void SaveHudPositions(HudLayoutContract hudTable) { if (hudTable == null) { return; } LogProvider.Log.Info($"Saving hud positions '{hudTable.LayoutName}' '{hudTable.TableType}' '{hudTable.GameType}' [{hudTable.PokerSite}]"); HudNamedPipeBindingService.RaiseSaveHudLayout(hudTable); }
private void SaveHUDPositions(HudDragCanvas dgCanvas, ReplayerViewModel viewModel) { var layout = hudLayoutsService.GetLayout(viewModel.LayoutName); if (layout == null) { LogProvider.Log.Warn($"Failed to save HUD positions. Could not find layout '{viewModel.LayoutName}'"); return; } try { var hudLayoutContract = new HudLayoutContract { LayoutName = viewModel.LayoutName, GameType = EnumGameType.CashHoldem, PokerSite = ReplayerPokerSite, TableType = layout.TableType, HudPositions = new List <HudPositionContract>() }; // clone is needed var toolViewModels = dgCanvas.Children.OfType <FrameworkElement>() .Where(x => x != null && (x.DataContext is IHudNonPopupToolViewModel)) .Select(x => x.DataContext as HudBaseToolViewModel) .Concat(EmptySeats .SelectMany(x => x.Tools) .OfType <IHudNonPopupToolViewModel>() .Cast <HudBaseToolViewModel>()); foreach (var toolViewModel in toolViewModels) { var seatNumber = toolViewModel.Parent != null ? toolViewModel.Parent.Seat : 1; var xPos = toolViewModel.OffsetX ?? toolViewModel.Position.X; var yPos = toolViewModel.OffsetY ?? toolViewModel.Position.Y; hudLayoutContract.HudPositions.Add(new HudPositionContract { Id = toolViewModel.Id, Position = new Point(xPos, yPos), SeatNumber = seatNumber }); } hudLayoutsService.Save(hudLayoutContract); } catch (Exception e) { LogProvider.Log.Error(this, "Failed to save HUD positions in replayer.", e); } }
public void SaveHudLayout(HudLayoutContract hudLayoutContract) { var hudLayoutsService = ServiceLocator.Current.GetInstance <IHudLayoutsService>(); hudLayoutsService.Save(hudLayoutContract); }
private void SaveHudPositions_Click(object sender, RadRoutedEventArgs e) { try { if (Layout == null) { return; } var trackMeterPositionX = trackerConditionsMeterPositionOffset.X != 0 ? trackerConditionsMeterPositionOffset.X : (trackerConditionsMeterPosition.HasValue ? trackerConditionsMeterPosition.Value.X : 0); var trackMeterPositionY = trackerConditionsMeterPositionOffset.Y != 0 ? trackerConditionsMeterPositionOffset.Y : (trackerConditionsMeterPosition.HasValue ? trackerConditionsMeterPosition.Value.Y : 0); var hudLayoutContract = new HudLayoutContract { LayoutName = Layout.LayoutName, GameType = Layout.GameType, PokerSite = Layout.PokerSite, TableType = Layout.TableType, HudPositions = new List <HudPositionContract>(), TrackMeterPosition = new Point(trackMeterPositionX, trackMeterPositionY) }; // clone is needed var toolViewModels = dgCanvas.Children.OfType <FrameworkElement>() .Where(x => x != null && (x.DataContext is IHudNonPopupToolViewModel)) .Select(x => (x.DataContext as HudBaseToolViewModel)) .ToList(); var toolsIds = new HashSet <Guid>(); var seats = new HashSet <int>(); foreach (var toolViewModel in toolViewModels) { if (!toolsIds.Contains(toolViewModel.Id)) { toolsIds.Add(toolViewModel.Id); } var seatNumber = toolViewModel.Parent != null ? toolViewModel.Parent.Seat : 1; if (!seats.Contains(seatNumber)) { seats.Add(seatNumber); } var position = hudPanelService.GetOffsetPosition(toolViewModel, ViewModel); hudLayoutContract.HudPositions.Add(new HudPositionContract { Id = toolViewModel.Id, Position = new Point(position.Item1, position.Item2), SeatNumber = seatNumber }); } var emptySeats = Enumerable.Range(1, (int)Layout.TableType).Except(seats); foreach (var seat in emptySeats) { foreach (var toolId in toolsIds) { var toolkey = new HudWindowViewModel.HudToolKey { Id = toolId, Seat = seat }; if (!ViewModel.PanelOffsets.ContainsKey(toolkey)) { continue; } var panelOffset = ViewModel.PanelOffsets[toolkey]; if (panelOffset.X != 0 && panelOffset.Y != 0) { hudLayoutContract.HudPositions.Add(new HudPositionContract { Id = toolId, Position = new Point(panelOffset.X, panelOffset.Y), SeatNumber = seat }); } } } ViewModel?.SaveHudPositions(hudLayoutContract); } catch (Exception ex) { LogProvider.Log.Error(this, ex); } }