diff options
| author | Thomas Gillen <thomas.gillen@googlemail.com> | 2014-03-27 02:14:06 +0000 |
|---|---|---|
| committer | Thomas Gillen <thomas.gillen@googlemail.com> | 2014-03-27 02:14:06 +0000 |
| commit | 5c3e6a48d78de97d85b9a67f08d8b5fc75661f56 (patch) | |
| tree | b63e09d15cd9cb9029120fc381958cebe4827a73 /MediaBrowser.Providers/Manager/SeriesOrderManager.cs | |
| parent | 918d5b990a4a3a343c58cf871fa5dad614e88ddd (diff) | |
Support anime series ordering with core providers
Diffstat (limited to 'MediaBrowser.Providers/Manager/SeriesOrderManager.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/SeriesOrderManager.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/Manager/SeriesOrderManager.cs b/MediaBrowser.Providers/Manager/SeriesOrderManager.cs new file mode 100644 index 0000000000..39175d1f94 --- /dev/null +++ b/MediaBrowser.Providers/Manager/SeriesOrderManager.cs @@ -0,0 +1,36 @@ +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<string, ISeriesOrderProvider[]> _providers; + + public void AddParts(IEnumerable<ISeriesOrderProvider> orderProviders) + { + _providers = orderProviders + .GroupBy(p => p.OrderType) + .ToDictionary(g => g.Key, g => g.ToArray()); + } + + public async Task<int?> 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; + } + } +}
\ No newline at end of file |
