public virtual List <ColorScheme> GetSchemes(ColorSchemeCategory category)
        {
            EnsureConfigExists();

            ColorSchemeGroup gr;

            if (_groupsByCategories.TryGetValue(category, out gr))
            {
                return(gr.Schemes);
            }

            return(null);
        }
        public virtual void RemoveScheme(ColorSchemeCategory category, ColorScheme scheme)
        {
            EnsureConfigExists();

            ColorSchemeGroup group;

            if (_groupsByCategories.TryGetValue(category, out group))
            {
                group.Schemes.Remove(scheme);

                SaveConfig();
            }
        }
        public virtual void RemoveCategory(ColorSchemeCategory category)
        {
            EnsureConfigExists();

            ColorSchemeGroup group;

            if (_groupsByCategories.TryGetValue(category, out group))
            {
                Config.ColorSchemeGroups.Remove(group);
                _groupsByCategories.Remove(category);

                SaveConfig();
            }
        }
        public virtual ColorSchemeCategory NewCategory()
        {
            EnsureConfigExists();

            ColorSchemeCategory cat = new ColorSchemeCategory()
            {
                Name = "CSC " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            };
            ColorSchemeGroup group = new ColorSchemeGroup()
            {
                Category = cat, Schemes = new List <ColorScheme>()
            };

            Config.ColorSchemeGroups.Add(group);
            AddToGroupByCategories(group);

            SaveConfig();
            return(cat);
        }
        public virtual ColorScheme NewScheme(ColorSchemeCategory category)
        {
            EnsureConfigExists();

            ColorSchemeGroup group;

            if (_groupsByCategories.TryGetValue(category, out group))
            {
                ColorScheme scheme = new ColorScheme()
                {
                    Name = "CS " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                group.Schemes.Add(scheme);

                SaveConfig();
                return(scheme);
            }

            return(null);
        }
        public virtual void UpdateCategory(ColorSchemeCategory category)
        {
            EnsureConfigExists();

            SaveConfig();
        }