Inheritance: FirstFloor.ModernUI.Presentation.Displayable, IRaceGridMode
Example #1
0
        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);
        }