add mark for removal options
This commit is contained in:
parent
f636c10e24
commit
f5b7e1dba4
|
@ -44,6 +44,20 @@ namespace MediaBrowser.Api.Sync
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("/Sync/JobItems/{Id}/MarkForRemoval", "POST", Summary = "Marks a job item for removal")]
|
||||||
|
public class MarkJobItemForRemoval : IReturnVoid
|
||||||
|
{
|
||||||
|
[ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Route("/Sync/JobItems/{Id}/UnmarkForRemoval", "POST", Summary = "Unmarks a job item for removal")]
|
||||||
|
public class UnmarkJobItemForRemoval : IReturnVoid
|
||||||
|
{
|
||||||
|
[ApiMember(Name = "Id", Description = "Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Route("/Sync/JobItems/{Id}", "DELETE", Summary = "Cancels a sync job item")]
|
[Route("/Sync/JobItems/{Id}", "DELETE", Summary = "Cancels a sync job item")]
|
||||||
public class CancelSyncJobItem : IReturnVoid
|
public class CancelSyncJobItem : IReturnVoid
|
||||||
{
|
{
|
||||||
|
@ -299,5 +313,19 @@ namespace MediaBrowser.Api.Sync
|
||||||
|
|
||||||
Task.WaitAll(task);
|
Task.WaitAll(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Post(MarkJobItemForRemoval request)
|
||||||
|
{
|
||||||
|
var task = _syncManager.MarkJobItemForRemoval(request.Id);
|
||||||
|
|
||||||
|
Task.WaitAll(task);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Post(UnmarkJobItemForRemoval request)
|
||||||
|
{
|
||||||
|
var task = _syncManager.UnmarkJobItemForRemoval(request.Id);
|
||||||
|
|
||||||
|
Task.WaitAll(task);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,5 +128,19 @@ namespace MediaBrowser.Controller.Sync
|
||||||
/// <param name="request">The request.</param>
|
/// <param name="request">The request.</param>
|
||||||
/// <returns>Task<SyncDataResponse>.</returns>
|
/// <returns>Task<SyncDataResponse>.</returns>
|
||||||
Task<SyncDataResponse> SyncData(SyncDataRequest request);
|
Task<SyncDataResponse> SyncData(SyncDataRequest request);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Marks the job item for removal.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task MarkJobItemForRemoval(string id);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Unmarks the job item for removal.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task UnmarkJobItemForRemoval(string id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1449,12 +1449,41 @@ namespace MediaBrowser.Model.ApiClient
|
||||||
/// <param name="request">The request.</param>
|
/// <param name="request">The request.</param>
|
||||||
/// <returns>Task<SyncDataResponse>.</returns>
|
/// <returns>Task<SyncDataResponse>.</returns>
|
||||||
Task<SyncDataResponse> SyncData(SyncDataRequest request);
|
Task<SyncDataResponse> SyncData(SyncDataRequest request);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the synchronize job item file URL.
|
/// Gets the synchronize job item file URL.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The identifier.</param>
|
/// <param name="id">The identifier.</param>
|
||||||
/// <returns>System.String.</returns>
|
/// <returns>System.String.</returns>
|
||||||
string GetSyncJobItemFileUrl(string id);
|
string GetSyncJobItemFileUrl(string id);
|
||||||
|
/// <summary>
|
||||||
|
/// Marks the synchronize job item for removal.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task MarkSyncJobItemForRemoval(string id);
|
||||||
|
/// <summary>
|
||||||
|
/// Unmarks the synchronize job item for removal.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task UnmarkSyncJobItemForRemoval(string id);
|
||||||
|
/// <summary>
|
||||||
|
/// Queues the failed synchronize job item for retry.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task QueueFailedSyncJobItemForRetry(string id);
|
||||||
|
/// <summary>
|
||||||
|
/// Cancels the synchronize job item.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task CancelSyncJobItem(string id);
|
||||||
|
/// <summary>
|
||||||
|
/// Enables the cancelled synchronize job item.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id">The identifier.</param>
|
||||||
|
/// <returns>Task.</returns>
|
||||||
|
Task EnableCancelledSyncJobItem(string id);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -86,8 +86,15 @@ namespace MediaBrowser.Model.Sync
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The temporary path.</value>
|
/// <value>The temporary path.</value>
|
||||||
public string TemporaryPath { get; set; }
|
public string TemporaryPath { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the additional files.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The additional files.</value>
|
||||||
public List<ItemFileInfo> AdditionalFiles { get; set; }
|
public List<ItemFileInfo> AdditionalFiles { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets a value indicating whether this instance is marked for removal.
|
||||||
|
/// </summary>
|
||||||
|
/// <value><c>true</c> if this instance is marked for removal; otherwise, <c>false</c>.</value>
|
||||||
public bool IsMarkedForRemoval { get; set; }
|
public bool IsMarkedForRemoval { get; set; }
|
||||||
|
|
||||||
public SyncJobItem()
|
public SyncJobItem()
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
"ButtonCancelItem": "Cancel item",
|
"ButtonCancelItem": "Cancel item",
|
||||||
"ButtonQueueForRetry": "Queue for retry",
|
"ButtonQueueForRetry": "Queue for retry",
|
||||||
"ButtonReenable": "Re-enable",
|
"ButtonReenable": "Re-enable",
|
||||||
|
"SyncJobItemStatusSyncedMarkForRemoval": "Marked for removal",
|
||||||
"LabelAbortedByServerShutdown": "(Aborted by server shutdown)",
|
"LabelAbortedByServerShutdown": "(Aborted by server shutdown)",
|
||||||
"LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.",
|
"LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.",
|
||||||
"HeaderDeleteTaskTrigger": "Delete Task Trigger",
|
"HeaderDeleteTaskTrigger": "Delete Task Trigger",
|
||||||
|
@ -70,6 +71,8 @@
|
||||||
"LabelFree": "Free",
|
"LabelFree": "Free",
|
||||||
"HeaderSelectAudio": "Select Audio",
|
"HeaderSelectAudio": "Select Audio",
|
||||||
"HeaderSelectSubtitles": "Select Subtitles",
|
"HeaderSelectSubtitles": "Select Subtitles",
|
||||||
|
"ButtonMarkForRemoval": "Mark for removal from device",
|
||||||
|
"ButtonUnmarkForRemoval": "Unmark for removal from device",
|
||||||
"LabelDefaultStream": "(Default)",
|
"LabelDefaultStream": "(Default)",
|
||||||
"LabelForcedStream": "(Forced)",
|
"LabelForcedStream": "(Forced)",
|
||||||
"LabelDefaultForcedStream": "(Default/Forced)",
|
"LabelDefaultForcedStream": "(Default/Forced)",
|
||||||
|
|
|
@ -684,5 +684,41 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||||
|
|
||||||
await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false);
|
await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task MarkJobItemForRemoval(string id)
|
||||||
|
{
|
||||||
|
var jobItem = _repo.GetJobItem(id);
|
||||||
|
|
||||||
|
if (jobItem.Status != SyncJobItemStatus.Synced)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Operation is not valid for this job item");
|
||||||
|
}
|
||||||
|
|
||||||
|
jobItem.IsMarkedForRemoval = true;
|
||||||
|
|
||||||
|
await _repo.Update(jobItem).ConfigureAwait(false);
|
||||||
|
|
||||||
|
var processor = GetSyncJobProcessor();
|
||||||
|
|
||||||
|
await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task UnmarkJobItemForRemoval(string id)
|
||||||
|
{
|
||||||
|
var jobItem = _repo.GetJobItem(id);
|
||||||
|
|
||||||
|
if (jobItem.Status != SyncJobItemStatus.Synced)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Operation is not valid for this job item");
|
||||||
|
}
|
||||||
|
|
||||||
|
jobItem.IsMarkedForRemoval = false;
|
||||||
|
|
||||||
|
await _repo.Update(jobItem).ConfigureAwait(false);
|
||||||
|
|
||||||
|
var processor = GetSyncJobProcessor();
|
||||||
|
|
||||||
|
await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user