Inheritance: IniPresetableSettings
示例#1
0
            internal static string CombineAppPresetsInner(IEnumerable <Tuple <ISavedPresetEntry, int> > presets, int selectedDesktop)
            {
                var list = (from input in presets
                            let s = input.Item1 == null ? null : JsonConvert.DeserializeObject <Saveable>(input.Item1.ReadData())
                                    select s == null ? null : new {
                    PythonIni = IniFile.Parse(s.PythonData),
                    FormsIni = IniFile.Parse(s.FormsData),
                    DevAppsEnabled = s.DevApps ?? false,
                    UseFormsFrom = input.Item2
                }).ToList();

                if (list.Count != 4)
                {
                    throw new Exception("Should be four sets");
                }

                // combine apps
                var python = PythonSettings.Combine(list.NonNull().Select(x => x.PythonIni));
                var forms  = FormsSettings.Combine(list.Select(x => x == null ? null : Tuple.Create(x.FormsIni, x.UseFormsFrom)), selectedDesktop);

                return(JsonConvert.SerializeObject(new Saveable {
                    PythonData = python.Stringify(),
                    FormsData = forms.Stringify(),
                    DevApps = list.Any(x => x.DevAppsEnabled)
                }));
            }