2
0

CloudSyncProvider.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using MediaBrowser.Common;
  2. using MediaBrowser.Controller.Sync;
  3. using MediaBrowser.Model.Dlna;
  4. using MediaBrowser.Model.Sync;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. namespace MediaBrowser.Server.Implementations.Sync
  11. {
  12. public class CloudSyncProvider : IServerSyncProvider
  13. {
  14. private readonly ICloudSyncProvider[] _providers = {};
  15. public CloudSyncProvider(IApplicationHost appHost)
  16. {
  17. _providers = appHost.GetExports<ICloudSyncProvider>().ToArray();
  18. }
  19. public IEnumerable<SyncTarget> GetSyncTargets(string userId)
  20. {
  21. return _providers.SelectMany(i => i.GetSyncTargets(userId));
  22. }
  23. public DeviceProfile GetDeviceProfile(SyncTarget target)
  24. {
  25. return new DeviceProfile();
  26. }
  27. public string Name
  28. {
  29. get { return "Cloud Sync"; }
  30. }
  31. private ICloudSyncProvider GetProvider(SyncTarget target)
  32. {
  33. return null;
  34. }
  35. public Task<List<string>> GetServerItemIds(string serverId, SyncTarget target, CancellationToken cancellationToken)
  36. {
  37. throw new NotImplementedException();
  38. }
  39. public Task DeleteItem(string serverId, string itemId, SyncTarget target, CancellationToken cancellationToken)
  40. {
  41. throw new NotImplementedException();
  42. }
  43. public Task TransferItemFile(string serverId, string itemId, string inputFile, string[] pathParts, SyncTarget target, CancellationToken cancellationToken)
  44. {
  45. var provider = GetProvider(target);
  46. return provider.TransferItemFile(serverId, itemId, inputFile, pathParts, target, cancellationToken);
  47. }
  48. }
  49. }