using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using MediaBrowser.Common; using MediaBrowser.Controller.Providers; namespace MediaBrowser.Providers.Manager { public class SeriesOrderManager : ISeriesOrderManager { private Dictionary _providers; public void AddParts(IEnumerable orderProviders) { _providers = orderProviders .GroupBy(p => p.OrderType) .ToDictionary(g => g.Key, g => g.ToArray()); } public async Task FindSeriesIndex(string orderType, string seriesName) { ISeriesOrderProvider[] providers; if (!_providers.TryGetValue(orderType, out providers)) return null; foreach (ISeriesOrderProvider provider in providers) { int? index = await provider.FindSeriesIndex(seriesName); if (index != null) return index; } return null; } } }