diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-23 01:54:09 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-11-23 01:54:09 -0500 |
| commit | 8bc4d49c8967f850d0b76ee8896bbc8ce3e50424 (patch) | |
| tree | 50e43b3e815f428de45a80cb2cd505d44a90ae69 /Emby.Server.Implementations/Data/SqliteItemRepository.cs | |
| parent | c418f94c98658413ebb078154b7041d3d809ba40 (diff) | |
fix scanning of new libraries
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteItemRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteItemRepository.cs | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 78d78a9df..f017a21dc 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -638,25 +638,30 @@ namespace Emby.Server.Implementations.Data CheckDisposed(); + var tuples = new List<Tuple<BaseItem, List<Guid>>>(); + foreach (var item in items) + { + var ancestorIds = item.SupportsAncestors ? + item.GetAncestorIds().Distinct().ToList() : + null; + + tuples.Add(new Tuple<BaseItem, List<Guid>>(item, ancestorIds)); + } + using (var connection = CreateConnection()) { using (WriteLock.Write()) { connection.RunInTransaction(db => { - SaveItemsInTranscation(db, items); + SaveItemsInTranscation(db, tuples); }); } } } - private void SaveItemsInTranscation(IDatabaseConnection db, List<BaseItem> items) + private void SaveItemsInTranscation(IDatabaseConnection db, List<Tuple<BaseItem, List<Guid>>> tuples) { - if (items == null) - { - throw new ArgumentNullException("items"); - } - var requiresReset = false; using (var saveItemStatement = db.PrepareStatement(GetSaveItemCommandText())) @@ -665,19 +670,21 @@ namespace Emby.Server.Implementations.Data { using (var updateAncestorsStatement = db.PrepareStatement("insert into AncestorIds (ItemId, AncestorId, AncestorIdText) values (@ItemId, @AncestorId, @AncestorIdText)")) { - foreach (var item in items) + foreach (var tuple in tuples) { if (requiresReset) { saveItemStatement.Reset(); } + var item = tuple.Item1; + SaveItem(item, saveItemStatement); //Logger.Debug(_saveItemCommand.CommandText); if (item.SupportsAncestors) { - UpdateAncestors(item.Id, item.GetAncestorIds().Distinct().ToList(), db, deleteAncestorsStatement, updateAncestorsStatement); + UpdateAncestors(item.Id, tuple.Item2, db, deleteAncestorsStatement, updateAncestorsStatement); } UpdateItemValues(item.Id, GetItemValuesToSave(item), db); @@ -802,7 +809,7 @@ namespace Emby.Server.Implementations.Data saveItemStatement.TryBind("@IsHD", item.IsHD); saveItemStatement.TryBind("@ExternalEtag", item.ExternalEtag); - if (item.DateLastRefreshed == default(DateTime)) + if (item.DateLastRefreshed != default(DateTime)) { saveItemStatement.TryBind("@DateLastRefreshed", item.DateLastRefreshed); } @@ -811,9 +818,9 @@ namespace Emby.Server.Implementations.Data saveItemStatement.TryBindNull("@DateLastRefreshed"); } - if (item.DateLastSaved == default(DateTime)) + if (item.DateLastSaved != default(DateTime)) { - saveItemStatement.TryBind("@DateLastSaved", item.DateLastRefreshed); + saveItemStatement.TryBind("@DateLastSaved", item.DateLastSaved); } else { @@ -948,7 +955,7 @@ namespace Emby.Server.Implementations.Data var hasSeries = item as IHasSeries; if (hasSeries != null) { - saveItemStatement.TryBind("@SeriesName", hasSeries.FindSeriesName()); + saveItemStatement.TryBind("@SeriesName", hasSeries.SeriesName); } else { @@ -960,8 +967,8 @@ namespace Emby.Server.Implementations.Data var episode = item as Episode; if (episode != null) { - saveItemStatement.TryBind("@SeasonName", episode.FindSeasonName()); - saveItemStatement.TryBind("@SeasonId", episode.FindSeasonId()); + saveItemStatement.TryBind("@SeasonName", episode.SeasonName); + saveItemStatement.TryBind("@SeasonId", episode.SeasonId); } else { @@ -971,8 +978,8 @@ namespace Emby.Server.Implementations.Data if (hasSeries != null) { - saveItemStatement.TryBind("@SeriesId", hasSeries.FindSeriesId()); - saveItemStatement.TryBind("@SeriesSortName", hasSeries.FindSeriesSortName()); + saveItemStatement.TryBind("@SeriesId", hasSeries.SeriesId); + saveItemStatement.TryBind("@SeriesSortName", hasSeries.SeriesSortName); } else { |
