public DirectoryListViewModel(
     IDirectoryDataService directorySetupService,
     IInjectionProviderService injectionProviderService,
     CreateDirectorySetupCommand createDirectorySetup,
     FullSyncCommand fullSync,
     GenerateItemsFromFilesCommand generateItems)
 {
     this._directorySetupService    = directorySetupService;
     this._injectionProviderService = injectionProviderService;
     this.CreateDirectorySetup      = createDirectorySetup;
     FullSync      = fullSync;
     GenerateItems = generateItems;
     this._injectionProviderService
     .Provider
     .Select(provider =>
             this._directorySetupService
             .Get()
             .Connect()
             .Sort(dir => (string)dir.Name)
             .Transform(item =>
     {
         var vm = provider.GetRequiredService <DirectorySetupCardViewModel>();
         vm.DirectorySetupChanges.OnNext(item);
         return(vm);
     })
             )
     .Switch()
     .TakeUntil(destroy)
     .DisposeMany()
     .ObserveOn(RxApp.MainThreadScheduler)
     .Bind(out _directories)
     .Subscribe();
 }
Пример #2
0
        public FileDataService(
            IDirectoryDataService directorySetupService,
            INotificationCenterService notificationCenterService,
            ISettingsService settingsService)
            : base(settingsService, notificationCenterService)
        {
            this._directorySetupService     = directorySetupService;
            this._notificationCenterService = notificationCenterService;
            this._settingsService           = settingsService;
            _getFullFileInfo = this._directorySetupService
                               .Get()
                               .Connect()
                               .LeftJoinMany(
                this.cache.Connect(),
                (dirSetup) => dirSetup.DirectorySetupId,
                (left, right) => right.Items.Select(item => new FileInfoEx(left, item))
                )
                               .TransformMany(x => x, x => x.FileInfo.Id)
                               .TakeUntil(destroy)
                               .AsObservableCache();

            _getFullFIleInfoByHash = this._getFullFileInfo
                                     .Connect()
                                     .Filter(file => FileInfoHashKey.CanBuild(file.FileInfo))
                                     .ChangeKey(file => file.FileInfo.HashKey.Value)
                                     .AsObservableCache();

            _fileHashCache = this.cache
                             .Connect()
                             .Filter(file => file.FileHash.HasValue && file.IsAccessible)
                             .ChangeKey(file => file.HashKey.Value)
                             .AsObservableCache();
        }
Пример #3
0
 public RemoveDirectorySetupRecursivelyCommand(ILibraryManagementService libraryManagementService, IDirectoryDataService directoryDataService)
 {
     this.libraryManagementService = libraryManagementService;
     this.directoryDataService     = directoryDataService;
     directoryDataService
     .Get()
     .Connect()
     .TakeUntil(destroy)
     .ObserveOn(RxApp.MainThreadScheduler)
     .Subscribe(_ =>
     {
         this.CanExecuteChanged?.Invoke(this, new EventArgs());
     });
 }
Пример #4
0
 public SaveService(
     IItemService itemService,
     IFileDataService _fileDataService,
     IFileItemLinkService _fileItemLinkService,
     IDirectoryDataService directoryDataService,
     INotificationCenterService notificationCenterService,
     ISettingsService settingsService)
 {
     this._itemService               = itemService ?? throw new ArgumentNullException(nameof(itemService));
     this._fileDataService           = _fileDataService;
     fileItemLinkService             = _fileItemLinkService;
     this._directoryDataService      = directoryDataService ?? throw new ArgumentNullException(nameof(directoryDataService));
     this._notificationCenterService = notificationCenterService;
     this.settingsService            = settingsService;
 }
Пример #5
0
 public LibraryManagementService(
     IDirectoryDataService directoryDataService,
     IFileDataService fileDataService,
     IFileItemLinkService fileItemLinkService,
     IItemService itemService,
     INotificationCenterService notificationCenter,
     ISettingsService settingsService,
     IFileManagementService fileManagementService)
 {
     this.directoryDataService  = directoryDataService;
     this.fileDataService       = fileDataService;
     this.fileItemLinkService   = fileItemLinkService;
     this.itemService           = itemService;
     this.notificationCenter    = notificationCenter;
     this.settingsService       = settingsService;
     this.fileManagementService = fileManagementService;
 }
Пример #6
0
 public DeleteDirectorySetupCommand(IDirectoryDataService directorySetupService)
 {
     this._directorySetupService = directorySetupService;
 }
Пример #7
0
 public SaveService(IItemService itemService, IDirectoryDataService directoryDataService, ISettingsService settingsService)
 {
     this._itemService          = itemService ?? throw new ArgumentNullException(nameof(itemService));
     this._directoryDataService = directoryDataService ?? throw new ArgumentNullException(nameof(directoryDataService));
     this._settingsService      = settingsService;
 }