From 36577ac42ea9a38a155ca7cd0d17d2d43563a27f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 24 Dec 2014 01:28:40 -0500 Subject: sync updates --- .../Sync/SyncManager.cs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Sync/SyncManager.cs') diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index 6b15aaed7..3006c1be9 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -69,7 +69,12 @@ namespace MediaBrowser.Server.Implementations.Sync } var target = GetSyncTargets(request.UserId) - .First(i => string.Equals(request.TargetId, i.Id)); + .FirstOrDefault(i => string.Equals(request.TargetId, i.Id)); + + if (target == null) + { + throw new ArgumentException("Sync target not found."); + } var jobId = Guid.NewGuid().ToString("N"); @@ -173,17 +178,23 @@ namespace MediaBrowser.Server.Implementations.Sync private IEnumerable GetSyncTargets(ISyncProvider provider, string userId) { - var providerId = GetSyncProviderId(provider); - return provider.GetSyncTargets().Select(i => new SyncTarget { Name = i.Name, - Id = GetSyncTargetId(providerId, i) + Id = GetSyncTargetId(provider, i) }); } - private string GetSyncTargetId(string providerId, SyncTarget target) + private string GetSyncTargetId(ISyncProvider provider, SyncTarget target) { + var hasUniqueId = provider as IHasUniqueTargetIds; + + if (hasUniqueId != null) + { + return target.Id; + } + + var providerId = GetSyncProviderId(provider); return (providerId + "-" + target.Id).GetMD5().ToString("N"); } -- cgit v1.2.3