diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-07-10 22:30:36 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-07-10 22:30:36 -0400 |
| commit | 63f9abd4d65b7b7fd43f7ec7faf510075285ed69 (patch) | |
| tree | 9cba4db7741db461cd7995d39d30d70483f7ae6d /MediaBrowser.Server.Implementations/Library/LibraryManager.cs | |
| parent | ffe60d453d2610db290bff0a3319dbe7c0ceba04 (diff) | |
| parent | fe7fd7cd266be0fe8c0cc2be095cc0b267931ea9 (diff) | |
Merge pull request #1127 from MediaBrowser/dev
3.0.5641.5
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ed5dde4c5..c3793b3a3 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -32,6 +32,7 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MoreLinq; using SortOrder = MediaBrowser.Model.Entities.SortOrder; namespace MediaBrowser.Server.Implementations.Library @@ -1107,6 +1108,8 @@ namespace MediaBrowser.Server.Implementations.Library progress.Report(innerPercent); }); + _logger.Debug("Running post-scan task {0}", task.GetType().Name); + try { await task.Run(innerProgress, cancellationToken).ConfigureAwait(false); @@ -1222,6 +1225,11 @@ namespace MediaBrowser.Server.Implementations.Library }; } + public List<Guid> GetItemIds(InternalItemsQuery query) + { + return ItemRepository.GetItemIdsList(query); + } + /// <summary> /// Gets the intros. /// </summary> @@ -2055,5 +2063,58 @@ namespace MediaBrowser.Server.Implementations.Library item.ExtraType = ExtraType.Clip; } } + + public List<PersonInfo> GetPeople(InternalPeopleQuery query) + { + return ItemRepository.GetPeople(query); + } + + public List<PersonInfo> GetPeople(BaseItem item) + { + return item.People ?? GetPeople(new InternalPeopleQuery + { + ItemId = item.Id + }); + } + + public List<Person> GetPeopleItems(InternalPeopleQuery query) + { + return ItemRepository.GetPeopleNames(query).Select(i => + { + try + { + return GetPerson(i); + } + catch (Exception ex) + { + _logger.ErrorException("Error getting person", ex); + return null; + } + + }).Where(i => i != null).ToList(); + } + + public List<string> GetPeopleNames(InternalPeopleQuery query) + { + return ItemRepository.GetPeopleNames(query); + } + + public List<PersonInfo> GetAllPeople() + { + return GetPeople(new InternalPeopleQuery()) + .DistinctBy(i => i.Name, StringComparer.OrdinalIgnoreCase) + .ToList(); + } + + public async Task UpdatePeople(BaseItem item, List<PersonInfo> people) + { + await ItemRepository.UpdatePeople(item.Id, people).ConfigureAwait(false); + + if (item.People != null) + { + item.People = null; + await item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + } + } } } |
