예제 #1
0
        public MovieModule(IBroadcastSignalRMessage signalRBroadcaster,
                           IMovieService moviesService,
                           IMovieTranslationService movieTranslationService,
                           IAddMovieService addMovieService,
                           IMapCoversToLocal coverMapper,
                           IManageCommandQueue commandQueueManager,
                           IUpgradableSpecification qualityUpgradableSpecification,
                           IConfigService configService,
                           RootFolderValidator rootFolderValidator,
                           MappedNetworkDriveValidator mappedNetworkDriveValidator,
                           MoviePathValidator moviesPathValidator,
                           MovieExistsValidator moviesExistsValidator,
                           MovieAncestorValidator moviesAncestorValidator,
                           RecycleBinValidator recycleBinValidator,
                           SystemFolderValidator systemFolderValidator,
                           ProfileExistsValidator profileExistsValidator,
                           MovieFolderAsRootFolderValidator movieFolderAsRootFolderValidator,
                           Logger logger)
            : base(signalRBroadcaster)
        {
            _moviesService                  = moviesService;
            _movieTranslationService        = movieTranslationService;
            _addMovieService                = addMovieService;
            _qualityUpgradableSpecification = qualityUpgradableSpecification;
            _configService                  = configService;
            _coverMapper         = coverMapper;
            _commandQueueManager = commandQueueManager;
            _logger = logger;

            GetResourceAll  = AllMovie;
            GetResourceById = GetMovie;
            CreateResource  = AddMovie;
            UpdateResource  = UpdateMovie;
            DeleteResource  = DeleteMovie;

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

            SharedValidator.RuleFor(s => s.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(moviesPathValidator)
            .SetValidator(moviesAncestorValidator)
            .SetValidator(recycleBinValidator)
            .SetValidator(systemFolderValidator)
            .When(s => !s.Path.IsNullOrWhiteSpace());

            SharedValidator.RuleFor(s => s.QualityProfileId).SetValidator(profileExistsValidator);

            PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.RootFolderPath)
            .IsValidPath()
            .SetValidator(movieFolderAsRootFolderValidator)
            .When(s => s.Path.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.Title).NotEmpty().When(s => s.TmdbId <= 0);
            PostValidator.RuleFor(s => s.TmdbId).NotNull().NotEmpty().SetValidator(moviesExistsValidator);

            PutValidator.RuleFor(s => s.Path).IsValidPath();
        }
예제 #2
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);
        }
예제 #3
0
        public MovieModule(IBroadcastSignalRMessage signalRBroadcaster,
                           IMovieService moviesService,
                           IMovieStatisticsService moviesStatisticsService,
                           ISceneMappingService sceneMappingService,
                           IMapCoversToLocal coverMapper,
                           RootFolderValidator rootFolderValidator,
                           MoviePathValidator moviesPathValidator,
                           MovieExistsValidator moviesExistsValidator,
                           DroneFactoryValidator droneFactoryValidator,
                           MovieAncestorValidator moviesAncestorValidator,
                           ProfileExistsValidator profileExistsValidator
                           )
            : base(signalRBroadcaster)
        {
            _moviesService           = moviesService;
            _moviesStatisticsService = moviesStatisticsService;

            _coverMapper = coverMapper;

            GetResourceAll        = AllMovie;
            GetResourcePaged      = GetMoviePaged;
            GetResourceById       = GetMovie;
            Get[TITLE_SLUG_ROUTE] = GetByTitleSlug; /*(options) => {
                                                     * return ReqResExtensions.AsResponse(GetByTitleSlug(options.slug), Nancy.HttpStatusCode.OK);
                                                     * };*/



            CreateResource = AddMovie;
            UpdateResource = UpdateMovie;
            DeleteResource = DeleteMovie;

            Validation.RuleBuilderExtensions.ValidId(SharedValidator.RuleFor(s => s.ProfileId));

            SharedValidator.RuleFor(s => s.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(moviesPathValidator)
            .SetValidator(droneFactoryValidator)
            .SetValidator(moviesAncestorValidator)
            .When(s => !s.Path.IsNullOrWhiteSpace());

            SharedValidator.RuleFor(s => s.ProfileId).SetValidator(profileExistsValidator);

            PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.RootFolderPath).IsValidPath().When(s => s.Path.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.Title).NotEmpty();
            PostValidator.RuleFor(s => s.TmdbId).NotNull().NotEmpty().SetValidator(moviesExistsValidator);

            PutValidator.RuleFor(s => s.Path).IsValidPath();
        }
예제 #4
0
        public AddMovieValidator(RootFolderValidator rootFolderValidator,
                                 MoviePathValidator moviePathValidator,
                                 MovieAncestorValidator movieAncestorValidator,
                                 MovieTitleSlugValidator movieTitleSlugValidator)
        {
            RuleFor(c => c.Path).Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(moviePathValidator)
            .SetValidator(movieAncestorValidator);

            RuleFor(c => c.TitleSlug).SetValidator(movieTitleSlugValidator);
        }
예제 #5
0
        public MovieModule(IBroadcastSignalRMessage signalRBroadcaster,
                           IMovieService movieService,
                           IAddMovieService addMovieService,
                           IMapCoversToLocal coverMapper,
                           RootFolderValidator rootFolderValidator,
                           MappedNetworkDriveValidator mappedNetworkDriveValidator,
                           MoviePathValidator moviesPathValidator,
                           MovieExistsValidator moviesExistsValidator,
                           MovieAncestorValidator moviesAncestorValidator,
                           SystemFolderValidator systemFolderValidator,
                           ProfileExistsValidator profileExistsValidator)
            : base(signalRBroadcaster)
        {
            _movieService    = movieService;
            _addMovieService = addMovieService;

            _coverMapper = coverMapper;

            GetResourceAll  = AllMovie;
            GetResourceById = GetMovie;

            CreateResource = AddMovie;
            UpdateResource = UpdateMovie;
            DeleteResource = DeleteMovie;

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

            SharedValidator.RuleFor(s => s.Path)
            .Cascade(CascadeMode.StopOnFirstFailure)
            .IsValidPath()
            .SetValidator(rootFolderValidator)
            .SetValidator(mappedNetworkDriveValidator)
            .SetValidator(moviesPathValidator)
            .SetValidator(moviesAncestorValidator)
            .SetValidator(systemFolderValidator)
            .When(s => !s.Path.IsNullOrWhiteSpace());

            SharedValidator.RuleFor(s => s.ProfileId).SetValidator(profileExistsValidator);

            PostValidator.RuleFor(s => s.Path).IsValidPath().When(s => s.RootFolderPath.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.RootFolderPath)
            .IsValidPath()
            .When(s => s.Path.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.Title).NotEmpty().When(s => s.TmdbId <= 0);
            PostValidator.RuleFor(s => s.TmdbId).NotNull().NotEmpty().SetValidator(moviesExistsValidator);

            PutValidator.RuleFor(s => s.Path).IsValidPath();
        }
예제 #6
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));
 }