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 ;
2011-04-04 03:50:12 +00:00
using NzbDrone.Core.Providers.Core ;
2011-03-03 08:50:33 +00:00
namespace NzbDrone.Core.Providers
{
2011-04-08 15:24:16 +00:00
public class PostProcessingProvider
2011-03-03 08:50:33 +00:00
{
2011-04-08 23:55:23 +00:00
private readonly SeriesProvider _seriesProvider ;
2011-03-03 08:50:33 +00:00
private readonly IMediaFileProvider _mediaFileProvider ;
2011-04-09 00:08:03 +00:00
private readonly RenameProvider _renameProvider ;
2011-03-03 08:50:33 +00:00
2011-04-08 23:55:23 +00:00
public PostProcessingProvider ( SeriesProvider seriesProvider ,
2011-04-09 00:08:03 +00:00
IMediaFileProvider mediaFileProvider , RenameProvider renameProvider )
2011-03-03 08:50:33 +00:00
{
_seriesProvider = seriesProvider ;
2011-04-04 07:21:07 +00:00
_mediaFileProvider = mediaFileProvider ;
2011-03-03 08:50:33 +00:00
_renameProvider = renameProvider ;
}
2011-04-08 15:24:16 +00:00
#region PostProcessingProvider Members
2011-03-03 08:50:33 +00:00
2011-04-08 15:24:16 +00:00
public virtual void ProcessEpisode ( string dir , string nzbName )
2011-03-03 08:50:33 +00:00
{
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 )
{
2011-03-07 06:33:59 +00:00
//Notifications will be sent from the Renamer, depending on the bool NewDownload (which will be set to true from here), a normal rename will be treated as such.
2011-03-06 20:45:35 +00:00
_renameProvider . RenameEpisodeFile ( file . EpisodeFileId , true ) ;
2011-03-03 08:50:33 +00:00
}
}
#endregion
}
}