Ejemplo n.º 1
0
 public HiDriveSyncTask(FolderConfiguration folderConfiguration, IHiDriveClient hiDriveClient,
                        AccountService accountService)
 {
     _folderConfiguration = folderConfiguration;
     _hiDriveClient       = hiDriveClient;
     _accountService      = accountService;
 }
Ejemplo n.º 2
0
        private async Task <IHiDriveClient> GetApi()
        {
            if (_api == null)
            {
                _api = await HiDriveHelper.GetClient(account);
            }

            return(_api);
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 5
0
 public void Cleanup()
 {
     Client = null;
 }
Ejemplo n.º 6
0
 public void Initialize()
 {
     Client = CreateClient();
 }
Ejemplo n.º 7
0
        private async Task<IHiDriveClient> GetApi()
        {
            if (_api == null)
                _api = await HiDriveHelper.GetClient(account);

            return _api;
        }
Ejemplo n.º 8
0
        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();
                }
            });
        }