Prevent adding a root folder that is the same as drone factory

This commit is contained in:
Mark McDowall 2013-08-02 00:16:37 -07:00
commit 485f05d4b9
6 changed files with 33 additions and 11 deletions

View file

@ -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);