aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs32
1 files changed, 23 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index a2fd92bf5..8fc3651f7 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -407,6 +407,15 @@ namespace MediaBrowser.Server.Implementations.Sync
.OrderBy(i => i.Name);
}
+ private IEnumerable<SyncTarget> GetSyncTargets(ISyncProvider provider)
+ {
+ return provider.GetAllSyncTargets().Select(i => new SyncTarget
+ {
+ Name = i.Name,
+ Id = GetSyncTargetId(provider, i)
+ });
+ }
+
private IEnumerable<SyncTarget> GetSyncTargets(ISyncProvider provider, string userId)
{
return provider.GetSyncTargets(userId).Select(i => new SyncTarget
@@ -429,13 +438,6 @@ namespace MediaBrowser.Server.Implementations.Sync
return (providerId + "-" + target.Id).GetMD5().ToString("N");
}
- private ISyncProvider GetSyncProvider(SyncTarget target)
- {
- var providerId = target.Id.Split(new[] { '-' }, 2).First();
-
- return _providers.First(i => string.Equals(providerId, GetSyncProviderId(i)));
- }
-
private string GetSyncProviderId(ISyncProvider provider)
{
return (provider.GetType().Name).GetMD5().ToString("N");
@@ -543,11 +545,11 @@ namespace MediaBrowser.Server.Implementations.Sync
{
foreach (var provider in _providers)
{
- foreach (var target in GetSyncTargets(provider, null))
+ foreach (var target in GetSyncTargets(provider))
{
if (string.Equals(target.Id, targetId, StringComparison.OrdinalIgnoreCase))
{
- return provider.GetDeviceProfile(target);
+ return GetDeviceProfile(provider, target);
}
}
}
@@ -555,6 +557,18 @@ namespace MediaBrowser.Server.Implementations.Sync
return null;
}
+ public DeviceProfile GetDeviceProfile(ISyncProvider provider, SyncTarget target)
+ {
+ var hasProfile = provider as IHasSyncProfile;
+
+ if (hasProfile != null)
+ {
+ return hasProfile.GetDeviceProfile(target);
+ }
+
+ return new CloudSyncProfile(true, false);
+ }
+
public async Task ReportSyncJobItemTransferred(string id)
{
var jobItem = _repo.GetJobItem(id);