private void CmbTemplate_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (cmbTemplate.SelectedValue is CBItem selected)
            {
                if (selected.Value is string configName)
                {
                    RaceConfiguration config      = _raceConfigurationPresets.GetConfiguration(configName);
                    RaceConfiguration configToSet = RaceConfigurationMerger.MainConfig(_raceConfiguration, config);

                    ResetConfigurationSelectionUI(configToSet);
                }
            }
        }
Esempio n. 2
0
        public void RaceConfigurationMerger_MainConfig()
        {
            RaceConfiguration baseConfig = new RaceConfiguration
            {
                Name            = "BaseName",
                Runs            = 2,
                DefaultGrouping = "DefaultG",
                ActiveFields    = new List <string> {
                    "eins", "zwei"
                },
                RaceResultView       = "RaceResultView",
                RaceResultViewParams = new Dictionary <string, object>(),

                Run1_StartistView         = "Run1_StartistView",
                Run1_StartistViewGrouping = "Run1_StartistViewGrouping",
                Run1_StartistViewParams   = new Dictionary <string, object>(),

                Run2_StartistView         = "Run2_StartistView",
                Run2_StartistViewGrouping = "Run2_StartistViewGrouping",
                Run2_StartistViewParams   = new Dictionary <string, object>(),

                LivetimingParams = new Dictionary <string, string> {
                    { "key", "value" }
                },

                ValueF         = 100,
                ValueA         = 200,
                MinimumPenalty = 300
            };

            RaceConfiguration newConfig = new RaceConfiguration
            {
                Name            = "NewName",
                Runs            = 3,
                DefaultGrouping = "DefaultH",
                ActiveFields    = new List <string> {
                    "drei", "view"
                },
                RaceResultView       = "RaceResultView2",
                RaceResultViewParams = new Dictionary <string, object>(),

                Run1_StartistView         = "Run1_StartistView2",
                Run1_StartistViewGrouping = "Run1_StartistViewGrouping2",
                Run1_StartistViewParams   = new Dictionary <string, object>(),

                Run2_StartistView         = "Run2_StartistView2",
                Run2_StartistViewGrouping = "Run2_StartistViewGrouping2",
                Run2_StartistViewParams   = new Dictionary <string, object>(),

                LivetimingParams = new Dictionary <string, string> {
                    { "key2", "value2" }
                },

                ValueF         = 200,
                ValueA         = 300,
                MinimumPenalty = 400
            };


            RaceConfiguration mergedConfig = RaceConfigurationMerger.MainConfig(baseConfig, newConfig);

            Assert.AreEqual("NewName", mergedConfig.Name);

            Assert.AreEqual("DefaultH", mergedConfig.DefaultGrouping);
            Assert.AreEqual("drei", mergedConfig.ActiveFields[0]);
            Assert.AreEqual("view", mergedConfig.ActiveFields[1]);
            Assert.AreEqual("RaceResultView2", mergedConfig.RaceResultView);
            Assert.AreEqual(0, mergedConfig.RaceResultViewParams.Count);

            Assert.AreEqual("Run1_StartistView2", mergedConfig.Run1_StartistView);
            Assert.AreEqual("Run1_StartistViewGrouping2", mergedConfig.Run1_StartistViewGrouping);
            Assert.AreEqual(0, mergedConfig.Run1_StartistViewParams.Count);
            Assert.AreEqual("Run2_StartistView2", mergedConfig.Run2_StartistView);
            Assert.AreEqual("Run2_StartistViewGrouping2", mergedConfig.Run2_StartistViewGrouping);
            Assert.AreEqual(0, mergedConfig.Run2_StartistViewParams.Count);

            // After this line, there must be the old values
            Assert.AreEqual(1, mergedConfig.LivetimingParams.Count);
            Assert.AreEqual("value", mergedConfig.LivetimingParams["key"]);
            Assert.AreEqual(100, mergedConfig.ValueF);
            Assert.AreEqual(200, mergedConfig.ValueA);
            Assert.AreEqual(300, mergedConfig.MinimumPenalty);
        }