public HiDriveSyncTask(FolderConfiguration folderConfiguration, IHiDriveClient hiDriveClient, AccountService accountService) { _folderConfiguration = folderConfiguration; _hiDriveClient = hiDriveClient; _accountService = accountService; }
private async Task <IHiDriveClient> GetApi() { if (_api == null) { _api = await HiDriveHelper.GetClient(account); } return(_api); }
public HiDriveSyncExecutor(IHiDriveClient hiDriveClient) { _hiDriveClient = hiDriveClient; }
public static async Task <string> GetHomeId(this IHiDriveClient client) { return((await client.User.Me.Get(new[] { User.Fields.HomeId }).ExecuteAsync()).HomeId); }
public void Cleanup() { Client = null; }
public void Initialize() { Client = CreateClient(); }
private async Task<IHiDriveClient> GetApi() { if (_api == null) _api = await HiDriveHelper.GetClient(account); return _api; }
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(); } }); }