diff options
Diffstat (limited to 'MediaBrowser.Api/ItemUpdateService.cs')
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 174 |
1 files changed, 14 insertions, 160 deletions
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index 5f05fdc3f..92e6a098d 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -1,9 +1,7 @@ -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.Dto; using ServiceStack; using System; @@ -13,73 +11,20 @@ using System.Threading.Tasks; namespace MediaBrowser.Api { - [Route("/Items/{ItemId}", "POST")] - [Api(("Updates an item"))] + [Route("/Items/{ItemId}", "POST", Summary = "Updates an item")] public class UpdateItem : BaseItemDto, IReturnVoid { [ApiMember(Name = "ItemId", Description = "The id of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] public string ItemId { get; set; } } - [Route("/Artists/{ArtistName}", "POST")] - [Api(("Updates an artist"))] - public class UpdateArtist : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "ArtistName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string ArtistName { get; set; } - } - - [Route("/Studios/{StudioName}", "POST")] - [Api(("Updates a studio"))] - public class UpdateStudio : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "StudioName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string StudioName { get; set; } - } - - [Route("/Persons/{PersonName}", "POST")] - [Api(("Updates a person"))] - public class UpdatePerson : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "PersonName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string PersonName { get; set; } - } - - [Route("/MusicGenres/{GenreName}", "POST")] - [Api(("Updates a music genre"))] - public class UpdateMusicGenre : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "GenreName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string GenreName { get; set; } - } - - [Route("/GameGenres/{GenreName}", "POST")] - [Api(("Updates a game genre"))] - public class UpdateGameGenre : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "GenreName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string GenreName { get; set; } - } - - [Route("/Genres/{GenreName}", "POST")] - [Api(("Updates a genre"))] - public class UpdateGenre : BaseItemDto, IReturnVoid - { - [ApiMember(Name = "GenreName", Description = "The name of the item", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")] - public string GenreName { get; set; } - } - public class ItemUpdateService : BaseApiService { private readonly ILibraryManager _libraryManager; - private readonly IDtoService _dtoService; - private readonly ILiveTvManager _liveTv; - public ItemUpdateService(ILibraryManager libraryManager, IDtoService dtoService, ILiveTvManager liveTv) + public ItemUpdateService(ILibraryManager libraryManager) { _libraryManager = libraryManager; - _dtoService = dtoService; - _liveTv = liveTv; } public void Post(UpdateItem request) @@ -94,120 +39,29 @@ namespace MediaBrowser.Api var item = _libraryManager.GetItemById(request.ItemId); var newLockData = request.LockData ?? false; - var dontFetchMetaChanged = item.IsLocked != newLockData; + var isLockedChanged = item.IsLocked != newLockData; UpdateItem(request, item); + if (isLockedChanged && item.IsLocked) + { + item.IsUnidentified = false; + } + await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - if (dontFetchMetaChanged && item.IsFolder) + if (isLockedChanged && item.IsFolder) { var folder = (Folder)item; foreach (var child in folder.RecursiveChildren.ToList()) { - child.DontFetchMeta = newLockData; + child.IsLocked = newLockData; await child.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); } } } - public void Post(UpdatePerson request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdatePerson request) - { - var item = GetPerson(request.PersonName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - - public void Post(UpdateArtist request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdateArtist request) - { - var item = GetArtist(request.ArtistName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - - public void Post(UpdateStudio request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdateStudio request) - { - var item = GetStudio(request.StudioName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - - public void Post(UpdateMusicGenre request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdateMusicGenre request) - { - var item = GetMusicGenre(request.GenreName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - - public void Post(UpdateGameGenre request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdateGameGenre request) - { - var item = GetGameGenre(request.GenreName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - - public void Post(UpdateGenre request) - { - var task = UpdateItem(request); - - Task.WaitAll(task); - } - - private async Task UpdateItem(UpdateGenre request) - { - var item = GetGenre(request.GenreName, _libraryManager); - - UpdateItem(request, item); - - await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - } - private void UpdateItem(BaseItemDto request, BaseItem item) { item.Name = request.Name; @@ -246,7 +100,7 @@ namespace MediaBrowser.Api episode.AirsBeforeSeasonNumber = request.AirsBeforeSeasonNumber; episode.AbsoluteEpisodeNumber = request.AbsoluteEpisodeNumber; } - + var hasTags = item as IHasTags; if (hasTags != null) { @@ -295,14 +149,14 @@ namespace MediaBrowser.Api { hasDisplayOrder.DisplayOrder = request.DisplayOrder; } - + var hasAspectRatio = item as IHasAspectRatio; if (hasAspectRatio != null) { hasAspectRatio.AspectRatio = request.AspectRatio; } - item.DontFetchMeta = (request.LockData ?? false); + item.IsLocked = (request.LockData ?? false); if (request.LockedFields != null) { |
