update recording deletion process

This commit is contained in:
Luke Pulverenti 2016-02-11 23:54:00 -05:00
parent e04582c9d2
commit b30bd9a1df
10 changed files with 57 additions and 22 deletions

View File

@ -569,7 +569,7 @@ namespace MediaBrowser.Api.Library
{
throw new ArgumentException("This command cannot be used for remote or virtual items.");
}
if (_fileSystem.DirectoryExists(item.Path))
if (_fileSystem.DirectoryExists(item.Path))
{
throw new ArgumentException("This command cannot be used for directories.");
}
@ -789,12 +789,10 @@ namespace MediaBrowser.Api.Library
return Task.FromResult(true);
}
if (item is ILiveTvRecording)
return item.Delete(new DeleteOptions
{
return _liveTv.DeleteRecording(i);
}
return _libraryManager.DeleteItem(item);
DeleteFileLocation = true
});
}).ToArray();
Task.WaitAll(tasks);

View File

@ -1980,5 +1980,10 @@ namespace MediaBrowser.Controller.Entities
{
return new[] { Id };
}
public virtual Task Delete(DeleteOptions options)
{
return LibraryManager.DeleteItem(this, options);
}
}
}

View File

@ -6,14 +6,6 @@ namespace MediaBrowser.Controller.Library
{
public static class LibraryManagerExtensions
{
public static Task DeleteItem(this ILibraryManager manager, BaseItem item)
{
return manager.DeleteItem(item, new DeleteOptions
{
DeleteFileLocation = true
});
}
public static BaseItem GetItemById(this ILibraryManager manager, string id)
{
return manager.GetItemById(new Guid(id));

View File

@ -44,6 +44,13 @@ namespace MediaBrowser.Controller.LiveTv
/// <returns>Task.</returns>
Task DeleteRecording(string id);
/// <summary>
/// Deletes the recording.
/// </summary>
/// <param name="recording">The recording.</param>
/// <returns>Task.</returns>
Task DeleteRecording(ILiveTvRecording recording);
/// <summary>
/// Cancels the timer.
/// </summary>

View File

@ -9,6 +9,8 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading.Tasks;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.LiveTv
{
@ -144,5 +146,10 @@ namespace MediaBrowser.Controller.LiveTv
{
return IsVisible(user);
}
public override Task Delete(DeleteOptions options)
{
return LiveTvManager.DeleteRecording(this);
}
}
}

View File

@ -9,6 +9,8 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading.Tasks;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.LiveTv
{
@ -159,5 +161,10 @@ namespace MediaBrowser.Controller.LiveTv
{
return IsVisible(user);
}
public override Task Delete(DeleteOptions options)
{
return LiveTvManager.DeleteRecording(this);
}
}
}

View File

@ -175,7 +175,11 @@ namespace MediaBrowser.Providers.TV
{
_logger.Info("Removing virtual season {0} {1}", seasonToRemove.Series.Name, seasonToRemove.IndexNumber);
await _libraryManager.DeleteItem(seasonToRemove).ConfigureAwait(false);
await seasonToRemove.Delete(new DeleteOptions
{
DeleteFileLocation = true
}).ConfigureAwait(false);
hasChanges = true;
}

View File

@ -315,7 +315,11 @@ namespace MediaBrowser.Providers.TV
{
_logger.Info("Removing missing/unaired episode {0} {1}x{2}", episodeToRemove.Series.Name, episodeToRemove.ParentIndexNumber, episodeToRemove.IndexNumber);
await _libraryManager.DeleteItem(episodeToRemove).ConfigureAwait(false);
await episodeToRemove.Delete(new DeleteOptions
{
DeleteFileLocation = true
}).ConfigureAwait(false);
hasChanges = true;
}
@ -380,7 +384,11 @@ namespace MediaBrowser.Providers.TV
{
_logger.Info("Removing virtual season {0} {1}", seasonToRemove.Series.Name, seasonToRemove.IndexNumber);
await _libraryManager.DeleteItem(seasonToRemove).ConfigureAwait(false);
await seasonToRemove.Delete(new DeleteOptions
{
DeleteFileLocation = true
}).ConfigureAwait(false);
hasChanges = true;
}

View File

@ -1673,6 +1673,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
throw new ResourceNotFoundException(string.Format("Recording with Id {0} not found", recordingId));
}
await DeleteRecording(recording).ConfigureAwait(false);
}
public async Task DeleteRecording(ILiveTvRecording recording)
{
var service = GetService(recording.ServiceName);
try
@ -1685,7 +1690,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
}
_lastRecordingRefreshTime = DateTime.MinValue;
// This is the responsibility of the live tv service
await _libraryManager.DeleteItem((BaseItem)recording, new DeleteOptions
{

View File

@ -205,10 +205,11 @@ namespace MediaBrowser.Server.Implementations.Persistence
{
_logger.Info("Cleaning item {0} type: {1} path: {2}", item.Name, item.GetType().Name, item.Path ?? string.Empty);
await _libraryManager.DeleteItem(item, new DeleteOptions
await item.Delete(new DeleteOptions
{
DeleteFileLocation = false
});
}).ConfigureAwait(false);
}
numComplete++;
@ -274,10 +275,11 @@ namespace MediaBrowser.Server.Implementations.Persistence
_logger.Info("Deleting item from database {0} because path no longer exists. type: {1} path: {2}", libraryItem.Name, libraryItem.GetType().Name, libraryItem.Path ?? string.Empty);
await _libraryManager.DeleteItem(libraryItem, new DeleteOptions
await libraryItem.Delete(new DeleteOptions
{
DeleteFileLocation = false
});
}).ConfigureAwait(false);
}
catch (OperationCanceledException)
{