public ViewFactory()
        {
            _prototypes = new Dictionary <string, ViewProvider>();

            _prototypes["Startlist_1stRun_StartnumberAscending"] = new FirstRunStartListViewProvider();
            _prototypes["Startlist_1stRun_Points_0"]             = new DSVFirstRunStartListViewProvider(0);
            _prototypes["Startlist_1stRun_Points_15"]            = new DSVFirstRunStartListViewProvider(15);
            _prototypes["Startlist_1stRun_Points_30"]            = new DSVFirstRunStartListViewProvider(30);

            _prototypes["Startlist_2nd_StartnumberAscending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Ascending);
            //_prototypes["Startlist_2nd_StartnumberAscending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Ascending);
            _prototypes["Startlist_2nd_StartnumberDescending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Descending);
            //_prototypes["Startlist_2nd_StartnumberDescending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Descending);
            _prototypes["Startlist_2nd_PreviousRun_0_OnlyWithResults"]      = new BasedOnResultsFirstRunStartListViewProvider(0, false);
            _prototypes["Startlist_2nd_PreviousRun_0_AlsoWithoutResults"]   = new BasedOnResultsFirstRunStartListViewProvider(0, true);
            _prototypes["Startlist_2nd_PreviousRun_15_OnlyWithResults"]     = new BasedOnResultsFirstRunStartListViewProvider(15, false);
            _prototypes["Startlist_2nd_PreviousRun_15_AlsoWithoutResults"]  = new BasedOnResultsFirstRunStartListViewProvider(15, true);
            _prototypes["Startlist_2nd_PreviousRun_30_OnlyWithResults"]     = new BasedOnResultsFirstRunStartListViewProvider(30, false);
            _prototypes["Startlist_2nd_PreviousRun_30_AlsoWithoutResults"]  = new BasedOnResultsFirstRunStartListViewProvider(30, true);
            _prototypes["Startlist_2nd_PreviousRun_all_OnlyWithResults"]    = new BasedOnResultsFirstRunStartListViewProvider(int.MaxValue, false);
            _prototypes["Startlist_2nd_PreviousRun_all_AlsoWithoutResults"] = new BasedOnResultsFirstRunStartListViewProvider(int.MaxValue, true);

            _prototypes["RaceResult_BestOfTwo"]          = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.BestRun);
            _prototypes["RaceResult_Sum"]                = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.Sum);
            _prototypes["RaceResult_SumBest2"]           = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.SumBest2);
            _prototypes["RaceResult_SumDSVPointsSchool"] = new DSVSchoolRaceResultViewProvider();

            _prototypes["RaceRunResult"] = new RaceRunResultViewProvider();
        }
        public void ConfigureRace(Race race)
        {
            for (int i = 0; i < race.GetMaxRun(); i++)
            {
                RaceRun rr = race.GetRun(i);

                StartListViewProvider slVP = GetStartlistViewProvider(rr);
                rr.SetStartListProvider(slVP);

                RaceRunResultViewProvider rrVP = GetRaceRunResultViewProvider(rr);
                rr.SetResultViewProvider(rrVP);
            }

            RaceResultViewProvider raceVP = GetRaceResultViewProvider(race);

            race.SetResultViewProvider(raceVP);
        }
        string getResultList(RaceRun raceRun, string grouping)
        {
            string output = "";

            Application.Current.Dispatcher.Invoke(() =>
            {
                ViewConfigurator viewConfigurator = new ViewConfigurator(raceRun.GetRace());
                RaceRunResultViewProvider vp      = viewConfigurator.GetRaceRunResultViewProvider(raceRun);
                if (grouping != null)
                {
                    vp.ChangeGrouping(grouping);
                }

                output = JsonConversion.ConvertRunResults(vp.GetView());
            });

            return(output);
        }
        public RaceRunResultViewProvider GetRaceRunResultViewProvider(RaceRun rr, string context = null)
        {
            ViewFactory factory = Singleton <ViewFactory> .Instance;

            RaceRunResultViewProvider rVP;

            rVP = factory.Create <RaceRunResultViewProvider>("RaceRunResult");

            if (rVP == null)
            {
                rVP = new RaceRunResultViewProvider();
            }

            rVP.SetDefaultGrouping(_config.DefaultGrouping);

            rVP.Init(rr, _dataModel);

            return(rVP);
        }
예제 #5
0
        public void RaceRun_IsComplete_ParticipantNotInStartlist()
        {
            TestDataGenerator tg = new TestDataGenerator();

            var race = tg.Model.GetRace(0);
            var run1 = race.GetRun(0);
            var run2 = race.GetRun(1);

            var frslVP = new FirstRunStartListViewProvider();

            frslVP.Init(race.GetParticipants());
            run1.SetStartListProvider(frslVP);

            var rVP = new RaceRunResultViewProvider();

            rVP.Init(run1, tg.Model);
            run1.SetResultViewProvider(rVP);

            var srslVP = new BasedOnResultsFirstRunStartListViewProvider(0, false);

            srslVP.Init(run1);
            run2.SetStartListProvider(srslVP);

            tg.createRaceParticipants(2);

            Assert.IsFalse(run1.IsComplete);
            //Assert.IsFalse(run2.IsComplete);

            // Run 1
            run1.SetRunTime(race.GetParticipant(1), new TimeSpan(0, 0, 0, 10, 0));
            Assert.IsFalse(run1.IsComplete);
            run1.SetResultCode(race.GetParticipant(2), RunResult.EResultCode.NaS);
            Assert.IsTrue(run1.IsComplete);

            // Run 2
            Assert.IsFalse(RaceRunUtil.IsComplete(run2));
            Assert.IsFalse(run2.IsComplete);
            run2.SetRunTime(race.GetParticipant(1), new TimeSpan(0, 0, 0, 10, 0));
            Assert.IsTrue(run2.IsComplete);
        }