mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Finishing to rework repositories
This commit is contained in:
parent
76e28d6ac2
commit
a258e89080
@ -96,7 +96,7 @@ namespace Kyoo.Controllers
|
||||
return await query.ToListAsync();
|
||||
}
|
||||
|
||||
public abstract Task<T> Create(T obj);
|
||||
public abstract Task<T> Create([NotNull] T obj);
|
||||
|
||||
public virtual async Task<T> CreateIfNotExists(T obj)
|
||||
{
|
||||
|
@ -10,11 +10,11 @@ using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Kyoo.Controllers
|
||||
{
|
||||
public class GenreRepository : LocalRepository<Genre>, IGenreRepository
|
||||
public class GenreRepository : LocalRepository<Genre, GenreDE>, IGenreRepository
|
||||
{
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly Lazy<IShowRepository> _shows;
|
||||
protected override Expression<Func<Genre, object>> DefaultSort => x => x.Slug;
|
||||
protected override Expression<Func<GenreDE, object>> DefaultSort => x => x.Slug;
|
||||
|
||||
|
||||
public GenreRepository(DatabaseContext database, IServiceProvider services) : base(database)
|
||||
@ -42,10 +42,10 @@ namespace Kyoo.Controllers
|
||||
return await _database.Genres
|
||||
.Where(genre => EF.Functions.ILike(genre.Name, $"%{query}%"))
|
||||
.Take(20)
|
||||
.ToListAsync();
|
||||
.ToListAsync<Genre>();
|
||||
}
|
||||
|
||||
public override async Task<Genre> Create(Genre obj)
|
||||
public override async Task<GenreDE> Create(GenreDE obj)
|
||||
{
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
@ -55,7 +55,7 @@ namespace Kyoo.Controllers
|
||||
return obj;
|
||||
}
|
||||
|
||||
public override async Task Delete(Genre obj)
|
||||
public override async Task Delete(GenreDE obj)
|
||||
{
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
@ -73,7 +73,7 @@ namespace Kyoo.Controllers
|
||||
Pagination limit = default)
|
||||
{
|
||||
ICollection<Genre> genres = await ApplyFilters(_database.GenreLinks.Where(x => x.ShowID == showID)
|
||||
.Select(x => x.Genre),
|
||||
.Select(x => x.Genre as GenreDE),
|
||||
where,
|
||||
sort,
|
||||
limit);
|
||||
@ -89,7 +89,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
ICollection<Genre> genres = await ApplyFilters(_database.GenreLinks
|
||||
.Where(x => x.Show.Slug == showSlug)
|
||||
.Select(x => x.Genre),
|
||||
.Select(x => x.Genre as GenreDE),
|
||||
where,
|
||||
sort,
|
||||
limit);
|
||||
|
@ -76,7 +76,7 @@ namespace Kyoo.Controllers
|
||||
return ApplyFilters(ItemsQuery, where, sort, limit);
|
||||
}
|
||||
|
||||
public override async Task<ICollection<LibraryItem>> Search(string query)
|
||||
public async Task<ICollection<LibraryItem>> Search(string query)
|
||||
{
|
||||
return await ItemsQuery
|
||||
.Where(x => EF.Functions.ILike(x.Title, $"%{query}%"))
|
||||
|
@ -50,11 +50,10 @@ namespace Kyoo.Controllers
|
||||
.ToListAsync<Library>();
|
||||
}
|
||||
|
||||
public override async Task<Library> Create(Library item)
|
||||
public override async Task<LibraryDE> Create(LibraryDE obj)
|
||||
{
|
||||
if (item == null)
|
||||
throw new ArgumentNullException(nameof(item));
|
||||
LibraryDE obj = new LibraryDE(item);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
|
||||
await Validate(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
@ -82,11 +81,10 @@ namespace Kyoo.Controllers
|
||||
link.Provider = await _providers.CreateIfNotExists(link.Provider);
|
||||
}
|
||||
|
||||
public override async Task Delete(Library item)
|
||||
public override async Task Delete(LibraryDE obj)
|
||||
{
|
||||
if (item == null)
|
||||
throw new ArgumentNullException(nameof(item));
|
||||
LibraryDE obj = new LibraryDE(item);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
if (obj.ProviderLinks != null)
|
||||
|
@ -42,7 +42,7 @@ namespace Kyoo.Controllers
|
||||
await _shows.Value.DisposeAsync();
|
||||
}
|
||||
|
||||
public override async Task<ICollection<People>> Search(string query)
|
||||
public async Task<ICollection<People>> Search(string query)
|
||||
{
|
||||
return await _database.People
|
||||
.Where(people => EF.Functions.ILike(people.Name, $"%{query}%"))
|
||||
|
@ -4,7 +4,6 @@ using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using Kyoo.Models;
|
||||
using Kyoo.Models.Exceptions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Kyoo.Controllers
|
||||
@ -20,7 +19,7 @@ namespace Kyoo.Controllers
|
||||
_database = database;
|
||||
}
|
||||
|
||||
public override async Task<ICollection<ProviderID>> Search(string query)
|
||||
public async Task<ICollection<ProviderID>> Search(string query)
|
||||
{
|
||||
return await _database.Providers
|
||||
.Where(x => EF.Functions.ILike(x.Name, $"%{query}%"))
|
||||
|
@ -70,7 +70,7 @@ namespace Kyoo.Controllers
|
||||
&& x.SeasonNumber == seasonNumber);
|
||||
}
|
||||
|
||||
public override async Task<ICollection<Season>> Search(string query)
|
||||
public async Task<ICollection<Season>> Search(string query)
|
||||
{
|
||||
return await _database.Seasons
|
||||
.Where(x => EF.Functions.ILike(x.Title, $"%{query}%"))
|
||||
|
@ -86,11 +86,10 @@ namespace Kyoo.Controllers
|
||||
.ToListAsync<Show>();
|
||||
}
|
||||
|
||||
public override async Task<Show> Create(Show item)
|
||||
public override async Task<ShowDE> Create(ShowDE obj)
|
||||
{
|
||||
if (item == null)
|
||||
throw new ArgumentNullException(nameof(item));
|
||||
ShowDE obj = new ShowDE(item);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
|
||||
await Validate(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
@ -148,11 +147,10 @@ namespace Kyoo.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task Delete(Show item)
|
||||
public override async Task Delete(ShowDE obj)
|
||||
{
|
||||
if (item == null)
|
||||
throw new ArgumentNullException(nameof(item));
|
||||
ShowDE obj = new ShowDE(item);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
|
||||
|
@ -20,7 +20,7 @@ namespace Kyoo.Controllers
|
||||
_database = database;
|
||||
}
|
||||
|
||||
public override async Task<ICollection<Studio>> Search(string query)
|
||||
public async Task<ICollection<Studio>> Search(string query)
|
||||
{
|
||||
return await _database.Studios
|
||||
.Where(x => EF.Functions.ILike(x.Name, $"%{query}%"))
|
||||
|
@ -61,7 +61,7 @@ namespace Kyoo.Controllers
|
||||
&& x.Language == language
|
||||
&& x.IsForced == forced);
|
||||
}
|
||||
public override Task<ICollection<Track>> Search(string query)
|
||||
public Task<ICollection<Track>> Search(string query)
|
||||
{
|
||||
throw new InvalidOperationException("Tracks do not support the search method.");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user