Example #1
0
        public RaceConfiguration(RaceConfiguration src)
        {
            Name = src.Name;
            InternalDSVAlpinCompetitionTypeWrite = src.InternalDSVAlpinCompetitionTypeWrite;

            Runs                 = src.Runs;
            DefaultGrouping      = src.DefaultGrouping;
            ActiveFields         = src.ActiveFields.Copy <List <string> >();
            RaceResultView       = src.RaceResultView;
            RaceResultViewParams = src.RaceResultViewParams.Copy <Dictionary <string, object> >();

            Run1_StartistView         = src.Run1_StartistView;
            Run1_StartistViewGrouping = src.Run1_StartistViewGrouping;
            Run1_StartistViewParams   = src.Run1_StartistViewParams.Copy <Dictionary <string, object> >();

            Run2_StartistView         = src.Run2_StartistView;
            Run2_StartistViewGrouping = src.Run2_StartistViewGrouping;
            Run2_StartistViewParams   = src.Run2_StartistViewParams.Copy <Dictionary <string, object> >();

            LivetimingParams = src.LivetimingParams.Copy <Dictionary <string, string> >();

            ValueF         = src.ValueF;
            ValueA         = src.ValueA;
            ValueCutOff    = src.ValueCutOff;
            MinimumPenalty = src.MinimumPenalty;
        }
Example #2
0
        bool loadConfiguration(string filename, out string name, out RaceConfiguration raceConfiguration)
        {
            try
            {
                string configJSON = System.IO.File.ReadAllText(filename);

                raceConfiguration = new RaceConfiguration();
                Newtonsoft.Json.JsonConvert.PopulateObject(configJSON, raceConfiguration);

                if (string.IsNullOrEmpty(raceConfiguration.Name))
                {
                    raceConfiguration.Name = System.IO.Path.GetFileNameWithoutExtension(filename);
                }

                name = raceConfiguration.Name;
            }
            catch (Exception e)
            {
                logger.Info(e, "could not load race preset {name}", filename);
                raceConfiguration = null;
                name = null;
                return(false);
            }


            return(true);
        }
Example #3
0
        public void SaveConfiguration(string name, RaceConfiguration raceConfiguration)
        {
            char[] invalidFileNameChars = System.IO.Path.GetInvalidFileNameChars();

            // Builds a string out of valid chars
            string saveName = new string(name.Where(ch => !invalidFileNameChars.Contains(ch)).ToArray());

            raceConfiguration.Name = name;

            writeConfiguration(saveName, raceConfiguration);
            loadAllConfiguration();
        }
Example #4
0
        void writeConfiguration(string name, RaceConfiguration raceConfiguration)
        {
            string filename = System.IO.Path.Combine(_directory, name + ".preset");

            try
            {
                string configJSON = Newtonsoft.Json.JsonConvert.SerializeObject(raceConfiguration, Newtonsoft.Json.Formatting.Indented);

                System.IO.File.WriteAllText(filename, configJSON);
            }
            catch (Exception e)
            {
                logger.Info(e, "could not write race preset {name}", filename);
            }
        }
Example #5
0
        public static bool MainConfig(RaceConfiguration config1, RaceConfiguration config2)
        {
            bool res = true;

            res &= config1.Runs == config2.Runs;

            res &= config1.DefaultGrouping == config2.DefaultGrouping;

            res &= !config1.ActiveFields.Except(config2.ActiveFields).Any();
            res &= !config2.ActiveFields.Except(config1.ActiveFields).Any();

            res &= config1.RaceResultView == config2.RaceResultView;

            res &= config1.Run1_StartistView == config2.Run1_StartistView;
            res &= config1.Run1_StartistViewGrouping == config2.Run1_StartistViewGrouping;

            res &= config1.Run2_StartistView == config2.Run2_StartistView;
            res &= config1.Run2_StartistViewGrouping == config2.Run2_StartistViewGrouping;

            return(res);
        }
Example #6
0
        public static RaceConfiguration MainConfig(RaceConfiguration baseConfig, RaceConfiguration newConfig)
        {
            RaceConfiguration mergedConfig = new RaceConfiguration(baseConfig);

            mergedConfig.Name                 = newConfig.Name;
            mergedConfig.Runs                 = newConfig.Runs;
            mergedConfig.DefaultGrouping      = newConfig.DefaultGrouping;
            mergedConfig.ActiveFields         = newConfig.ActiveFields.Copy <List <string> >();
            mergedConfig.RaceResultView       = newConfig.RaceResultView;
            mergedConfig.RaceResultViewParams = newConfig.RaceResultViewParams.Copy <Dictionary <string, object> >();

            mergedConfig.Run1_StartistView         = newConfig.Run1_StartistView;
            mergedConfig.Run1_StartistViewGrouping = newConfig.Run1_StartistViewGrouping;
            mergedConfig.Run1_StartistViewParams   = newConfig.Run1_StartistViewParams.Copy <Dictionary <string, object> >();

            mergedConfig.Run2_StartistView         = newConfig.Run2_StartistView;
            mergedConfig.Run2_StartistViewGrouping = newConfig.Run2_StartistViewGrouping;
            mergedConfig.Run2_StartistViewParams   = newConfig.Run2_StartistViewParams.Copy <Dictionary <string, object> >();

            return(mergedConfig);
        }
 public ViewConfigurator(Race race)
 {
     _race      = race;
     _dataModel = race.GetDataModel();
     _config    = race.RaceConfiguration.Copy();
 }