public static List<SettingsProvider> getAllProvidersAsEnabledOrDisabled(bool enabled)
        {
            List<SettingsProvider> result = new List<SettingsProvider>();

            foreach (SettingsProvider settingsProvider in getAllProviders()) {
                SettingsProvider newSettingsProvider = new SettingsProvider() {
                    ID = settingsProvider.ID,
                    Title = settingsProvider.Title,
                    Enabled = enabled // enabled by default
                };
                result.Add(newSettingsProvider);
            }

            return result;
        }
        public static void updateProvidersForSettingGroups()
        {
            foreach (SettingsGroup settingsGroup in Settings.SettingsManager.Properties.GeneralSettings.Groups) {
                List<SettingsProvider> toRemove = new List<SettingsProvider>();

                foreach (SettingsProvider settingsProvider in settingsGroup.Providers) {
                    if (!SubsDownloaderNames.Contains(settingsProvider.ID))
                        toRemove.Add(settingsProvider);
                }
                foreach (SettingsProvider settingsProvider in toRemove) {
                    settingsGroup.Providers.Remove(settingsProvider);
                }

                foreach (string provider in SubsDownloaderNames) {
                    bool found = false;
                    foreach (SettingsProvider settingsProvider in settingsGroup.Providers) {
                        if (settingsProvider.ID == provider)
                            found = true;
                    }
                    if (!found) {
                        SettingsProvider newSettingsProvider = new SettingsProvider() {
                            ID = provider,
                            Title = provider,
                            Enabled = false // disabled by default
                        };
                        settingsGroup.Providers.Add(newSettingsProvider);
                    }
                }
            }
        }
        public static List<SettingsProvider> getAllProviders()
        {
            List<SettingsProvider> result = new List<SettingsProvider>();
            List<SettingsProvider> toRemove = new List<SettingsProvider>();

            result.AddRange(Settings.SettingsManager.Properties.GeneralSettings.Providers);

            foreach (SettingsProvider settingsProvider in result) {
                if (!SubsDownloaderNames.Contains(settingsProvider.ID))
                    toRemove.Add(settingsProvider);
            }
            foreach (SettingsProvider settingsProvider in toRemove) {
                result.Remove(settingsProvider);
            }

            foreach (string provider in SubsDownloaderNames) {
                bool found = false;
                foreach (SettingsProvider settingsProvider in result) {
                    if (settingsProvider.ID == provider)
                        found = true;
                }
                if (!found) {
                    SettingsProvider newSettingsProvider = new SettingsProvider() {
                        ID = provider,
                        Title = provider,
                        Enabled = true // enabled by default
                    };
                    result.Add(newSettingsProvider);
                }
            }

            Settings.SettingsManager.Properties.GeneralSettings.Providers.Clear();
            Settings.SettingsManager.Properties.GeneralSettings.Providers.AddRange(result);

            return result;
        }