2011-03-03 08:50:33 +00:00
using System ;
using System.Collections.Generic ;
using System.IO ;
using System.Linq ;
using System.Text ;
using System.Xml.Linq ;
using NzbDrone.Core.Helpers ;
namespace NzbDrone.Core.Providers
{
public class PostProcessingProvider : IPostProcessingProvider
{
private readonly ISeriesProvider _seriesProvider ;
private readonly IConfigProvider _configProvider ;
private readonly IMediaFileProvider _mediaFileProvider ;
private readonly IRenameProvider _renameProvider ;
public PostProcessingProvider ( ISeriesProvider seriesProvider , IConfigProvider configProvider ,
IMediaFileProvider mediaFileProvider , IRenameProvider renameProvider )
{
_seriesProvider = seriesProvider ;
_configProvider = configProvider ;
_mediaFileProvider = mediaFileProvider ;
_renameProvider = renameProvider ;
}
#region IPostProcessingProvider Members
public void ProcessEpisode ( string dir , string nzbName )
{
var parsedSeries = Parser . ParseSeriesName ( nzbName ) ;
var series = _seriesProvider . FindSeries ( parsedSeries ) ;
if ( series = = null )
return ;
//Import the files, and then rename the newly added ones.
var fileList = _mediaFileProvider . Scan ( series , dir ) ;
foreach ( var file in fileList )
{
//Todo: Where should we handle XBMC notifying/library updating etc? RenameProvider seems like a likely place, since we want to update XBMC after renaming (might as well)
2011-03-06 20:45:35 +00:00
_renameProvider . RenameEpisodeFile ( file . EpisodeFileId , true ) ;
2011-03-03 08:50:33 +00:00
}
}
#endregion
}
}