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