/// <summary> /// Needs to be called to fill viewmodel with data /// </summary> /// <param name="statisticsSet"> /// Provides underlying data /// </param> /// <returns> /// Itself to enable fluent interface /// </returns> public IDetailedStatisticsViewModel InitializeWith(IActionSequenceStatisticsSet statisticsSet) { ActionSequenceStatisticsSet = statisticsSet; StatisticsDescription = _detailedStatisticsDescriber.Describe(statisticsSet.PlayerName, statisticsSet.ActionSequence, statisticsSet.Street, statisticsSet.InPosition); StatisticsHint = _detailedStatisticsDescriber.Hint(statisticsSet.PlayerName, statisticsSet.ActionSequence, statisticsSet.InPosition); return(CreateTableFor(statisticsSet)); }
protected override IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet) { var betRow = new StatisticsTableRowViewModel("Bet", statisticsSet.ActionSequenceStatistics.Last().Percentages, "%"); var countRow = new StatisticsTableRowViewModel("Count", statisticsSet.SumOfCountsByColumn, string.Empty); Rows = new List <IStatisticsTableRowViewModel>(new[] { betRow, countRow }); return(this); }
public void InitializeWith_Always_InitializesViewModelHistoryWithCurrentViewModel() { IActionSequenceStatisticsSet statisticsSetStub = _stub.Setup <IActionSequenceStatisticsSet>() .Get(s => s.Street).Returns(Streets.PreFlop) .Out; _sut.InitializeWith(statisticsSetStub); _sut.ViewModelHistory .ShouldHaveCount(1) .First().ShouldBe(_sut.CurrentViewModel); }
protected override IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet) { var foldRow = new StatisticsTableRowViewModel("Fold", statisticsSet.ActionSequenceStatistics.First().Percentages, "%"); var callRow = new StatisticsTableRowViewModel("Call", statisticsSet.ActionSequenceStatistics.ElementAt(1).Percentages, "%"); var raiseRow = new StatisticsTableRowViewModel("Raise", statisticsSet.ActionSequenceStatistics.Last().Percentages, "%"); var countRow = new StatisticsTableRowViewModel("Count", statisticsSet.SumOfCountsByColumn, string.Empty); Rows = new List <IStatisticsTableRowViewModel>(new[] { foldRow, callRow, raiseRow, countRow }); return(this); }
public void InitializeWith_StatisticsSet_InitializesNewViewModelWithStatisticsSet() { IActionSequenceStatisticsSet statisticsSetStub = _stub.Setup <IActionSequenceStatisticsSet>() .Get(s => s.Street).Returns(Streets.PreFlop) .Out; var preFlopStatisticsViewModelMock = new Mock <IDetailedPreFlopStatisticsViewModel>(); _sut = new DetailedStatisticsAnalyzerViewModel( new Constructor <IDetailedPreFlopStatisticsViewModel>(() => preFlopStatisticsViewModelMock.Object), _stub.Out <IConstructor <IDetailedPostFlopHeroActsStatisticsViewModel> >(), _stub.Out <IConstructor <IDetailedPostFlopHeroReactsStatisticsViewModel> >(), _repositoryBrowserVM_Mock.Object); _sut.InitializeWith(statisticsSetStub); preFlopStatisticsViewModelMock.Verify(vm => vm.InitializeWith(statisticsSetStub)); }
public IDetailedStatisticsAnalyzerViewModel InitializeWith(IActionSequenceStatisticsSet actionSequenceStatisticsSet) { ViewModelHistory.Clear(); Predicate <IActionSequenceStatisticsSet> isPreflop = s => s.Street == Streets.PreFlop; Predicate <IActionSequenceStatisticsSet> isHeroActs = s => s.ActionSequence == ActionSequences.HeroActs; Predicate <IActionSequenceStatisticsSet> isOppB = s => s.ActionSequence == ActionSequences.OppB; Predicate <IActionSequenceStatisticsSet> isHeroXOppB = s => s.ActionSequence == ActionSequences.HeroXOppB; IDetailedStatisticsViewModel detailedStatisticsViewModel = null; actionSequenceStatisticsSet.Match() .With(isPreflop, _ => detailedStatisticsViewModel = _detailedPreFlopStatisticsViewModelMake.New) .With(isHeroActs, _ => detailedStatisticsViewModel = _detailedPostFlopActionStatisticsViewModelMake.New) .With(isOppB, _ => detailedStatisticsViewModel = _detailedPostFlopReactionStatisticsViewModelMake.New) .With(isHeroXOppB, _ => detailedStatisticsViewModel = _detailedPostFlopReactionStatisticsViewModelMake.New) .Do(); AddViewModel(detailedStatisticsViewModel); detailedStatisticsViewModel.InitializeWith(actionSequenceStatisticsSet); return(this); }
public IStatisticsSetSummaryViewModel UpdateWith(IActionSequenceStatisticsSet statisticsSet) { _statisticsSet = statisticsSet; if (statisticsSet.ActionSequenceStatistics.Count() < 1) { throw new ArgumentException("ActionSequenceStatistics cannot have count zero", "statisticsSet"); } for (int row = 0; row < statisticsSet.ActionSequenceStatistics.Count(); row++) { var statistic = statisticsSet.ActionSequenceStatistics.ElementAt(row); if (Rows.Count < row + 1) { Rows.Add(new StatisticsSetSummaryRowViewModel(statistic._actionSequence, new BarGraphViewModel())); } Rows[row].UpdateWith(statisticsSet.CumulativePercentagesByRow[row], statistic.Percentages); } return(this); }
protected override IDetailedStatisticsViewModel CreateTableFor( IActionSequenceStatisticsSet statisticsSet) { return(this); }
protected abstract IDetailedStatisticsViewModel CreateTableFor(IActionSequenceStatisticsSet statisticsSet);