public ITableOverlaySettingsViewModel RevertTo(ITableOverlaySettingsViewModel os)
        {
            ShowPreFlop     = os.ShowPreFlop;
            ShowFlop        = os.ShowFlop;
            ShowTurn        = os.ShowTurn;
            ShowRiver       = os.ShowRiver;
            ShowHarringtonM = os.ShowHarringtonM;

            StatisticsPanelWidth  = os.StatisticsPanelWidth;
            StatisticsPanelHeight = os.StatisticsPanelHeight;

            Background.Color = os.Background.Color;
            OutOfPositionForeground.Color = os.OutOfPositionForeground.Color;
            InPositionForeground.Color    = os.InPositionForeground.Color;

            PreferredSeat = os.PreferredSeat;

            RevertPositions(PlayerStatisticsPanelPositions, os.PlayerStatisticsPanelPositions);
            RevertPositions(HarringtonMPositions, os.HarringtonMPositions);
            RevertPositions(HoleCardsPositions, os.HoleCardsPositions);

            RevertPosition(BoardPosition, os.BoardPosition);

            RevertPosition(OverlayDetailsPosition, os.OverlayDetailsPosition);
            OverlayDetailsWidth  = os.OverlayDetailsWidth;
            OverlayDetailsHeight = os.OverlayDetailsHeight;

            return(this);
        }
Пример #2
0
        public IPlayerOverlayViewModel InitializeWith(ITableOverlaySettingsViewModel settings, int seatNumber)
        {
            Settings = settings;

            Position = Settings.PlayerStatisticsPanelPositions[seatNumber];

            PlayerStatus.InitializeWith(Settings.HoleCardsPositions[seatNumber], Settings.HarringtonMPositions[seatNumber]);
            return(this);
        }
        public IOverlaySettingsAidViewModel InitializeWith(ITableOverlaySettingsViewModel overlaySettings)
        {
            Board
            .InitializeWith(overlaySettings.BoardPosition)
            .UpdateWith("Ts Js Qs Ks As");
            Board.AllowDragging = true;

            SetupHoleCards(overlaySettings);

            return(this);
        }
        void InitializeOverlaySettings(ITableOverlaySettingsViewModel overlaySettings)
        {
            OverlaySettings = overlaySettings;

            Board.InitializeWith(OverlaySettings.BoardPosition);
            OverlaySettingsAid.InitializeWith(OverlaySettings);
            for (int seat = 0; seat < PlayerOverlays.Count; seat++)
            {
                PlayerOverlays[seat].InitializeWith(OverlaySettings, seat);
            }

            OverlaySettings.PreferredSeatChanged += () => {
                UpdatePlayerOverlayStatuses();
                UpdatePlayerStatistics();
            };
        }
Пример #5
0
        public static IUnityContainer ConfigureTableOverlayDependencies()
        {
            var layoutManager = new LayoutManager(new LayoutXDocumentHandler());
            ITableOverlaySettingsViewModel overlaySettings = layoutManager.Load("PokerStars", 6);

            var container = new UnityContainer()
                            .RegisterType <IDispatcherTimer, DispatcherTimerAdapter>()
                            .RegisterType <IPositionViewModel, PositionViewModel>()
                            .RegisterInstance(overlaySettings)
                            .RegisterType <IHarringtonMViewModel, HarringtonMViewModel>()
                            .RegisterType <IHoleCardsViewModel, HoleCardsViewModel>()
                            .RegisterType <IOverlayHoleCardsViewModel, OverlayHoleCardsViewModel>()
                            .RegisterType <IBoardViewModel, BoardViewModel>()
                            .RegisterType <IOverlayBoardViewModel, OverlayBoardViewModel>()
                            .RegisterType <IPlayerStatusViewModel, PlayerStatusViewModel>()
                            .RegisterType <IPlayerOverlayViewModel, PlayerOverlayViewModel>()
                            .RegisterInstance(new SeatMapper().InitializeWith(6).UpdateWith(3))
                            .RegisterInstance <IGameHistoryViewModel>(new GameHistoryDesignModel());

            container
            .RegisterConstructor(() => container.Resolve <IOverlayHoleCardsViewModel>())
            .RegisterType <IOverlaySettingsAidViewModel, OverlaySettingsAidViewModel>();

            IPlayerOverlayViewModel[] playerOverlays = GetPlayerOverlays(container);

            var pokerTableStatisticsViewModel = GetPokerTableStatisticsViewModel(6);

            container.RegisterInstance(pokerTableStatisticsViewModel);

            var tableOverlay = container.Resolve <TableOverlayViewModel>();

            tableOverlay
            .InitializeWith(
                container.Resolve <ISeatMapper>(),
                container.Resolve <ITableOverlaySettingsViewModel>(),
                container.Resolve <IGameHistoryViewModel>(),
                container.Resolve <IPokerTableStatisticsViewModel>(), string.Empty,
                4)
            .UpdateWith(GetPokerPlayers(), "As Kh Qh");

            container.RegisterInstance <ITableOverlayViewModel>(tableOverlay);

            overlaySettings.SaveChanges += () => layoutManager.Save(overlaySettings, "PokerStars");
            overlaySettings.UndoChanges += revertTo => revertTo(layoutManager.Load("PokerStars", 6));

            return(container);
        }
        void SetupHoleCards(ITableOverlaySettingsViewModel overlaySettings)
        {
            HoleCards = new List <IOverlayHoleCardsViewModel>();

            foreach (var seatNumber in 0.To(overlaySettings.TotalSeats - 1))
            {
                var rank = seatNumber.Match()
                           .With(n => n + 1 == 1, _ => "A")
                           .With(n => n + 1 == 10, _ => "T")
                           .Else(n => (n + 1).ToString())
                           .Do();

                var holecards = _holeCardsViewModelMake.New
                                .InitializeWith(overlaySettings.HoleCardsPositions[seatNumber]);
                holecards
                .UpdateWith(string.Format("{0}h {0}c", rank));
                holecards.AllowDragging = true;

                HoleCards.Add(holecards);
            }
        }
        public ITableOverlayViewModel InitializeWith(
            ISeatMapper seatMapper,
            ITableOverlaySettingsViewModel overlaySettings,
            IGameHistoryViewModel gameHistory,
            IPokerTableStatisticsViewModel pokerTableStatisticsViewModel,
            string heroName,
            int showHoleCardsDuration)
        {
            _seatMapper = seatMapper;
            GameHistory = gameHistory;
            PokerTableStatisticsViewModel = pokerTableStatisticsViewModel;
            _heroName = heroName;
            _showHoleCardsDuration = showHoleCardsDuration;

            CreatePlayerOverlays(overlaySettings.TotalSeats);

            InitializeOverlaySettings(overlaySettings);

            RegisterEvents();

            return(this);
        }
Пример #8
0
        public ITableOverlayManager InitializeWith(
            IGameHistoryViewModel gameHistory,
            IPokerTableStatisticsViewModel pokerTableStatistics,
            int showHoleCardsDuration,
            IConvertedPokerHand firstHand)
        {
            HeroName = firstHand.HeroName;

            _seatMapper.InitializeWith(firstHand.TotalSeats);

            ITableOverlaySettingsViewModel overlaySettings = SetupOverlaySettings(firstHand);

            _tableOverlay.InitializeWith(_seatMapper, overlaySettings, gameHistory, pokerTableStatistics, firstHand.HeroName, showHoleCardsDuration);

            _tableOverlayWindow.DataContext = _tableOverlay;
            _tableOverlayWindow.Show();

            var watchTableTimer = new DispatcherTimerAdapter {
                Interval = TimeSpan.FromMilliseconds(100)
            };
            var waitThenTryToFindTableAgainTimer = new DispatcherTimerAdapter {
                Interval = TimeSpan.FromMilliseconds(3000)
            };

            _overlayToTableAttacher.InitializeWith(_tableOverlayWindow,
                                                   watchTableTimer,
                                                   waitThenTryToFindTableAgainTimer,
                                                   _pokerRoomInfoLocator.GetPokerRoomInfoFor(firstHand.Site),
                                                   firstHand.TableName)
            .Activate();

            UpdateTableOverlay(firstHand);
            UpdateSeatMapper(firstHand);
            UpdateOverlayToTableAttacher(firstHand);

            RegisterEvents();

            return(this);
        }
Пример #9
0
        public ILayoutManager Save(ITableOverlaySettingsViewModel overlaySettings, string pokerSite)
        {
            var totalSeats = overlaySettings.TotalSeats;

            _xDocumentHandler.PokerSite = pokerSite;
            var xmlDoc = _xDocumentHandler.Load();

            var xmlLayout = xmlDoc.Descendants(Layout)
                            .FirstOrDefault(l => l.Attributes().Any(att => att.Name == TotalSeats && att.Value == totalSeats.ToString()));

            if (xmlLayout != null)
            {
                // Layout exists -> replace
                xmlLayout.ReplaceWith(CreateXElementFor(overlaySettings));
            }
            else
            {
                // Layout not saved before
                xmlDoc.Element(Layouts).Add(CreateXElementFor(overlaySettings));
            }

            _xDocumentHandler.Save(xmlDoc);
            return(this);
        }
Пример #10
0
 public static XElement CreateXElementFor(ITableOverlaySettingsViewModel os)
 {
     return
         (new XElement(Layout,
                       new XAttribute(TotalSeats, os.TotalSeats),
                       new XElement(ShowPreFlop, os.ShowPreFlop),
                       new XElement(ShowFlop, os.ShowFlop),
                       new XElement(ShowTurn, os.ShowTurn),
                       new XElement(ShowRiver, os.ShowRiver),
                       new XElement(ShowHarringtonM, os.ShowHarringtonM),
                       new XElement(StatisticsPanelWidth, os.StatisticsPanelWidth),
                       new XElement(StatisticsPanelHeight, os.StatisticsPanelHeight),
                       new XElement(Background, os.Background),
                       new XElement(OutOfPositionForeground, os.OutOfPositionForeground),
                       new XElement(InPositionForeground, os.InPositionForeground),
                       new XElement(PreferredSeat, os.PreferredSeat),
                       new XElement(BoardPosition, new XElement(Left, os.BoardPosition.Left), new XElement(Top, os.BoardPosition.Top)),
                       Utils.XElementForPositions(PlayerStatisticsPanelPositions, os.PlayerStatisticsPanelPositions),
                       Utils.XElementForPositions(HarringtonMPositions, os.HarringtonMPositions),
                       Utils.XElementForPositions(HoleCardsPositions, os.HoleCardsPositions),
                       new XElement(OverlayDetailsPosition, new XElement(Left, os.OverlayDetailsPosition.Left), new XElement(Top, os.OverlayDetailsPosition.Top)),
                       new XElement(OverlayDetailsWidth, os.OverlayDetailsWidth),
                       new XElement(OverlayDetailsHeight, os.OverlayDetailsHeight)));
 }
        public PlayerOverlayDesignModel(int seatNumber, IPlayerStatusViewModel playerStatus, ITableOverlaySettingsViewModel overlaySettings)
            : base(playerStatus)
        {
            InitializeWith(overlaySettings, seatNumber);

            PlayerStatistics = new PlayerStatisticsDesignModel(seatNumber);
        }
 public PlayerOverlayDesignModel(IPlayerStatusViewModel playerStatus, ITableOverlaySettingsViewModel overlaySettings)
     : this(0, playerStatus, overlaySettings)
 {
 }