예제 #1
0
        public BookInfoProxy(IHttpClient httpClient,
                             ICachedHttpResponseService cachedHttpClient,
                             IGoodreadsSearchProxy goodreadsSearchProxy,
                             IAuthorService authorService,
                             IBookService bookService,
                             IEditionService editionService,
                             IMetadataRequestBuilder requestBuilder,
                             Logger logger,
                             ICacheManager cacheManager)
        {
            _httpClient           = httpClient;
            _cachedHttpClient     = cachedHttpClient;
            _goodreadsSearchProxy = goodreadsSearchProxy;
            _authorService        = authorService;
            _bookService          = bookService;
            _editionService       = editionService;
            _requestBuilder       = requestBuilder;
            _cache  = cacheManager.GetCache <HashSet <string> >(GetType());
            _logger = logger;

            _authorCache = new CachingService(new MemoryCacheProvider(new MemoryCache(new MemoryCacheOptions {
                SizeLimit = 10
            })));
            _authorCache.DefaultCachePolicy = new CacheDefaults
            {
                DefaultCacheDurationSeconds = 60
            };
        }
예제 #2
0
 public RefreshBookService(IBookService bookService,
                           IAuthorService authorService,
                           IAddAuthorService addAuthorService,
                           IEditionService editionService,
                           IAuthorMetadataService authorMetadataService,
                           IProvideAuthorInfo authorInfo,
                           IProvideBookInfo bookInfo,
                           IRefreshEditionService refreshEditionService,
                           IMediaFileService mediaFileService,
                           IHistoryService historyService,
                           IEventAggregator eventAggregator,
                           ICheckIfBookShouldBeRefreshed checkIfBookShouldBeRefreshed,
                           IMapCoversToLocal mediaCoverService,
                           Logger logger)
     : base(logger, authorMetadataService)
 {
     _bookService                  = bookService;
     _authorService                = authorService;
     _addAuthorService             = addAuthorService;
     _editionService               = editionService;
     _authorInfo                   = authorInfo;
     _bookInfo                     = bookInfo;
     _refreshEditionService        = refreshEditionService;
     _mediaFileService             = mediaFileService;
     _historyService               = historyService;
     _eventAggregator              = eventAggregator;
     _checkIfBookShouldBeRefreshed = checkIfBookShouldBeRefreshed;
     _mediaCoverService            = mediaCoverService;
     _logger = logger;
 }
예제 #3
0
        public GoodreadsProxy(ICachedHttpResponseService cachedHttpClient,
                              IAuthorService authorService,
                              IBookService bookService,
                              IEditionService editionService,
                              Logger logger,
                              ICacheManager cacheManager)
        {
            _cachedHttpClient = cachedHttpClient;
            _authorService    = authorService;
            _bookService      = bookService;
            _editionService   = editionService;
            _cache            = cacheManager.GetCache <HashSet <string> >(GetType());
            _logger           = logger;

            _requestBuilder = new HttpRequestBuilder("https://www.goodreads.com/{route}")
                              .AddQueryParam("key", new string("gSuM2Onzl6sjMU25HY1Xcd".Reverse().ToArray()))
                              .AddQueryParam("_nc", "1")
                              .SetHeader("User-Agent", "Dalvik/1.6.0 (Linux; U; Android 4.1.2; GT-I9100 Build/JZO54K)")
                              .KeepAlive()
                              .CreateFactory();

            _searchBuilder = new HttpRequestBuilder("https://www.goodreads.com/book/auto_complete")
                             .AddQueryParam("format", "json")
                             .SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36")
                             .KeepAlive()
                             .CreateFactory();
        }
예제 #4
0
 public ImportApprovedBooks(IUpgradeMediaFiles bookFileUpgrader,
                            IMediaFileService mediaFileService,
                            IAudioTagService audioTagService,
                            IAuthorService authorService,
                            IAddAuthorService addAuthorService,
                            IRefreshAuthorService refreshAuthorService,
                            IBookService bookService,
                            IEditionService editionService,
                            IRootFolderService rootFolderService,
                            IRecycleBinProvider recycleBinProvider,
                            IExtraService extraService,
                            IDiskProvider diskProvider,
                            IEventAggregator eventAggregator,
                            IManageCommandQueue commandQueueManager,
                            Logger logger)
 {
     _bookFileUpgrader     = bookFileUpgrader;
     _mediaFileService     = mediaFileService;
     _audioTagService      = audioTagService;
     _authorService        = authorService;
     _addAuthorService     = addAuthorService;
     _refreshAuthorService = refreshAuthorService;
     _bookService          = bookService;
     _editionService       = editionService;
     _rootFolderService    = rootFolderService;
     _recycleBinProvider   = recycleBinProvider;
     _extraService         = extraService;
     _diskProvider         = diskProvider;
     _eventAggregator      = eventAggregator;
     _commandQueueManager  = commandQueueManager;
     _logger = logger;
 }
 public EditionController(
     IEditionService editionService,
     IContractService contractService)
 {
     _editionService  = editionService;
     _contractService = contractService;
 }
예제 #6
0
 public ManualImportService(IDiskProvider diskProvider,
                            IParsingService parsingService,
                            IRootFolderService rootFolderService,
                            IDiskScanService diskScanService,
                            IMakeImportDecision importDecisionMaker,
                            IAuthorService authorService,
                            IBookService bookService,
                            IEditionService editionService,
                            IProvideBookInfo bookInfo,
                            IMetadataTagService metadataTagService,
                            IImportApprovedBooks importApprovedBooks,
                            ITrackedDownloadService trackedDownloadService,
                            IDownloadedBooksImportService downloadedTracksImportService,
                            IProvideImportItemService provideImportItemService,
                            IEventAggregator eventAggregator,
                            Logger logger)
 {
     _diskProvider                  = diskProvider;
     _parsingService                = parsingService;
     _rootFolderService             = rootFolderService;
     _diskScanService               = diskScanService;
     _importDecisionMaker           = importDecisionMaker;
     _authorService                 = authorService;
     _bookService                   = bookService;
     _editionService                = editionService;
     _bookInfo                      = bookInfo;
     _metadataTagService            = metadataTagService;
     _importApprovedBooks           = importApprovedBooks;
     _trackedDownloadService        = trackedDownloadService;
     _downloadedTracksImportService = downloadedTracksImportService;
     _provideImportItemService      = provideImportItemService;
     _eventAggregator               = eventAggregator;
     _logger = logger;
 }
예제 #7
0
 public ImportListSyncService(IImportListFactory importListFactory,
                              IImportListExclusionService importListExclusionService,
                              IFetchAndParseImportList listFetcherAndParser,
                              IGoodreadsProxy goodreadsProxy,
                              IGoodreadsSearchProxy goodreadsSearchProxy,
                              IAuthorService authorService,
                              IBookService bookService,
                              IEditionService editionService,
                              IAddAuthorService addAuthorService,
                              IAddBookService addBookService,
                              IEventAggregator eventAggregator,
                              IManageCommandQueue commandQueueManager,
                              Logger logger)
 {
     _importListFactory          = importListFactory;
     _importListExclusionService = importListExclusionService;
     _listFetcherAndParser       = listFetcherAndParser;
     _goodreadsProxy             = goodreadsProxy;
     _goodreadsSearchProxy       = goodreadsSearchProxy;
     _authorService       = authorService;
     _bookService         = bookService;
     _editionService      = editionService;
     _addAuthorService    = addAuthorService;
     _addBookService      = addBookService;
     _eventAggregator     = eventAggregator;
     _commandQueueManager = commandQueueManager;
     _logger = logger;
 }
예제 #8
0
        public BookModule(IAuthorService authorService,
                          IBookService bookService,
                          IAddBookService addBookService,
                          IEditionService editionService,
                          ISeriesBookLinkService seriesBookLinkService,
                          IAuthorStatisticsService authorStatisticsService,
                          IMapCoversToLocal coverMapper,
                          IUpgradableSpecification upgradableSpecification,
                          IBroadcastSignalRMessage signalRBroadcaster,
                          QualityProfileExistsValidator qualityProfileExistsValidator,
                          MetadataProfileExistsValidator metadataProfileExistsValidator)

            : base(bookService, seriesBookLinkService, authorStatisticsService, coverMapper, upgradableSpecification, signalRBroadcaster)
        {
            _authorService  = authorService;
            _editionService = editionService;
            _addBookService = addBookService;

            GetResourceAll = GetBooks;
            CreateResource = AddBook;
            UpdateResource = UpdateBook;
            DeleteResource = DeleteBook;
            Put("/monitor", x => SetBooksMonitored());

            PostValidator.RuleFor(s => s.ForeignBookId).NotEmpty();
            PostValidator.RuleFor(s => s.Author.QualityProfileId).SetValidator(qualityProfileExistsValidator);
            PostValidator.RuleFor(s => s.Author.MetadataProfileId).SetValidator(metadataProfileExistsValidator);
            PostValidator.RuleFor(s => s.Author.RootFolderPath).IsValidPath().When(s => s.Author.Path.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.Author.ForeignAuthorId).NotEmpty();
        }
예제 #9
0
 public RefreshEditionService(IEditionService editionService,
                              IAudioTagService audioTagService,
                              Logger logger)
 {
     _editionService  = editionService;
     _audioTagService = audioTagService;
     _logger          = logger;
 }
예제 #10
0
 public RefreshEditionService(IEditionService editionService,
                              IMetadataTagService metadataTagService,
                              Logger logger)
 {
     _editionService     = editionService;
     _metadataTagService = metadataTagService;
     _logger             = logger;
 }
예제 #11
0
 public BookService(IBookRepository bookRepository,
                    IEditionService editionService,
                    IEventAggregator eventAggregator,
                    Logger logger)
 {
     _bookRepository  = bookRepository;
     _editionService  = editionService;
     _eventAggregator = eventAggregator;
     _logger          = logger;
 }
예제 #12
0
 public ParsingService(IAuthorService authorService,
                       IBookService bookService,
                       IEditionService editionService,
                       IMediaFileService mediaFileService,
                       Logger logger)
 {
     _bookService      = bookService;
     _editionService   = editionService;
     _authorService    = authorService;
     _mediaFileService = mediaFileService;
     _logger           = logger;
 }
예제 #13
0
 public ManualImportController(IManualImportService manualImportService,
                               IAuthorService authorService,
                               IEditionService editionService,
                               IBookService bookService,
                               Logger logger)
 {
     _authorService       = authorService;
     _bookService         = bookService;
     _editionService      = editionService;
     _manualImportService = manualImportService;
     _logger = logger;
 }
예제 #14
0
 public ExtraService(IMediaFileService mediaFileService,
                     IEditionService editionService,
                     IDiskProvider diskProvider,
                     IConfigService configService,
                     IEnumerable <IManageExtraFiles> extraFileManagers,
                     Logger logger)
 {
     _mediaFileService  = mediaFileService;
     _editionService    = editionService;
     _diskProvider      = diskProvider;
     _configService     = configService;
     _extraFileManagers = extraFileManagers.OrderBy(e => e.Order).ToList();
     _logger            = logger;
 }
예제 #15
0
 public CandidateService(ISearchForNewBook bookSearchService,
                         IAuthorService authorService,
                         IBookService bookService,
                         IEditionService editionService,
                         IMediaFileService mediaFileService,
                         Logger logger)
 {
     _bookSearchService = bookSearchService;
     _authorService     = authorService;
     _bookService       = bookService;
     _editionService    = editionService;
     _mediaFileService  = mediaFileService;
     _logger            = logger;
 }
예제 #16
0
 public ContractController(
     IGenreService genreService,
     IContractService contractService,
     IContractResultService contractResultService,
     IEditionService editionService,
     ICardService cardService,
     ISubscriptionService subscriptionService,
     IPaymentService paymentService,
     IPublisherService publisherService
     )
 {
     _genreService          = genreService;
     _contractService       = contractService;
     _contractResultService = contractResultService;
     _editionService        = editionService;
     _cardService           = cardService;
     _subscriptionService   = subscriptionService;
     _paymentService        = paymentService;
     _publisherService      = publisherService;
 }
예제 #17
0
        public ManualImportModule(IManualImportService manualImportService,
                                  IAuthorService authorService,
                                  IEditionService editionService,
                                  IBookService bookService,
                                  Logger logger)
        {
            _authorService       = authorService;
            _bookService         = bookService;
            _editionService      = editionService;
            _manualImportService = manualImportService;
            _logger = logger;

            GetResourceAll = GetMediaFiles;

            Put("/", options =>
            {
                var resource = Request.Body.FromJson <List <ManualImportResource> >();
                return(ResponseWithCode(UpdateImportItems(resource), HttpStatusCode.Accepted));
            });
        }
예제 #18
0
 public MetadataProfileService(IMetadataProfileRepository profileRepository,
                               IAuthorService authorService,
                               IBookService bookService,
                               IEditionService editionService,
                               IMediaFileService mediaFileService,
                               IImportListFactory importListFactory,
                               IRootFolderService rootFolderService,
                               ITermMatcherService termMatcherService,
                               Logger logger)
 {
     _profileRepository  = profileRepository;
     _authorService      = authorService;
     _bookService        = bookService;
     _editionService     = editionService;
     _mediaFileService   = mediaFileService;
     _importListFactory  = importListFactory;
     _rootFolderService  = rootFolderService;
     _termMatcherService = termMatcherService;
     _logger             = logger;
 }
예제 #19
0
 public BookFileMovingService(IEditionService editionService,
                              IUpdateBookFileService updateBookFileService,
                              IBuildFileNames buildFileNames,
                              IDiskTransferService diskTransferService,
                              IDiskProvider diskProvider,
                              IRootFolderWatchingService rootFolderWatchingService,
                              IMediaFileAttributeService mediaFileAttributeService,
                              IEventAggregator eventAggregator,
                              IConfigService configService,
                              Logger logger)
 {
     _editionService            = editionService;
     _updateBookFileService     = updateBookFileService;
     _buildFileNames            = buildFileNames;
     _diskTransferService       = diskTransferService;
     _diskProvider              = diskProvider;
     _rootFolderWatchingService = rootFolderWatchingService;
     _mediaFileAttributeService = mediaFileAttributeService;
     _eventAggregator           = eventAggregator;
     _configService             = configService;
     _logger = logger;
 }
예제 #20
0
        public BookController(IAuthorService authorService,
                              IBookService bookService,
                              IAddBookService addBookService,
                              IEditionService editionService,
                              ISeriesBookLinkService seriesBookLinkService,
                              IAuthorStatisticsService authorStatisticsService,
                              IMapCoversToLocal coverMapper,
                              IUpgradableSpecification upgradableSpecification,
                              IBroadcastSignalRMessage signalRBroadcaster,
                              QualityProfileExistsValidator qualityProfileExistsValidator,
                              MetadataProfileExistsValidator metadataProfileExistsValidator)

            : base(bookService, seriesBookLinkService, authorStatisticsService, coverMapper, upgradableSpecification, signalRBroadcaster)
        {
            _authorService  = authorService;
            _editionService = editionService;
            _addBookService = addBookService;

            PostValidator.RuleFor(s => s.ForeignBookId).NotEmpty();
            PostValidator.RuleFor(s => s.Author.QualityProfileId).SetValidator(qualityProfileExistsValidator);
            PostValidator.RuleFor(s => s.Author.MetadataProfileId).SetValidator(metadataProfileExistsValidator);
            PostValidator.RuleFor(s => s.Author.RootFolderPath).IsValidPath().When(s => s.Author.Path.IsNullOrWhiteSpace());
            PostValidator.RuleFor(s => s.Author.ForeignAuthorId).NotEmpty();
        }
예제 #21
0
 public EventService(IEventDomainService eventDomainService,
                     IEditionService editionService)
 {
     _eventDomainService = eventDomainService ?? throw new ArgumentNullException(nameof(eventDomainService));
     _editionService     = editionService ?? throw new ArgumentNullException(nameof(editionService));
 }
예제 #22
0
 public EditionController(IEditionService service)
 {
     _service = service;
 }
예제 #23
0
 public EditionTagHelper(IEditionService editionService)
 {
     this.editionService = editionService;
 }
예제 #24
0
 public EditionController(IEditionService editionService, IFileSystem fileSystem, IHeaderSettings headerSettings) : base(fileSystem)
 {
     _editionService = editionService ?? throw new ArgumentNullException(nameof(editionService));
     _headerSettings = headerSettings ?? throw new ArgumentNullException(nameof(headerSettings));
 }
예제 #25
0
 public EditionController(IEditionService editionService)
 {
     _editionService = editionService;
 }
예제 #26
0
 public EditionsController(IEditionService editionService)
 {
     this.editionService = editionService;
 }
예제 #27
0
 public EditionController(IEditionService service, IFeatureService featureService) : base(service)
 {
     _service        = service;
     _featureService = featureService;
 }