sync updates

This commit is contained in:
Luke Pulverenti
2015-02-04 22:01:37 -05:00
parent 046a1de253
commit 1f1852f3cb
24 changed files with 280 additions and 57 deletions

View File

@@ -52,6 +52,8 @@ namespace MediaBrowser.Server.Implementations.Sync
public event EventHandler<GenericEventArgs<SyncJobCreationResult>> SyncJobCreated;
public event EventHandler<GenericEventArgs<SyncJob>> SyncJobCancelled;
public event EventHandler<GenericEventArgs<SyncJob>> SyncJobUpdated;
public event EventHandler<GenericEventArgs<SyncJobItem>> SyncJobItemUpdated;
public event EventHandler<GenericEventArgs<SyncJobItem>> SyncJobItemCreated;
public SyncManager(ILibraryManager libraryManager, ISyncRepository repo, IImageProcessor imageProcessor, ILogger logger, IUserManager userManager, Func<IDtoService> dtoService, IApplicationHost appHost, ITVSeriesManager tvSeriesManager, Func<IMediaEncoder> mediaEncoder, IFileSystem fileSystem, Func<ISubtitleEncoder> subtitleEncoder, IConfigurationManager config)
{
@@ -202,6 +204,32 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
internal async Task UpdateSyncJobItemInternal(SyncJobItem jobItem)
{
await _repo.Update(jobItem).ConfigureAwait(false);
if (SyncJobUpdated != null)
{
EventHelper.FireEventIfNotNull(SyncJobItemUpdated, this, new GenericEventArgs<SyncJobItem>
{
Argument = jobItem
}, _logger);
}
}
internal void OnSyncJobItemCreated(SyncJobItem job)
{
if (SyncJobUpdated != null)
{
EventHelper.FireEventIfNotNull(SyncJobItemCreated, this, new GenericEventArgs<SyncJobItem>
{
Argument = job
}, _logger);
}
}
public async Task<QueryResult<SyncJob>> GetJobs(SyncJobQuery query)
{
var result = _repo.GetJobs(query);
@@ -504,7 +532,7 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
var processor = GetSyncJobProcessor();
@@ -610,7 +638,10 @@ namespace MediaBrowser.Server.Implementations.Sync
var jobItemResult = GetJobItems(new SyncJobItemQuery
{
TargetId = targetId,
Statuses = new List<SyncJobItemStatus> { SyncJobItemStatus.Transferring }
Statuses = new List<SyncJobItemStatus>
{
SyncJobItemStatus.ReadyToTransfer
}
});
return jobItemResult.Items
@@ -669,7 +700,7 @@ namespace MediaBrowser.Server.Implementations.Sync
{
// Content is no longer on the device
jobItem.Status = SyncJobItemStatus.RemovedFromDevice;
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
}
}
@@ -761,7 +792,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.Progress = 0;
jobItem.IsMarkedForRemoval = false;
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
var processor = GetSyncJobProcessor();
@@ -772,7 +803,7 @@ namespace MediaBrowser.Server.Implementations.Sync
{
var jobItem = _repo.GetJobItem(id);
if (jobItem.Status != SyncJobItemStatus.Queued && jobItem.Status != SyncJobItemStatus.Transferring && jobItem.Status != SyncJobItemStatus.Converting)
if (jobItem.Status != SyncJobItemStatus.Queued && jobItem.Status != SyncJobItemStatus.ReadyToTransfer && jobItem.Status != SyncJobItemStatus.Converting)
{
throw new ArgumentException("Operation is not valid for this job item");
}
@@ -781,7 +812,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.Progress = 0;
jobItem.IsMarkedForRemoval = true;
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
var processor = GetSyncJobProcessor();
@@ -814,7 +845,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.IsMarkedForRemoval = true;
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
var processor = GetSyncJobProcessor();
@@ -832,7 +863,7 @@ namespace MediaBrowser.Server.Implementations.Sync
jobItem.IsMarkedForRemoval = false;
await _repo.Update(jobItem).ConfigureAwait(false);
await UpdateSyncJobItemInternal(jobItem).ConfigureAwait(false);
var processor = GetSyncJobProcessor();