diff --git a/MediaBrowser.Model/Sync/SyncedItem.cs b/MediaBrowser.Model/Sync/SyncedItem.cs
index 2063506b16..4dedcfd2dc 100644
--- a/MediaBrowser.Model/Sync/SyncedItem.cs
+++ b/MediaBrowser.Model/Sync/SyncedItem.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Model.Dto;
+using System;
using System.Collections.Generic;
namespace MediaBrowser.Model.Sync
@@ -16,6 +17,16 @@ namespace MediaBrowser.Model.Sync
/// The synchronize job identifier.
public string SyncJobId { get; set; }
///
+ /// Gets or sets the name of the synchronize job.
+ ///
+ /// The name of the synchronize job.
+ public string SyncJobName { get; set; }
+ ///
+ /// Gets or sets the synchronize job date created.
+ ///
+ /// The synchronize job date created.
+ public DateTime SyncJobDateCreated { get; set; }
+ ///
/// Gets or sets the synchronize job item identifier.
///
/// The synchronize job item identifier.
diff --git a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
index 89076beb1b..429b724898 100644
--- a/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
+++ b/MediaBrowser.Server.Implementations/Sync/MediaSync.cs
@@ -143,7 +143,7 @@ namespace MediaBrowser.Server.Implementations.Sync
var fileTransferProgress = new ActionableProgress();
fileTransferProgress.RegisterAction(pct => progress.Report(pct * .92));
- var localItem = CreateLocalItem(provider, jobItem.SyncJobId, jobItem.SyncJobItemId, target, libraryItem, serverId, jobItem.OriginalFileName);
+ var localItem = CreateLocalItem(provider, jobItem, target, libraryItem, serverId, jobItem.OriginalFileName);
await _syncManager.ReportSyncJobItemTransferBeginning(internalSyncJobItem.Id);
@@ -232,6 +232,8 @@ namespace MediaBrowser.Server.Implementations.Sync
foreach (var file in files)
{
+ _logger.Debug("Removing {0} from {1}.", file.Path, target.Name);
+
await provider.DeleteFile(file.Path, target, cancellationToken).ConfigureAwait(false);
}
@@ -263,9 +265,9 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
- public LocalItem CreateLocalItem(IServerSyncProvider provider, string syncJobId, string syncJobItemId, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName)
+ public LocalItem CreateLocalItem(IServerSyncProvider provider, SyncedItem syncedItem, SyncTarget target, BaseItemDto libraryItem, string serverId, string originalFileName)
{
- var path = GetDirectoryPath(provider, syncJobId, libraryItem, serverId);
+ var path = GetDirectoryPath(provider, syncedItem, libraryItem, serverId);
path.Add(GetLocalFileName(provider, libraryItem, originalFileName));
var localPath = provider.GetFullPath(path, target);
@@ -282,16 +284,25 @@ namespace MediaBrowser.Server.Implementations.Sync
ItemId = libraryItem.Id,
ServerId = serverId,
LocalPath = localPath,
- Id = GetLocalId(syncJobItemId, libraryItem.Id)
+ Id = GetLocalId(syncedItem.SyncJobItemId, libraryItem.Id)
};
}
- private List GetDirectoryPath(IServerSyncProvider provider, string syncJobId, BaseItemDto item, string serverId)
+ private string GetSyncJobFolderName(SyncedItem syncedItem, IServerSyncProvider provider)
+ {
+ var name = syncedItem.SyncJobName + syncedItem.SyncJobDateCreated.ToLocalTime().ToString("g");
+
+ name = GetValidFilename(provider, name);
+
+ return name;
+ }
+
+ private List GetDirectoryPath(IServerSyncProvider provider, SyncedItem syncedItem, BaseItemDto item, string serverId)
{
var parts = new List
{
serverId,
- syncJobId
+ GetSyncJobFolderName(syncedItem, provider)
};
if (item.IsType("episode"))
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index d489ac8d3f..2cf6c68539 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -646,6 +646,8 @@ namespace MediaBrowser.Server.Implementations.Sync
SyncJobItemId = jobItem.Id,
ServerId = _appHost.SystemId,
UserId = job.UserId,
+ SyncJobName = job.Name,
+ SyncJobDateCreated = job.DateCreated,
AdditionalFiles = jobItem.AdditionalFiles.Select(i => new ItemFileInfo
{
ImageType = i.ImageType,