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); } } }
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); }