示例#1
0
        public RootFolderModule(IRootFolderService rootFolderService,
                                IBroadcastSignalRMessage signalRBroadcaster,
                                RootFolderValidator rootFolderValidator,
                                PathExistsValidator pathExistsValidator,
                                MappedNetworkDriveValidator mappedNetworkDriveValidator,
                                StartupFolderValidator startupFolderValidator,
                                SystemFolderValidator systemFolderValidator,
                                FolderWritableValidator folderWritableValidator
                                )
            : base(signalRBroadcaster)
        {
            _rootFolderService = rootFolderService;

            GetResourceAll  = GetRootFolders;
            GetResourceById = GetRootFolder;
            CreateResource  = CreateRootFolder;
            DeleteResource  = DeleteFolder;

            SharedValidator.RuleFor(c => c.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(startupFolderValidator)
            .SetValidator(pathExistsValidator)
            .SetValidator(systemFolderValidator)
            .SetValidator(folderWritableValidator);
        }
示例#2
0
 public MediaManagementConfigModule(IConfigService configService, PathExistsValidator pathExistsValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.FileChmod).NotEmpty();
     SharedValidator.RuleFor(c => c.FolderChmod).NotEmpty();
     SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath().SetValidator(pathExistsValidator).When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));
 }
        public RemotePathMappingModule(IRemotePathMappingService remotePathMappingService,
                                       PathExistsValidator pathExistsValidator,
                                       MappedNetworkDriveValidator mappedNetworkDriveValidator)
        {
            _remotePathMappingService = remotePathMappingService;

            GetResourceAll  = GetMappings;
            GetResourceById = GetMappingById;
            CreateResource  = CreateMapping;
            DeleteResource  = DeleteMapping;
            UpdateResource  = UpdateMapping;

            SharedValidator.RuleFor(c => c.Host)
            .NotEmpty();

            // We cannot use IsValidPath here, because it's a remote path, possibly other OS.
            SharedValidator.RuleFor(c => c.RemotePath)
            .NotEmpty();

            SharedValidator.RuleFor(c => c.LocalPath)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(pathExistsValidator);
        }
示例#4
0
        public MediaManagementConfigController(IConfigService configService,
                                               PathExistsValidator pathExistsValidator,
                                               FolderChmodValidator folderChmodValidator,
                                               FolderWritableValidator folderWritableValidator,
                                               MoviePathValidator moviePathValidator,
                                               StartupFolderValidator startupFolderValidator,
                                               SystemFolderValidator systemFolderValidator,
                                               RootFolderAncestorValidator rootFolderAncestorValidator,
                                               RootFolderValidator rootFolderValidator)
            : base(configService)
        {
            SharedValidator.RuleFor(c => c.RecycleBinCleanupDays).GreaterThanOrEqualTo(0);
            SharedValidator.RuleFor(c => c.ChmodFolder).SetValidator(folderChmodValidator).When(c => !string.IsNullOrEmpty(c.ChmodFolder) && (OsInfo.IsLinux || OsInfo.IsOsx));

            SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath()
            .SetValidator(folderWritableValidator)
            .SetValidator(rootFolderValidator)
            .SetValidator(pathExistsValidator)
            .SetValidator(rootFolderAncestorValidator)
            .SetValidator(startupFolderValidator)
            .SetValidator(systemFolderValidator)
            .SetValidator(moviePathValidator)
            .When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));

            SharedValidator.RuleFor(c => c.MinimumFreeSpaceWhenImporting).GreaterThanOrEqualTo(100);
        }
示例#5
0
 public MediaManagementConfigModule(IConfigService configService, PathExistsValidator pathExistsValidator, FolderChmodValidator folderChmodValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.RecycleBinCleanupDays).GreaterThanOrEqualTo(0);
     SharedValidator.RuleFor(c => c.ChmodFolder).SetValidator(folderChmodValidator).When(c => !string.IsNullOrEmpty(c.ChmodFolder) && (OsInfo.IsLinux || OsInfo.IsOsx));
     SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath().SetValidator(pathExistsValidator).When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));
     SharedValidator.RuleFor(c => c.MinimumFreeSpaceWhenImporting).GreaterThanOrEqualTo(100);
 }
 public MediaManagementConfigModule(IConfigService configService, PathExistsValidator pathExistsValidator, FileChmodValidator fileChmodValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.RecycleBinCleanupDays).GreaterThanOrEqualTo(0);
     SharedValidator.RuleFor(c => c.FileChmod).SetValidator(fileChmodValidator).When(c => !string.IsNullOrEmpty(c.FileChmod) && PlatformInfo.IsMono);
     SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath().SetValidator(pathExistsValidator).When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));
     SharedValidator.RuleFor(c => c.MinimumFreeSpaceWhenImporting).GreaterThanOrEqualTo(100);
 }
        public void PathNotExist(string pathName, string pathValue)
        {
            PathExistsValidator val = this.CreateValidator(pathName, false);
            Task task = ValidatorTestSetup.CreateTask("someTask", new string[] { pathName }, new string[] { pathValue });
            IEnumerable <ValidationResult> results = val.Evaluate(new Task[] { task });

            Assert.Contains(results, r => r.State == ValidatorState.Error);
            Assert.DoesNotContain(results, r => r.State == ValidatorState.Success);
        }
示例#8
0
        public RootFolderModule(IRootFolderService rootFolderService,
                                ICalibreProxy calibreProxy,
                                IBroadcastSignalRMessage signalRBroadcaster,
                                RootFolderValidator rootFolderValidator,
                                PathExistsValidator pathExistsValidator,
                                MappedNetworkDriveValidator mappedNetworkDriveValidator,
                                StartupFolderValidator startupFolderValidator,
                                SystemFolderValidator systemFolderValidator,
                                FolderWritableValidator folderWritableValidator,
                                QualityProfileExistsValidator qualityProfileExistsValidator,
                                MetadataProfileExistsValidator metadataProfileExistsValidator)
            : base(signalRBroadcaster)
        {
            _rootFolderService = rootFolderService;
            _calibreProxy      = calibreProxy;

            GetResourceAll  = GetRootFolders;
            GetResourceById = GetRootFolder;
            CreateResource  = CreateRootFolder;
            UpdateResource  = UpdateRootFolder;
            DeleteResource  = DeleteFolder;

            SharedValidator.RuleFor(c => c.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(startupFolderValidator)
            .SetValidator(pathExistsValidator)
            .SetValidator(systemFolderValidator)
            .SetValidator(folderWritableValidator);

            PostValidator.RuleFor(c => c.Path)
            .SetValidator(rootFolderValidator);

            SharedValidator.RuleFor(c => c)
            .Must(x => CalibreLibraryOnlyUsedOnce(x))
            .When(x => x.IsCalibreLibrary)
            .WithMessage("Calibre library is already configured as a root folder");

            SharedValidator.RuleFor(c => c.Name)
            .NotEmpty();

            SharedValidator.RuleFor(c => c.DefaultMetadataProfileId)
            .SetValidator(metadataProfileExistsValidator);

            SharedValidator.RuleFor(c => c.DefaultQualityProfileId)
            .SetValidator(qualityProfileExistsValidator);

            SharedValidator.RuleFor(c => c.Host).ValidHost().When(x => x.IsCalibreLibrary);
            SharedValidator.RuleFor(c => c.Port).InclusiveBetween(1, 65535).When(x => x.IsCalibreLibrary);
            SharedValidator.RuleFor(c => c.UrlBase).ValidUrlBase().When(c => c.UrlBase.IsNotNullOrWhiteSpace());
            SharedValidator.RuleFor(c => c.Username).NotEmpty().When(c => !string.IsNullOrWhiteSpace(c.Password));
            SharedValidator.RuleFor(c => c.Password).NotEmpty().When(c => !string.IsNullOrWhiteSpace(c.Username));

            SharedValidator.RuleFor(c => c.OutputFormat).Must(x => x.Split(',').All(y => Enum.TryParse <CalibreFormat>(y, true, out _))).When(x => x.OutputFormat.IsNotNullOrWhiteSpace()).WithMessage("Invalid output formats");
            SharedValidator.RuleFor(c => c.OutputProfile).IsEnumName(typeof(CalibreProfile));
        }
        private PathExistsValidator CreateValidator(string paramNames, bool pathExists)
        {
            PathExistsValidator val = Substitute.ForPartsOf <PathExistsValidator>();

            val.WhenForAnyArgs(v => v.PathExists(null)).DoNotCallBase();
            val.PathExists(null).ReturnsForAnyArgs(pathExists);
            val.Data["ParamNames"] = paramNames;
            return(val);
        }
示例#10
0
 public RTorrentDirectoryValidator(PathExistsValidator pathExistsValidator,
                                   MappedNetworkDriveValidator mappedNetworkDriveValidator)
 {
     RuleFor(c => c.Directory).Cascade(CascadeMode.StopOnFirstFailure)
     .IsValidPath()
     .SetValidator(mappedNetworkDriveValidator)
     .SetValidator(pathExistsValidator)
     .When(c => c.Directory.IsNotNullOrWhiteSpace())
     .When(c => c.Host == "localhost" || c.Host == "127.0.0.1");
 }
示例#11
0
 public RTorrentDirectoryValidator(RootFolderValidator rootFolderValidator,
                                   PathExistsValidator pathExistsValidator,
                                   DroneFactoryValidator droneFactoryValidator,
                                   MappedNetworkDriveValidator mappedNetworkDriveValidator)
 {
     RuleFor(c => c.TvDirectory).Cascade(CascadeMode.StopOnFirstFailure)
     .IsValidPath()
     .SetValidator(rootFolderValidator)
     .SetValidator(droneFactoryValidator)
     .SetValidator(mappedNetworkDriveValidator)
     .SetValidator(pathExistsValidator)
     .When(c => c.Host == "localhost" || c.Host == "127.0.0.1");
 }
示例#12
0
 public DownloadClientConfigModule(IConfigService configService,
                                   RootFolderValidator rootFolderValidator,
                                   PathExistsValidator pathExistsValidator,
                                   MappedNetworkDriveValidator mappedNetworkDriveValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.DownloadedEpisodesFolder)
     .Cascade(CascadeMode.StopOnFirstFailure)
     .IsValidPath()
     .SetValidator(rootFolderValidator)
     .SetValidator(mappedNetworkDriveValidator)
     .SetValidator(pathExistsValidator)
     .When(c => !string.IsNullOrWhiteSpace(c.DownloadedEpisodesFolder));
 }
        public RemotePathMappingController(IRemotePathMappingService remotePathMappingService,
                                           PathExistsValidator pathExistsValidator,
                                           MappedNetworkDriveValidator mappedNetworkDriveValidator)
        {
            _remotePathMappingService = remotePathMappingService;

            SharedValidator.RuleFor(c => c.Host)
            .NotEmpty();

            // We cannot use IsValidPath here, because it's a remote path, possibly other OS.
            SharedValidator.RuleFor(c => c.RemotePath)
            .NotEmpty();

            SharedValidator.RuleFor(c => c.LocalPath)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(pathExistsValidator);
        }
示例#14
0
        public RootFolderModule(IRootFolderService rootFolderService,
                                IBroadcastSignalRMessage signalRBroadcaster,
                                RootFolderValidator rootFolderValidator,
                                PathExistsValidator pathExistsValidator,
                                DroneFactoryValidator droneFactoryValidator)
            : base(signalRBroadcaster)
        {
            _rootFolderService = rootFolderService;

            GetResourceAll  = GetRootFolders;
            GetResourceById = GetRootFolder;
            CreateResource  = CreateRootFolder;
            DeleteResource  = DeleteFolder;

            SharedValidator.RuleFor(c => c.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(pathExistsValidator)
            .SetValidator(droneFactoryValidator);
        }
示例#15
0
        public SeriesModule(ICommandExecutor commandExecutor,
                            ISeriesService seriesService,
                            ISeriesStatisticsService seriesStatisticsService,
                            ISceneMappingService sceneMappingService,
                            IMapCoversToLocal coverMapper,
                            RootFolderValidator rootFolderValidator,
                            PathExistsValidator pathExistsValidator,
                            SeriesPathValidator seriesPathValidator,
                            SeriesExistsValidator seriesExistsValidator,
                            DroneFactoryValidator droneFactoryValidator
                            )
            : base(commandExecutor)
        {
            _commandExecutor         = commandExecutor;
            _seriesService           = seriesService;
            _seriesStatisticsService = seriesStatisticsService;
            _sceneMappingService     = sceneMappingService;

            _coverMapper = coverMapper;

            GetResourceAll  = AllSeries;
            GetResourceById = GetSeries;
            CreateResource  = AddSeries;
            UpdateResource  = UpdateSeries;
            DeleteResource  = DeleteSeries;

            SharedValidator.RuleFor(s => s.QualityProfileId).ValidId();

            PutValidator.RuleFor(s => s.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(seriesPathValidator)
            .SetValidator(droneFactoryValidator);

            PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => String.IsNullOrEmpty(s.RootFolderPath));
            PostValidator.RuleFor(s => s.RootFolderPath).IsValidPath().When(s => String.IsNullOrEmpty(s.Path));
            PostValidator.RuleFor(s => s.Title).NotEmpty();
            PostValidator.RuleFor(s => s.TvdbId).GreaterThan(0).SetValidator(seriesExistsValidator);
        }
示例#16
0
 public MediaManagementConfigModule(IConfigService configService,
                                    PathExistsValidator pathExistsValidator,
                                    FolderChmodValidator folderChmodValidator,
                                    FolderWritableValidator folderWritableValidator,
                                    MoviePathValidator moviePathValidator,
                                    StartupFolderValidator startupFolderValidator,
                                    SystemFolderValidator systemFolderValidator,
                                    RootFolderAncestorValidator rootFolderAncestorValidator,
                                    RootFolderValidator rootFolderValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.ChmodFolder).SetValidator(folderChmodValidator).When(c => !string.IsNullOrEmpty(c.ChmodFolder) && PlatformInfo.IsMono);
     SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath()
     .SetValidator(folderWritableValidator)
     .SetValidator(rootFolderValidator)
     .SetValidator(pathExistsValidator)
     .SetValidator(moviePathValidator)
     .SetValidator(rootFolderAncestorValidator)
     .SetValidator(startupFolderValidator)
     .SetValidator(systemFolderValidator)
     .When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));
 }
示例#17
0
        public RootFolderController(IRootFolderService rootFolderService,
                                    IBroadcastSignalRMessage signalRBroadcaster,
                                    RootFolderValidator rootFolderValidator,
                                    PathExistsValidator pathExistsValidator,
                                    MappedNetworkDriveValidator mappedNetworkDriveValidator,
                                    RecycleBinValidator recycleBinValidator,
                                    StartupFolderValidator startupFolderValidator,
                                    SystemFolderValidator systemFolderValidator,
                                    FolderWritableValidator folderWritableValidator)
            : base(signalRBroadcaster)
        {
            _rootFolderService = rootFolderService;

            SharedValidator.RuleFor(c => c.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(startupFolderValidator)
            .SetValidator(recycleBinValidator)
            .SetValidator(pathExistsValidator)
            .SetValidator(systemFolderValidator)
            .SetValidator(folderWritableValidator);
        }
 public MediaManagementConfigModule(IConfigService configService, PathExistsValidator pathExistsValidator, FileChmodValidator fileChmodValidator)
     : base(configService)
 {
     SharedValidator.RuleFor(c => c.FileChmod).SetValidator(fileChmodValidator).When(c => !string.IsNullOrEmpty(c.FileChmod) && PlatformInfo.IsMono);
     SharedValidator.RuleFor(c => c.RecycleBin).IsValidPath().SetValidator(pathExistsValidator).When(c => !string.IsNullOrWhiteSpace(c.RecycleBin));
 }
示例#19
0
        public DownloadClientConfigModule(IConfigService configService, RootFolderValidator rootFolderValidator, PathExistsValidator pathExistsValidator)
            : base(configService)
        {
            SharedValidator.RuleFor(c => c.DownloadedEpisodesFolder)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(pathExistsValidator)
            .When(c => !String.IsNullOrWhiteSpace(c.DownloadedEpisodesFolder));

            SharedValidator.RuleFor(c => c.BlacklistGracePeriod)
            .InclusiveBetween(1, 24);

            SharedValidator.RuleFor(c => c.BlacklistRetryInterval)
            .InclusiveBetween(5, 120);

            SharedValidator.RuleFor(c => c.BlacklistRetryLimit)
            .InclusiveBetween(0, 10);
        }