aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2024-11-13 20:28:52 +0000
committerJPVenson <github@jpb.email>2024-11-13 20:28:52 +0000
commite43e34eab89b1ef074641cee62b9640c2a2f7ff0 (patch)
treedb0f8399e47895cc8124215857374fb2c8123b37 /Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
parent2060d0ca2c1eab6c1087f3edfa56e7cb92331c22 (diff)
Fixed Scan saving library items
Diffstat (limited to 'Jellyfin.Server.Implementations/Item/BaseItemRepository.cs')
-rw-r--r--Jellyfin.Server.Implementations/Item/BaseItemRepository.cs60
1 files changed, 29 insertions, 31 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
index 099093433..b367cb9f7 100644
--- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
@@ -1219,15 +1219,23 @@ public sealed class BaseItemRepository(
/// <inheritdoc cref="IItemRepository" />
public void SaveImages(BaseItemDto item)
{
- ArgumentNullException.ThrowIfNull(item);
+ try
+ {
+ ArgumentNullException.ThrowIfNull(item);
- var images = item.ImageInfos.Select(e => Map(item.Id, e));
- using var context = dbProvider.CreateDbContext();
- using var transaction = context.Database.BeginTransaction();
- context.BaseItemImageInfos.Where(e => e.ItemId == item.Id).ExecuteDelete();
- context.BaseItemImageInfos.AddRange(images);
- context.SaveChanges();
- transaction.Commit();
+ var images = item.ImageInfos.Select(e => Map(item.Id, e));
+ using var context = dbProvider.CreateDbContext();
+ using var transaction = context.Database.BeginTransaction();
+ context.BaseItemImageInfos.Where(e => e.ItemId == item.Id).ExecuteDelete();
+ context.BaseItemImageInfos.AddRange(images);
+ context.SaveChanges();
+ transaction.Commit();
+ }
+ catch (System.Exception ex)
+ {
+ System.Console.WriteLine(ex);
+ throw;
+ }
}
/// <inheritdoc cref="IItemRepository" />
@@ -1291,40 +1299,30 @@ public sealed class BaseItemRepository(
var itemValuesToSave = GetItemValuesToSave(item.Item, item.InheritedTags);
context.ItemValuesMap.Where(e => e.ItemId == entity.Id).ExecuteDelete();
- entity.ItemValues = new List<ItemValueMap>();
-
foreach (var itemValue in itemValuesToSave)
{
var refValue = context.ItemValues
.Where(f => f.CleanValue == GetCleanValue(itemValue.Value) && (int)f.Type == itemValue.MagicNumber)
.Select(e => e.ItemValueId)
.FirstOrDefault();
- if (!refValue.IsEmpty())
+ if (refValue.IsEmpty())
{
- entity.ItemValues.Add(new ItemValueMap()
+ context.ItemValues.Add(new ItemValue()
{
- Item = entity,
- ItemId = entity.Id,
- ItemValue = null!,
- ItemValueId = refValue
+ CleanValue = GetCleanValue(itemValue.Value),
+ Type = (ItemValueType)itemValue.MagicNumber,
+ ItemValueId = refValue = Guid.NewGuid(),
+ Value = itemValue.Value
});
}
- else
+
+ context.ItemValuesMap.Add(new ItemValueMap()
{
- entity.ItemValues.Add(new ItemValueMap()
- {
- Item = entity,
- ItemId = entity.Id,
- ItemValue = new ItemValue()
- {
- CleanValue = GetCleanValue(itemValue.Value),
- Type = (ItemValueType)itemValue.MagicNumber,
- ItemValueId = Guid.NewGuid(),
- Value = itemValue.Value
- },
- ItemValueId = Guid.Empty
- });
- }
+ Item = null!,
+ ItemId = entity.Id,
+ ItemValue = null!,
+ ItemValueId = refValue
+ });
}
}