mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-16 22:13:06 +03:00
fix scanning of new libraries
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user