diff --git a/back/src/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs b/back/src/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
index ddb17cd5..0cd21975 100644
--- a/back/src/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
+++ b/back/src/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
@@ -28,19 +28,19 @@ namespace Kyoo.Abstractions.Models.Exceptions
public class DuplicatedItemException : Exception
{
///
- /// Create a new with the default message.
+ /// The existing object.
///
- public DuplicatedItemException()
- : base("Already exists in the database.")
- { }
+ public object Existing { get; }
///
- /// Create a new with a custom message.
+ /// Create a new with the default message.
///
- /// The message to use
- public DuplicatedItemException(string message)
- : base(message)
- { }
+ /// The existing object.
+ public DuplicatedItemException(object existing = null)
+ : base("Already exists in the database.")
+ {
+ Existing = existing;
+ }
///
/// The serialization constructor.
diff --git a/back/src/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
index ab54d442..0e6f4daa 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
@@ -72,7 +72,7 @@ namespace Kyoo.Core.Controllers
{
await base.Create(obj);
_database.Entry(obj).State = EntityState.Added;
- await _database.SaveChangesAsync($"Trying to insert a duplicated collection (slug {obj.Slug} already exists).");
+ await _database.SaveChangesAsync(() => Get(obj.Slug));
return obj;
}
diff --git a/back/src/Kyoo.Core/Controllers/Repositories/EpisodeRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/EpisodeRepository.cs
index 6040b1d2..64650cf4 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/EpisodeRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/EpisodeRepository.cs
@@ -142,7 +142,7 @@ namespace Kyoo.Core.Controllers
{
await base.Create(obj);
_database.Entry(obj).State = EntityState.Added;
- await _database.SaveChangesAsync($"Trying to insert a duplicated episode (slug {obj.Slug} already exists).");
+ await _database.SaveChangesAsync(() => Get(obj.Slug));
return await _ValidateTracks(obj);
}
diff --git a/back/src/Kyoo.Core/Controllers/Repositories/GenreRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
index de104312..5c7a070b 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
@@ -67,7 +67,7 @@ namespace Kyoo.Core.Controllers
{
await base.Create(obj);
_database.Entry(obj).State = EntityState.Added;
- await _database.SaveChangesAsync($"Trying to insert a duplicated genre (slug {obj.Slug} already exists).");
+ await _database.SaveChangesAsync(() => Get(obj.Slug));
return obj;
}
diff --git a/back/src/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
index 76bd2858..5177e120 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
@@ -75,7 +75,7 @@ namespace Kyoo.Core.Controllers
{
await base.Create(obj);
_database.Entry(obj).State = EntityState.Added;
- await _database.SaveChangesAsync($"Trying to insert a duplicated library (slug {obj.Slug} already exists).");
+ await _database.SaveChangesAsync(() => Get(obj.Slug));
return obj;
}
diff --git a/back/src/Kyoo.Core/Controllers/Repositories/LocalRepository.cs b/back/src/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
index 0cb0600e..515f9ad0 100644
--- a/back/src/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
+++ b/back/src/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
@@ -72,33 +72,37 @@ namespace Kyoo.Core.Controllers
{
sortBy ??= DefaultSort;
- switch (sortBy)
+ IOrderedQueryable _Sort(IQueryable query, Sort sortBy)
{
- case Sort.Default:
- return Sort(query, DefaultSort);
- case Sort.By(var key, var desc):
- return desc
- ? query.OrderByDescending(x => EF.Property