public void AddProvider(ISongInfoProvider provider) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } string[] existingIds; lock (_providerLock) { existingIds = InfoProviders.Select(p => p.ProviderID).ToArray(); } int idIndex = 0; string defaultId; do { defaultId = $"{provider.GetType().Name}{idIndex}"; idIndex++; }while (existingIds.Contains(defaultId)); lock (_providerLock) { InfoProviders.Add(new InfoProviderEntry(provider, defaultId) { Priority = 100 }); } }
public void AddProvider(ISongInfoProvider provider, string providerId, int priority = 100) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } lock (_providerLock) { InfoProviders.Add(new InfoProviderEntry(provider, providerId) { Priority = priority }); } }
public InfoProviderEntry(ISongInfoProvider infoProvider, string providerId) { InfoProvider = infoProvider; ProviderID = providerId; }