@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.IO ;
using NLog ;
using NzbDrone.Common ;
using NzbDrone.Core.Configuration ;
using NzbDrone.Core.Datastore ;
using NzbDrone.Core.Tv ;
@ -26,12 +27,17 @@ namespace NzbDrone.Core.RootFolders
private readonly IBasicRepository < RootFolder > _rootFolderRepository ;
private readonly IDiskProvider _diskProvider ;
private readonly ISeriesRepository _seriesRepository ;
private readonly IConfigService _configService ;
public RootFolderService ( IBasicRepository < RootFolder > rootFolderRepository , IDiskProvider diskProvider , ISeriesRepository seriesRepository )
public RootFolderService ( IBasicRepository < RootFolder > rootFolderRepository ,
IDiskProvider diskProvider ,
ISeriesRepository seriesRepository ,
IConfigService configService )
{
_rootFolderRepository = rootFolderRepository ;
_diskProvider = diskProvider ;
_seriesRepository = seriesRepository ;
_configService = configService ;
}
public virtual List < RootFolder > All ( )
@ -66,7 +72,10 @@ namespace NzbDrone.Core.RootFolders
throw new DirectoryNotFoundException ( "Can't add root directory that doesn't exist." ) ;
if ( All ( ) . Exists ( r = > DiskProvider . PathEquals ( r . Path , rootFolder . Path ) ) )
throw new InvalidOperationException ( "Root directory already exist." ) ;
throw new InvalidOperationException ( "Recent directory already exist." ) ;
if ( DiskProvider . PathEquals ( _configService . DownloadedEpisodesFolder , rootFolder . Path ) )
throw new InvalidOperationException ( "Drone Factory folder cannot be used." ) ;
_rootFolderRepository . Insert ( rootFolder ) ;