Merge branch 'mark-fork'

This commit is contained in:
Keivan 2011-04-08 09:54:49 -07:00
commit ce1198642a
31 changed files with 107 additions and 186 deletions

View File

@ -64,13 +64,14 @@ namespace NzbDrone.Core
_kernel.Bind<IRssSyncProvider>().To<RssSyncProvider>().InSingletonScope(); _kernel.Bind<IRssSyncProvider>().To<RssSyncProvider>().InSingletonScope();
_kernel.Bind<ISeasonProvider>().To<SeasonProvider>(); _kernel.Bind<ISeasonProvider>().To<SeasonProvider>();
_kernel.Bind<IEpisodeProvider>().To<EpisodeProvider>(); _kernel.Bind<IEpisodeProvider>().To<EpisodeProvider>();
_kernel.Bind<IUpcomingEpisodesProvider>().To<UpcomingEpisodesProvider>(); _kernel.Bind<UpcomingEpisodesProvider>().To<UpcomingEpisodesProvider>();
_kernel.Bind<IDiskProvider>().To<DiskProvider>(); _kernel.Bind<IDiskProvider>().To<DiskProvider>();
_kernel.Bind<IDownloadProvider>().To<SabProvider>(); _kernel.Bind<SabProvider>().To<SabProvider>();
_kernel.Bind<IHistoryProvider>().To<HistoryProvider>(); _kernel.Bind<IHistoryProvider>().To<HistoryProvider>();
_kernel.Bind<IRootDirProvider>().To<RootDirProvider>(); _kernel.Bind<RootDirProvider>().To<RootDirProvider>();
_kernel.Bind<IExtenalNotificationProvider>().To<ExternalNotificationProvider>(); _kernel.Bind<ExternalNotificationProvider>().To<ExternalNotificationProvider>();
_kernel.Bind<IXbmcProvider>().To<XbmcProvider>(); _kernel.Bind<XbmcProvider>().To<XbmcProvider>();
_kernel.Bind<PostProcessingProvider>().To<PostProcessingProvider>();
_kernel.Bind<IConfigProvider>().To<ConfigProvider>().InSingletonScope(); _kernel.Bind<IConfigProvider>().To<ConfigProvider>().InSingletonScope();
_kernel.Bind<ISyncProvider>().To<SyncProvider>().InSingletonScope(); _kernel.Bind<ISyncProvider>().To<SyncProvider>().InSingletonScope();
_kernel.Bind<IIndexerProvider>().To<IndexerProvider>().InSingletonScope(); _kernel.Bind<IIndexerProvider>().To<IndexerProvider>().InSingletonScope();
@ -78,7 +79,7 @@ namespace NzbDrone.Core
_kernel.Bind<INotificationProvider>().To<NotificationProvider>().InSingletonScope(); _kernel.Bind<INotificationProvider>().To<NotificationProvider>().InSingletonScope();
_kernel.Bind<ILogProvider>().To<LogProvider>().InSingletonScope(); _kernel.Bind<ILogProvider>().To<LogProvider>().InSingletonScope();
_kernel.Bind<IMediaFileProvider>().To<MediaFileProvider>().InSingletonScope(); _kernel.Bind<IMediaFileProvider>().To<MediaFileProvider>().InSingletonScope();
_kernel.Bind<ITimerProvider>().To<TimerProvider>().InSingletonScope(); _kernel.Bind<TimerProvider>().To<TimerProvider>().InSingletonScope();
_kernel.Bind<IRepository>().ToMethod(c => new SimpleRepository(dbProvider, SimpleRepositoryOptions.RunMigrations)).InSingletonScope(); _kernel.Bind<IRepository>().ToMethod(c => new SimpleRepository(dbProvider, SimpleRepositoryOptions.RunMigrations)).InSingletonScope();
_kernel.Bind<IRepository>().ToConstant(logRepository).WhenInjectedInto<SubsonicTarget>().InSingletonScope(); _kernel.Bind<IRepository>().ToConstant(logRepository).WhenInjectedInto<SubsonicTarget>().InSingletonScope();
@ -90,7 +91,7 @@ namespace NzbDrone.Core
//Get the Timers going //Get the Timers going
var config = _kernel.Get<IConfigProvider>(); var config = _kernel.Get<IConfigProvider>();
var timer = _kernel.Get<ITimerProvider>(); var timer = _kernel.Get<TimerProvider>();
timer.SetRssSyncTimer(Convert.ToInt32(config.GetValue("SyncFrequency", "15", true))); timer.SetRssSyncTimer(Convert.ToInt32(config.GetValue("SyncFrequency", "15", true)));
timer.StartRssSyncTimer(); timer.StartRssSyncTimer();
} }

View File

@ -183,17 +183,11 @@
<Compile Include="Providers\Feed\NzbsOrgFeedProvider.cs" /> <Compile Include="Providers\Feed\NzbsOrgFeedProvider.cs" />
<Compile Include="Providers\HistoryProvider.cs" /> <Compile Include="Providers\HistoryProvider.cs" />
<Compile Include="Providers\IBacklogProvider.cs" /> <Compile Include="Providers\IBacklogProvider.cs" />
<Compile Include="Providers\IExtenalNotificationProvider.cs" />
<Compile Include="Providers\IHistoryProvider.cs" /> <Compile Include="Providers\IHistoryProvider.cs" />
<Compile Include="Providers\IIndexerProvider.cs" /> <Compile Include="Providers\IIndexerProvider.cs" />
<Compile Include="Providers\IndexerProvider.cs" /> <Compile Include="Providers\IndexerProvider.cs" />
<Compile Include="Providers\IPostProcessingProvider.cs" />
<Compile Include="Providers\IRenameProvider.cs" /> <Compile Include="Providers\IRenameProvider.cs" />
<Compile Include="Providers\IRootDirProvider.cs" />
<Compile Include="Providers\IRssSyncProvider.cs" /> <Compile Include="Providers\IRssSyncProvider.cs" />
<Compile Include="Providers\ITimerProvider.cs" />
<Compile Include="Providers\IUpcomingEpisodesProvider.cs" />
<Compile Include="Providers\IXbmcProvider.cs" />
<Compile Include="Providers\PostProcessingProvider.cs" /> <Compile Include="Providers\PostProcessingProvider.cs" />
<Compile Include="Providers\QualityProvider.cs" /> <Compile Include="Providers\QualityProvider.cs" />
<Compile Include="Providers\RenameProvider.cs" /> <Compile Include="Providers\RenameProvider.cs" />
@ -218,7 +212,6 @@
<Compile Include="Providers\Core\ConfigProvider.cs" /> <Compile Include="Providers\Core\ConfigProvider.cs" />
<Compile Include="Providers\EpisodeProvider.cs" /> <Compile Include="Providers\EpisodeProvider.cs" />
<Compile Include="Providers\Core\HttpProvider.cs" /> <Compile Include="Providers\Core\HttpProvider.cs" />
<Compile Include="Providers\IDownloadProvider.cs" />
<Compile Include="Providers\IEpisodeProvider.cs" /> <Compile Include="Providers\IEpisodeProvider.cs" />
<Compile Include="Providers\ISeasonProvider.cs" /> <Compile Include="Providers\ISeasonProvider.cs" />
<Compile Include="Providers\ISeriesProvider.cs" /> <Compile Include="Providers\ISeriesProvider.cs" />

View File

@ -10,22 +10,21 @@ using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class ExternalNotificationProvider : IExtenalNotificationProvider public class ExternalNotificationProvider
{ {
private readonly IConfigProvider _configProvider; private readonly IConfigProvider _configProvider;
private readonly IXbmcProvider _xbmcProvider; private readonly XbmcProvider _xbmcProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public ExternalNotificationProvider(IConfigProvider configProvider, IXbmcProvider xbmcProvider) public ExternalNotificationProvider(IConfigProvider configProvider, XbmcProvider xbmcProvider)
{ {
_configProvider = configProvider; _configProvider = configProvider;
_xbmcProvider = xbmcProvider; _xbmcProvider = xbmcProvider;
} }
#region IExternalNotificationProvider Members #region ExternalNotificationProvider Members
public void OnGrab(string message) public virtual void OnGrab(string message)
{ {
var header = "NzbDrone [TV] - Grabbed"; var header = "NzbDrone [TV] - Grabbed";
@ -43,7 +42,7 @@ namespace NzbDrone.Core.Providers
Logger.Trace("XBMC Notifier is not enabled"); Logger.Trace("XBMC Notifier is not enabled");
} }
public void OnDownload(EpisodeRenameModel erm) public virtual void OnDownload(EpisodeRenameModel erm)
{ {
var header = "NzbDrone [TV] - Downloaded"; var header = "NzbDrone [TV] - Downloaded";
var message = EpisodeRenameHelper.GetNewName(erm); var message = EpisodeRenameHelper.GetNewName(erm);
@ -75,7 +74,7 @@ namespace NzbDrone.Core.Providers
throw new NotImplementedException(); throw new NotImplementedException();
} }
public void OnRename(EpisodeRenameModel erm) public virtual void OnRename(EpisodeRenameModel erm)
{ {
var header = "NzbDrone [TV] - Renamed"; var header = "NzbDrone [TV] - Renamed";
var message = EpisodeRenameHelper.GetNewName(erm); var message = EpisodeRenameHelper.GetNewName(erm);

View File

@ -12,4 +12,4 @@ namespace NzbDrone.Core.Providers
bool StartSearch(); bool StartSearch();
bool StartSearch(int seriesId); bool StartSearch(int seriesId);
} }
} }

View File

@ -1,9 +0,0 @@
namespace NzbDrone.Core.Providers
{
public interface IDownloadProvider
{
bool AddByUrl(string url, string title); //Should accept something other than string (NzbInfo?) returns success or failure
bool IsInQueue(string title); //Should accept something other than string (Episode?) returns bool
bool AddById(string id, string title);
}
}

View File

@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NzbDrone.Core.Model;
namespace NzbDrone.Core.Providers
{
public interface IExtenalNotificationProvider
{
void OnGrab(string message);
void OnDownload(EpisodeRenameModel erm);
void OnRename(EpisodeRenameModel erm);
}
}

View File

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
{
public interface IPostProcessingProvider
{
void ProcessEpisode(string dir, string nzbName);
}
}

View File

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers
{
public interface IRootDirProvider
{
List<RootDir> GetAll();
void Add(RootDir rootDir);
void Remove(int rootDirId);
void Update(RootDir rootDir);
RootDir GetRootDir(int rootDirId);
}
}

View File

@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
{
public interface ITimerProvider
{
void ResetRssSyncTimer();
void StartRssSyncTimer();
void StopRssSyncTimer();
void SetRssSyncTimer(int minutes);
TimeSpan RssSyncTimeLeft();
DateTime NextRssSyncTime();
void StartMinuteTimer();
void StopMinuteTimer();
}
}

View File

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NzbDrone.Core.Model;
using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers
{
public interface IUpcomingEpisodesProvider
{
UpcomingEpisodesModel Upcoming();
List<Episode> Yesterday();
List<Episode> Today();
List<Episode> Week();
}
}

View File

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NzbDrone.Core.Providers
{
public interface IXbmcProvider
{
void Notify(string header, string message);
void Update(int seriesId);
void Clean();
}
}

View File

@ -9,7 +9,7 @@ using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class PostProcessingProvider : IPostProcessingProvider public class PostProcessingProvider
{ {
private readonly ISeriesProvider _seriesProvider; private readonly ISeriesProvider _seriesProvider;
private readonly IMediaFileProvider _mediaFileProvider; private readonly IMediaFileProvider _mediaFileProvider;
@ -23,9 +23,9 @@ namespace NzbDrone.Core.Providers
_renameProvider = renameProvider; _renameProvider = renameProvider;
} }
#region IPostProcessingProvider Members #region PostProcessingProvider Members
public void ProcessEpisode(string dir, string nzbName) public virtual void ProcessEpisode(string dir, string nzbName)
{ {
var parsedSeries = Parser.ParseSeriesName(nzbName); var parsedSeries = Parser.ParseSeriesName(nzbName);
var series = _seriesProvider.FindSeries(parsedSeries); var series = _seriesProvider.FindSeries(parsedSeries);

View File

@ -20,7 +20,7 @@ namespace NzbDrone.Core.Providers
private readonly IMediaFileProvider _mediaFileProvider; private readonly IMediaFileProvider _mediaFileProvider;
private readonly IDiskProvider _diskProvider; private readonly IDiskProvider _diskProvider;
private readonly IConfigProvider _configProvider; private readonly IConfigProvider _configProvider;
private readonly IExtenalNotificationProvider _externalNotificationProvider; private readonly ExternalNotificationProvider _externalNotificationProvider;
private Thread _renameThread; private Thread _renameThread;
private List<EpisodeRenameModel> _epsToRename = new List<EpisodeRenameModel>(); private List<EpisodeRenameModel> _epsToRename = new List<EpisodeRenameModel>();
@ -30,7 +30,7 @@ namespace NzbDrone.Core.Providers
public RenameProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, public RenameProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider,
IEpisodeProvider episodeProvider, IMediaFileProvider mediaFileProvider, IEpisodeProvider episodeProvider, IMediaFileProvider mediaFileProvider,
IDiskProvider diskProvider, IConfigProvider configProvider, IDiskProvider diskProvider, IConfigProvider configProvider,
IExtenalNotificationProvider extenalNotificationProvider) ExternalNotificationProvider extenalNotificationProvider)
{ {
_seriesProvider = seriesProvider; _seriesProvider = seriesProvider;
_seasonProvider = seasonProvider; _seasonProvider = seasonProvider;

View File

@ -7,7 +7,7 @@ using SubSonic.Repository;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class RootDirProvider : IRootDirProvider public class RootDirProvider
{ {
private readonly IRepository _sonioRepo; private readonly IRepository _sonioRepo;
@ -18,27 +18,27 @@ namespace NzbDrone.Core.Providers
#region IRootDirProvider #region IRootDirProvider
public List<RootDir> GetAll() public virtual List<RootDir> GetAll()
{ {
return _sonioRepo.All<RootDir>().ToList(); return _sonioRepo.All<RootDir>().ToList();
} }
public void Add(RootDir rootDir) public virtual void Add(RootDir rootDir)
{ {
_sonioRepo.Add(rootDir); _sonioRepo.Add(rootDir);
} }
public void Remove(int rootDirId) public virtual void Remove(int rootDirId)
{ {
_sonioRepo.Delete<RootDir>(rootDirId); _sonioRepo.Delete<RootDir>(rootDirId);
} }
public void Update(RootDir rootDir) public virtual void Update(RootDir rootDir)
{ {
_sonioRepo.Update(rootDir); _sonioRepo.Update(rootDir);
} }
public RootDir GetRootDir(int rootDirId) public virtual RootDir GetRootDir(int rootDirId)
{ {
return _sonioRepo.Single<RootDir>(rootDirId); return _sonioRepo.Single<RootDir>(rootDirId);
} }

View File

@ -7,7 +7,7 @@ using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class SabProvider : IDownloadProvider public class SabProvider
{ {
private readonly IConfigProvider _config; private readonly IConfigProvider _config;
private readonly HttpProvider _http; private readonly HttpProvider _http;
@ -22,7 +22,7 @@ namespace NzbDrone.Core.Providers
#region IDownloadProvider Members #region IDownloadProvider Members
public bool AddByUrl(string url, string title) public virtual bool AddByUrl(string url, string title)
{ {
const string mode = "addurl"; const string mode = "addurl";
string cat = _config.GetValue("SabTvCategory", String.Empty, true); string cat = _config.GetValue("SabTvCategory", String.Empty, true);
@ -45,7 +45,7 @@ namespace NzbDrone.Core.Providers
return false; return false;
} }
public bool IsInQueue(string title) public virtual bool IsInQueue(string title)
{ {
const string action = "mode=queue&output=xml"; const string action = "mode=queue&output=xml";
string request = GetSabRequest(action); string request = GetSabRequest(action);
@ -71,7 +71,7 @@ namespace NzbDrone.Core.Providers
return false; //Not in Queue return false; //Not in Queue
} }
public bool AddById(string id, string title) public virtual bool AddById(string id, string title)
{ {
//mode=addid&name=333333&pp=3&script=customscript.cmd&cat=Example&priority=-1 //mode=addid&name=333333&pp=3&script=customscript.cmd&cat=Example&priority=-1

View File

@ -8,7 +8,7 @@ using NzbDrone.Core.Model.Notification;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class TimerProvider : ITimerProvider public class TimerProvider
{ {
private readonly IRssSyncProvider _rssSyncProvider; private readonly IRssSyncProvider _rssSyncProvider;
private readonly ISeriesProvider _seriesProvider; private readonly ISeriesProvider _seriesProvider;
@ -33,15 +33,15 @@ namespace NzbDrone.Core.Providers
_minuteTimer = new Timer(60000); _minuteTimer = new Timer(60000);
} }
#region ITimerProvider Members #region TimerProvider Members
public void ResetRssSyncTimer() public virtual void ResetRssSyncTimer()
{ {
double interval = _rssSyncTimer.Interval; double interval = _rssSyncTimer.Interval;
_rssSyncTimer.Interval = interval; _rssSyncTimer.Interval = interval;
} }
public void StartRssSyncTimer() public virtual void StartRssSyncTimer()
{ {
if (_rssSyncTimer.Interval < 900000) //If Timer is less than 15 minutes, throw an error! This should also be handled when saving the config, though a user could by-pass it by editing the DB directly... TNO (Trust No One) if (_rssSyncTimer.Interval < 900000) //If Timer is less than 15 minutes, throw an error! This should also be handled when saving the config, though a user could by-pass it by editing the DB directly... TNO (Trust No One)
{ {
@ -53,35 +53,35 @@ namespace NzbDrone.Core.Providers
_rssSyncTimer.Start(); _rssSyncTimer.Start();
_rssSyncNextInterval = DateTime.Now.AddMilliseconds(_rssSyncTimer.Interval); _rssSyncNextInterval = DateTime.Now.AddMilliseconds(_rssSyncTimer.Interval);
} }
public void StopRssSyncTimer() public virtual void StopRssSyncTimer()
{ {
_rssSyncTimer.Stop(); _rssSyncTimer.Stop();
} }
public void SetRssSyncTimer(int minutes) public virtual void SetRssSyncTimer(int minutes)
{ {
long ms = minutes * 60 * 1000; long ms = minutes * 60 * 1000;
_rssSyncTimer.Interval = ms; _rssSyncTimer.Interval = ms;
} }
public TimeSpan RssSyncTimeLeft() public virtual TimeSpan RssSyncTimeLeft()
{ {
return _rssSyncNextInterval.Subtract(DateTime.Now); return _rssSyncNextInterval.Subtract(DateTime.Now);
} }
public DateTime NextRssSyncTime() public virtual DateTime NextRssSyncTime()
{ {
return _rssSyncNextInterval; return _rssSyncNextInterval;
} }
public void StartMinuteTimer() public virtual void StartMinuteTimer()
{ {
_minuteTimer.Elapsed += new ElapsedEventHandler(MinuteTimer_Elapsed); _minuteTimer.Elapsed += new ElapsedEventHandler(MinuteTimer_Elapsed);
_minuteTimer.Start(); _minuteTimer.Start();
} }
public void StopMinuteTimer() public virtual void StopMinuteTimer()
{ {
_minuteTimer.Stop(); _minuteTimer.Stop();
} }

View File

@ -8,7 +8,7 @@ using SubSonic.Repository;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class UpcomingEpisodesProvider : IUpcomingEpisodesProvider public class UpcomingEpisodesProvider
{ {
private IRepository _sonicRepo; private IRepository _sonicRepo;
@ -17,9 +17,9 @@ namespace NzbDrone.Core.Providers
_sonicRepo = sonicRepo; _sonicRepo = sonicRepo;
} }
#region IUpcomingEpisodesProvider #region UpcomingEpisodesProvider Members
public UpcomingEpisodesModel Upcoming() public virtual UpcomingEpisodesModel Upcoming()
{ {
var allEps = _sonicRepo.All<Episode>().Where(e => e.AirDate >= DateTime.Today.AddDays(-1) && e.AirDate < DateTime.Today.AddDays(8)); var allEps = _sonicRepo.All<Episode>().Where(e => e.AirDate >= DateTime.Today.AddDays(-1) && e.AirDate < DateTime.Today.AddDays(8));
@ -30,17 +30,17 @@ namespace NzbDrone.Core.Providers
return new UpcomingEpisodesModel {Yesterday = yesterday, Today = today, Week = week}; return new UpcomingEpisodesModel {Yesterday = yesterday, Today = today, Week = week};
} }
public List<Episode> Yesterday() public virtual List<Episode> Yesterday()
{ {
return _sonicRepo.All<Episode>().Where(e => e.AirDate == DateTime.Today.AddDays(-1)).ToList(); return _sonicRepo.All<Episode>().Where(e => e.AirDate == DateTime.Today.AddDays(-1)).ToList();
} }
public List<Episode> Today() public virtual List<Episode> Today()
{ {
return _sonicRepo.All<Episode>().Where(e => e.AirDate == DateTime.Today).ToList(); return _sonicRepo.All<Episode>().Where(e => e.AirDate == DateTime.Today).ToList();
} }
public List<Episode> Week() public virtual List<Episode> Week()
{ {
return _sonicRepo.All<Episode>().Where(e => e.AirDate > DateTime.Today && e.AirDate < DateTime.Today.AddDays(8)).ToList(); return _sonicRepo.All<Episode>().Where(e => e.AirDate > DateTime.Today && e.AirDate < DateTime.Today.AddDays(8)).ToList();
} }

View File

@ -10,7 +10,7 @@ using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers namespace NzbDrone.Core.Providers
{ {
public class XbmcProvider : IXbmcProvider public class XbmcProvider
{ {
private readonly IConfigProvider _configProvider; private readonly IConfigProvider _configProvider;
private readonly HttpProvider _httpProvider; private readonly HttpProvider _httpProvider;
@ -23,9 +23,9 @@ namespace NzbDrone.Core.Providers
_httpProvider = httpProvider; _httpProvider = httpProvider;
} }
#region IXbmcProvider Members #region XbmcProvider Members
public void Notify(string header, string message) public virtual void Notify(string header, string message)
{ {
//Get time in seconds and convert to ms //Get time in seconds and convert to ms
var time = Convert.ToInt32(_configProvider.GetValue("XbmcDisplayTime", "3", true)) * 1000; var time = Convert.ToInt32(_configProvider.GetValue("XbmcDisplayTime", "3", true)) * 1000;
@ -47,7 +47,7 @@ namespace NzbDrone.Core.Providers
} }
} }
public void Update(int seriesId) public virtual void Update(int seriesId)
{ {
foreach (var host in _configProvider.GetValue("XbmcHosts", "localhost:80", true).Split(',')) foreach (var host in _configProvider.GetValue("XbmcHosts", "localhost:80", true).Split(','))
{ {
@ -68,7 +68,7 @@ namespace NzbDrone.Core.Providers
} }
} }
public void Clean() public virtual void Clean()
{ {
foreach (var host in _configProvider.GetValue("XbmcHosts", "localhost:80", true).Split(',')) foreach (var host in _configProvider.GetValue("XbmcHosts", "localhost:80", true).Split(','))
{ {

View File

@ -14,13 +14,13 @@ namespace NzbDrone.Web.Controllers
{ {
public IConfigProvider ConfigProvider { get; set; } public IConfigProvider ConfigProvider { get; set; }
private readonly ISyncProvider _syncProvider; private readonly ISyncProvider _syncProvider;
private readonly IRootDirProvider _rootFolderProvider; private readonly RootDirProvider _rootFolderProvider;
private readonly IConfigProvider _configProvider; private readonly IConfigProvider _configProvider;
private readonly QualityProvider _qualityProvider; private readonly QualityProvider _qualityProvider;
private readonly TvDbProvider _tvDbProvider; private readonly TvDbProvider _tvDbProvider;
private readonly ISeriesProvider _seriesProvider; private readonly ISeriesProvider _seriesProvider;
public AddSeriesController(ISyncProvider syncProvider, IRootDirProvider rootFolderProvider, IConfigProvider configProvider, public AddSeriesController(ISyncProvider syncProvider, RootDirProvider rootFolderProvider, IConfigProvider configProvider,
QualityProvider qualityProvider, TvDbProvider tvDbProvider, ISeriesProvider seriesProvider) QualityProvider qualityProvider, TvDbProvider tvDbProvider, ISeriesProvider seriesProvider)
{ {
ConfigProvider = configProvider; ConfigProvider = configProvider;
@ -63,6 +63,12 @@ namespace NzbDrone.Web.Controllers
{ {
var unmappedList = new List<String>(); var unmappedList = new List<String>();
var profiles = _qualityProvider.GetAllProfiles();
var defaultQuality = Convert.ToInt32(_configProvider.DefaultQualityProfile);
var selectList = new SelectList(profiles, "QualityProfileId", "Name", defaultQuality);
ViewData["qualities"] = selectList;
foreach (var folder in _rootFolderProvider.GetAll()) foreach (var folder in _rootFolderProvider.GetAll())
{ {
unmappedList.AddRange(_syncProvider.GetUnmappedFolders(folder.Path)); unmappedList.AddRange(_syncProvider.GetUnmappedFolders(folder.Path));

View File

@ -13,12 +13,12 @@ namespace NzbDrone.Web.Controllers
{ {
public class ApiController : Controller public class ApiController : Controller
{ {
private readonly IPostProcessingProvider _postProcessingProvider; private readonly PostProcessingProvider _postProcessingProvider;
private readonly IConfigProvider _configProvider; private readonly IConfigProvider _configProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public ApiController(IPostProcessingProvider postProcessingProvider, IConfigProvider configProvider) public ApiController(PostProcessingProvider postProcessingProvider, IConfigProvider configProvider)
{ {
_postProcessingProvider = postProcessingProvider; _postProcessingProvider = postProcessingProvider;
_configProvider = configProvider; _configProvider = configProvider;

View File

@ -28,7 +28,7 @@ namespace NzbDrone.Web.Controllers
private readonly QualityProvider _qualityProvider; private readonly QualityProvider _qualityProvider;
private readonly IMediaFileProvider _mediaFileProvider; private readonly IMediaFileProvider _mediaFileProvider;
private readonly IRenameProvider _renameProvider; private readonly IRenameProvider _renameProvider;
private readonly IRootDirProvider _rootDirProvider; private readonly RootDirProvider _rootDirProvider;
private readonly TvDbProvider _tvDbProvider; private readonly TvDbProvider _tvDbProvider;
// //
// GET: /Series/ // GET: /Series/
@ -36,7 +36,7 @@ namespace NzbDrone.Web.Controllers
public SeriesController(ISyncProvider syncProvider, ISeriesProvider seriesProvider, public SeriesController(ISyncProvider syncProvider, ISeriesProvider seriesProvider,
IEpisodeProvider episodeProvider, IRssSyncProvider rssSyncProvider, IEpisodeProvider episodeProvider, IRssSyncProvider rssSyncProvider,
QualityProvider qualityProvider, IMediaFileProvider mediaFileProvider, QualityProvider qualityProvider, IMediaFileProvider mediaFileProvider,
IRenameProvider renameProvider, IRootDirProvider rootDirProvider, IRenameProvider renameProvider, RootDirProvider rootDirProvider,
TvDbProvider tvDbProvider) TvDbProvider tvDbProvider)
{ {
_seriesProvider = seriesProvider; _seriesProvider = seriesProvider;

View File

@ -22,14 +22,14 @@ namespace NzbDrone.Web.Controllers
private IConfigProvider _configProvider; private IConfigProvider _configProvider;
private IIndexerProvider _indexerProvider; private IIndexerProvider _indexerProvider;
private QualityProvider _qualityProvider; private QualityProvider _qualityProvider;
private IRootDirProvider _rootDirProvider; private RootDirProvider _rootDirProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private const string SETTINGS_SAVED = "Settings Saved."; private const string SETTINGS_SAVED = "Settings Saved.";
private const string SETTINGS_FAILED = "Error Saving Settings, please fix any errors"; private const string SETTINGS_FAILED = "Error Saving Settings, please fix any errors";
public SettingsController(IConfigProvider configProvider, IIndexerProvider indexerProvider, public SettingsController(IConfigProvider configProvider, IIndexerProvider indexerProvider,
QualityProvider qualityProvider, IRootDirProvider rootDirProvider) QualityProvider qualityProvider, RootDirProvider rootDirProvider)
{ {
_configProvider = configProvider; _configProvider = configProvider;
_indexerProvider = indexerProvider; _indexerProvider = indexerProvider;

View File

@ -9,9 +9,9 @@ namespace NzbDrone.Web.Controllers
{ {
public class SharedController : Controller public class SharedController : Controller
{ {
private ITimerProvider _timerProvider; private TimerProvider _timerProvider;
public SharedController(ITimerProvider timerProvider) public SharedController(TimerProvider timerProvider)
{ {
_timerProvider = timerProvider; _timerProvider = timerProvider;
} }

View File

@ -11,9 +11,9 @@ namespace NzbDrone.Web.Controllers
{ {
public class UpcomingController : Controller public class UpcomingController : Controller
{ {
private IUpcomingEpisodesProvider _upcomingEpisodesProvider; private UpcomingEpisodesProvider _upcomingEpisodesProvider;
public UpcomingController(IUpcomingEpisodesProvider upcomingEpisodesProvider) public UpcomingController(UpcomingEpisodesProvider upcomingEpisodesProvider)
{ {
_upcomingEpisodesProvider = upcomingEpisodesProvider; _upcomingEpisodesProvider = upcomingEpisodesProvider;
} }

View File

@ -9,11 +9,36 @@
<% <%
if (Model.Count() == 0) if (Model.Count() == 0)
Html.DisplayText("No Series to Add"); Html.DisplayText("No Series to Add");
%>
<%: Html.DropDownList("masterDropbox", (SelectList)ViewData["qualities"], new { style = "width: 100px;", id = "masterDropboxId" })%>
<%: @Html.Telerik().DropDownList().Name("tester").BindTo((SelectList)ViewData["qualities"]).HtmlAttributes(new { style = "width: 100px", @class = "qualityDropbox" })%>
<%
foreach (var path in Model) foreach (var path in Model)
{ {
Html.RenderAction("RenderPartial", "AddSeries", new { path }); Html.RenderAction("RenderPartial", "AddSeries", new { path });
} }
%> %>
</asp:Content>
<script type="text/javascript">
$("#masterDropboxId").change(function () {
var selectedQuality = $('#masterDropboxId').get(0).selectedIndex;
//$(".qualityDropbox").data("tComboBox").value(selectedQuality);
//$(".qualityDropbox").data("tDropDownList").val(selectedQuality);
var comboBox = $(".qualityDropbox").data("tDropDownList");
comboBox.select(selectedQuality);
});
</script>
</asp:Content>

View File

@ -12,7 +12,7 @@
.HighlightFirstMatch(true) .HighlightFirstMatch(true)
.HtmlAttributes(new { style = "width: 300px;" }) .HtmlAttributes(new { style = "width: 300px;" })
.Render();} .Render();}
@Html.Telerik().DropDownList().Name("qualityList_" + ViewData["guid"].ToString()).BindTo((SelectList)ViewData["quality"]).HtmlAttributes(new { style = "width: 100px;" }).SelectedIndex(0) @Html.Telerik().DropDownList().Name("qualityList_" + ViewData["guid"].ToString()).BindTo((SelectList)ViewData["quality"]).HtmlAttributes(new { style = "width: 100px", @class = "qualityDropbox" })
<button class="listButton" onclick="addSeries('@ViewData["guid"]','@ViewData["javaPath"].ToString()' )"> <button class="listButton" onclick="addSeries('@ViewData["guid"]','@ViewData["javaPath"].ToString()' )">
Add</button> Add</button>
</div> </div>