private void UpdateRandomModes() { var items = new List <object> { BuiltInGridMode.CandidatesSameGroup, BuiltInGridMode.CandidatesFiltered, BuiltInGridMode.CandidatesManual }; var dataAdded = false; foreach (var entry in FilesStorage.Instance.GetContentFiles(ContentCategory.GridTypes)) { CandidatesGridMode.SetNamespace(entry.Name); try { var list = JsonConvert.DeserializeObject <List <CandidatesGridMode> >(FileUtils.ReadAllText(entry.Filename)); if (list.Any() && !dataAdded) { items.Add(new Separator()); dataAdded = true; } if (entry.Name == "GridTypes") { items.AddRange(list); } else { items.Add(new HierarchicalGroup(entry.Name, list)); } } catch (Exception e) { NonfatalError.Notify($"Can’t add modes from “{Path.GetFileName(entry.Filename)}”", e); } } _randomGroup.ReplaceEverythingBy(items); }