public HiDriveSyncService(FolderConfigurationService folderConfigurationService, IHiDriveClient hiDriveClient, AccountService accountService) { var allConfigs = folderConfigurationService.GetAllConfigs(); foreach (var folderConfiguration in allConfigs.Where(configuration => !string.IsNullOrEmpty(configuration.Schedule))) { _hiDriveSyncTasks.TryAdd(folderConfiguration.Id, new HiDriveSyncTask(folderConfiguration, hiDriveClient, accountService)); } folderConfigurationService.ConfigurationUpdated.Subscribe(configuration => { if (_hiDriveSyncTasks.TryGetValue(configuration.Id, out var hiDriveSyncTask)) { Log.Information("Folder {folder} updated!", configuration); hiDriveSyncTask.Update(configuration); } else { Log.Information("Folder {folder} added!", configuration); hiDriveSyncTask = new HiDriveSyncTask(configuration, hiDriveClient, accountService); if (_hiDriveSyncTasks.TryAdd(configuration.Id, hiDriveSyncTask)) { hiDriveSyncTask.Activate(_cts.Token); //_tasks.TryAdd(configuration.Id, Task.Factory.StartNew(() => hiDriveSyncTask.Start(_cts.Token), TaskCreationOptions.LongRunning)); } } }); folderConfigurationService.ConfigurationDeleted.Subscribe(configuration => { if (_hiDriveSyncTasks.TryRemove(configuration.Id, out var hiDriveSyncTask)) { Log.Information("Folder {folder} removed!", configuration); hiDriveSyncTask.Stop(); } }); }
public IndexModel(AccountService accountService, FolderConfigurationService folderConfigurationService, HiDriveSyncService hiDriveSyncService) { _accountService = accountService; _folderConfigurationService = folderConfigurationService; _hiDriveSyncService = hiDriveSyncService; }
public DeleteModel(FolderConfigurationService folderConfigurationService) { _folderConfigurationService = folderConfigurationService; }
public CreateEditModel(FolderConfigurationService folderConfigService, AccountService accountService, HiDriveSyncService hiDriveSyncService) { _folderConfigService = folderConfigService; _accountService = accountService; _hiDriveSyncService = hiDriveSyncService; }