Radarr/src/NzbDrone.Api/RootFolders/RootFolderModule.cs

63 lines
2.4 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using FluentValidation;
2013-02-04 04:18:59 +00:00
using NzbDrone.Core.RootFolders;
using NzbDrone.Core.Validation.Paths;
using NzbDrone.SignalR;
2013-01-24 20:48:44 +00:00
namespace NzbDrone.Api.RootFolders
2013-01-24 20:48:44 +00:00
{
2013-11-13 20:08:37 +00:00
public class RootFolderModule : NzbDroneRestModuleWithSignalR<RootFolderResource, RootFolder>
2013-01-24 20:48:44 +00:00
{
2013-08-21 01:17:06 +00:00
private readonly IRootFolderService _rootFolderService;
2013-01-24 20:48:44 +00:00
public RootFolderModule(IRootFolderService rootFolderService,
IBroadcastSignalRMessage signalRBroadcaster,
RootFolderValidator rootFolderValidator,
PathExistsValidator pathExistsValidator,
DroneFactoryValidator droneFactoryValidator,
MappedNetworkDriveValidator mappedNetworkDriveValidator,
StartupFolderValidator startupFolderValidator,
FolderWritableValidator folderWritableValidator)
: base(signalRBroadcaster)
2013-01-24 20:48:44 +00:00
{
2013-02-04 04:18:59 +00:00
_rootFolderService = rootFolderService;
2013-01-24 20:48:44 +00:00
GetResourceAll = GetRootFolders;
2013-08-26 05:25:56 +00:00
GetResourceById = GetRootFolder;
CreateResource = CreateRootFolder;
DeleteResource = DeleteFolder;
2014-02-16 17:05:19 +00:00
SharedValidator.RuleFor(c => c.Path)
.Cascade(CascadeMode.StopOnFirstFailure)
.IsValidPath()
.SetValidator(rootFolderValidator)
.SetValidator(droneFactoryValidator)
.SetValidator(mappedNetworkDriveValidator)
.SetValidator(startupFolderValidator)
.SetValidator(pathExistsValidator)
.SetValidator(folderWritableValidator);
2013-01-24 20:48:44 +00:00
}
2013-08-26 05:25:56 +00:00
private RootFolderResource GetRootFolder(int id)
{
return _rootFolderService.Get(id).ToResource();
2013-08-26 05:25:56 +00:00
}
private int CreateRootFolder(RootFolderResource rootFolderResource)
2013-01-24 20:48:44 +00:00
{
var model = rootFolderResource.ToModel();
return _rootFolderService.Add(model).Id;
2013-01-24 20:48:44 +00:00
}
private List<RootFolderResource> GetRootFolders()
2013-01-24 20:48:44 +00:00
{
return _rootFolderService.AllWithUnmappedFolders().ToResource();
2013-01-24 20:48:44 +00:00
}
private void DeleteFolder(int id)
{
_rootFolderService.Remove(id);
}
2013-01-24 20:48:44 +00:00
}
}