mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Fixing library links duplicates
This commit is contained in:
parent
9c549c593b
commit
8af2cff1a2
@ -129,15 +129,18 @@ namespace Kyoo.Controllers
|
||||
if (collectionID != null)
|
||||
{
|
||||
await _database.CollectionLinks.AddAsync(new CollectionLink {CollectionID = collectionID, ShowID = showID});
|
||||
await _database.SaveIfNoDuplicates();
|
||||
}
|
||||
if (libraryID != null)
|
||||
{
|
||||
await _database.LibraryLinks.AddAsync(new LibraryLink {LibraryID = libraryID.Value, ShowID = showID});
|
||||
await _database.SaveIfNoDuplicates();
|
||||
}
|
||||
|
||||
if (libraryID != null && collectionID != null)
|
||||
{
|
||||
await _database.LibraryLinks.AddAsync(new LibraryLink {LibraryID = libraryID.Value, CollectionID = collectionID.Value});
|
||||
await _database.SaveIfNoDuplicates();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,10 @@ namespace Kyoo
|
||||
.HasIndex(x => new {x.ShowID, x.SeasonNumber, x.EpisodeNumber, x.AbsoluteNumber})
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<LibraryLink>()
|
||||
.HasIndex(x => new {x.LibraryID, x.ShowID, x.CollectionID})
|
||||
.HasIndex(x => new {x.LibraryID, x.ShowID})
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<LibraryLink>()
|
||||
.HasIndex(x => new {x.LibraryID, x.CollectionID})
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<CollectionLink>()
|
||||
.HasIndex(x => new {x.CollectionID, x.ShowID})
|
||||
@ -278,6 +281,18 @@ namespace Kyoo
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<int> SaveIfNoDuplicates(CancellationToken cancellationToken = new CancellationToken())
|
||||
{
|
||||
try
|
||||
{
|
||||
return await SaveChangesAsync(cancellationToken);
|
||||
}
|
||||
catch (DuplicatedItemException)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsDuplicateException(DbUpdateException ex)
|
||||
{
|
||||
return ex.InnerException is PostgresException inner
|
||||
|
@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
namespace Kyoo.Models.DatabaseMigrations.Internal
|
||||
{
|
||||
[DbContext(typeof(DatabaseContext))]
|
||||
[Migration("20200803005331_Initial")]
|
||||
[Migration("20200803040029_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -203,7 +203,10 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
|
||||
|
||||
b.HasIndex("ShowID");
|
||||
|
||||
b.HasIndex("LibraryID", "ShowID", "CollectionID")
|
||||
b.HasIndex("LibraryID", "CollectionID")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("LibraryID", "ShowID")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("LibraryLinks");
|
@ -457,9 +457,15 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
|
||||
column: "ShowID");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_LibraryLinks_LibraryID_ShowID_CollectionID",
|
||||
name: "IX_LibraryLinks_LibraryID_CollectionID",
|
||||
table: "LibraryLinks",
|
||||
columns: new[] { "LibraryID", "ShowID", "CollectionID" },
|
||||
columns: new[] { "LibraryID", "CollectionID" },
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_LibraryLinks_LibraryID_ShowID",
|
||||
table: "LibraryLinks",
|
||||
columns: new[] { "LibraryID", "ShowID" },
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
@ -201,7 +201,10 @@ namespace Kyoo.Models.DatabaseMigrations.Internal
|
||||
|
||||
b.HasIndex("ShowID");
|
||||
|
||||
b.HasIndex("LibraryID", "ShowID", "CollectionID")
|
||||
b.HasIndex("LibraryID", "CollectionID")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("LibraryID", "ShowID")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("LibraryLinks");
|
||||
|
Loading…
x
Reference in New Issue
Block a user