Exemple #1
0
        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);
            }
        }
Exemple #3
0
        public void SaveHudLayout(HudLayoutContract hudLayoutContract)
        {
            var hudLayoutsService = ServiceLocator.Current.GetInstance <IHudLayoutsService>();

            hudLayoutsService.Save(hudLayoutContract);
        }
Exemple #4
0
        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);
            }
        }