mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Finishing the Load method
This commit is contained in:
parent
438074a93e
commit
466873da9f
@ -209,24 +209,13 @@ namespace Kyoo.Controllers
|
|||||||
|
|
||||||
public interface IProviderRepository : IRepository<ProviderID>
|
public interface IProviderRepository : IRepository<ProviderID>
|
||||||
{
|
{
|
||||||
Task<ICollection<MetadataID>> GetFromShow(int showID,
|
Task<ICollection<MetadataID>> GetMetadataID(Expression<Func<MetadataID, bool>> where = null,
|
||||||
Expression<Func<MetadataID, bool>> where = null,
|
|
||||||
Sort<MetadataID> sort = default,
|
Sort<MetadataID> sort = default,
|
||||||
Pagination limit = default);
|
Pagination limit = default);
|
||||||
Task<ICollection<MetadataID>> GetFromShow(int showID,
|
|
||||||
[Optional] Expression<Func<MetadataID, bool>> where,
|
Task<ICollection<MetadataID>> GetMetadataID([Optional] Expression<Func<MetadataID, bool>> where,
|
||||||
Expression<Func<MetadataID, object>> sort = default,
|
Expression<Func<MetadataID, object>> sort,
|
||||||
Pagination limit = default
|
Pagination limit = default
|
||||||
) => GetFromShow(showID, where, new Sort<MetadataID>(sort), limit);
|
) => GetMetadataID(where, new Sort<MetadataID>(sort), limit);
|
||||||
|
|
||||||
Task<ICollection<MetadataID>> GetFromShow(string showSlug,
|
|
||||||
Expression<Func<MetadataID, bool>> where = null,
|
|
||||||
Sort<MetadataID> sort = default,
|
|
||||||
Pagination limit = default);
|
|
||||||
Task<ICollection<MetadataID>> GetFromShow(string showSlug,
|
|
||||||
[Optional] Expression<Func<MetadataID, bool>> where,
|
|
||||||
Expression<Func<MetadataID, object>> sort = default,
|
|
||||||
Pagination limit = default
|
|
||||||
) => GetFromShow(showSlug, where, new Sort<MetadataID>(sort), limit);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -276,12 +276,12 @@ namespace Kyoo.Controllers
|
|||||||
(Collection c, Library) => LibraryRepository.GetAll(Utility.ResourceEquals<Library>(obj))
|
(Collection c, Library) => LibraryRepository.GetAll(Utility.ResourceEquals<Library>(obj))
|
||||||
.Then(x => c.Libraries = x),
|
.Then(x => c.Libraries = x),
|
||||||
|
|
||||||
(Show s, MetadataID) => ProviderRepository.Get(Utility.ResourceEquals<MetadataID>(obj))
|
(Show s, MetadataID) => ProviderRepository.GetMetadataID(x => x.ShowID == obj.ID)
|
||||||
.Then(x => s.ExternalIDs = x),
|
.Then(x => s.ExternalIDs = x),
|
||||||
(Show s, Genre) => GenreRepository.GetAll(Utility.ResourceEquals<Genre>(obj))
|
(Show s, Genre) => GenreRepository.GetAll(Utility.ResourceEquals<Genre>(obj))
|
||||||
.Then(x => s.Genres = x),
|
.Then(x => s.Genres = x),
|
||||||
(Show s, PeopleRole) => PeopleRepository.GetFromShow(Utility.ResourceEquals<PeopleRole>(obj))
|
(Show s, PeopleRole) => (PeopleRepository.GetFromShow((dynamic)(obj.ID > 0 ? obj.ID : obj.Slug))
|
||||||
.Then(x => s.People = x),
|
as Task<ICollection<PeopleRole>>).Then(x => s.People = x),
|
||||||
(Show s, Season) => SeasonRepository.GetAll(Utility.ResourceEquals<Season>(obj))
|
(Show s, Season) => SeasonRepository.GetAll(Utility.ResourceEquals<Season>(obj))
|
||||||
.Then(x => s.Seasons = x),
|
.Then(x => s.Seasons = x),
|
||||||
(Show s, Episode) => EpisodeRepository.GetAll(Utility.ResourceEquals<Episode>(obj))
|
(Show s, Episode) => EpisodeRepository.GetAll(Utility.ResourceEquals<Episode>(obj))
|
||||||
@ -291,12 +291,12 @@ namespace Kyoo.Controllers
|
|||||||
(Show s, Collection) => CollectionRepository.GetAll(Utility.ResourceEquals<Collection>(obj))
|
(Show s, Collection) => CollectionRepository.GetAll(Utility.ResourceEquals<Collection>(obj))
|
||||||
.Then(x => s.Collections = x),
|
.Then(x => s.Collections = x),
|
||||||
|
|
||||||
(Season s, MetadataID) => ProviderRepository.GetAll(Utility.ResourceEquals<MetadataID>(obj))
|
(Season s, MetadataID) => ProviderRepository.GetMetadataID(x => x.SeasonID == obj.ID)
|
||||||
.Then(x => s.ExternalIDs = x),
|
.Then(x => s.ExternalIDs = x),
|
||||||
(Season s, Episode) => EpisodeRepository.GetAll(Utility.ResourceEquals<Episode>(obj))
|
(Season s, Episode) => EpisodeRepository.GetAll(Utility.ResourceEquals<Episode>(obj))
|
||||||
.Then(x => s.Episodes = x),
|
.Then(x => s.Episodes = x),
|
||||||
|
|
||||||
(Episode e, MetadataID) => ProviderRepository.GetAll(Utility.ResourceEquals<MetadataID>(obj))
|
(Episode e, MetadataID) => ProviderRepository.GetMetadataID(x => x.EpisodeID == obj.ID)
|
||||||
.Then(x => e.ExternalIDs = x),
|
.Then(x => e.ExternalIDs = x),
|
||||||
(Episode e, Track) => TrackRepository.GetAll(Utility.ResourceEquals<Track>(obj))
|
(Episode e, Track) => TrackRepository.GetAll(Utility.ResourceEquals<Track>(obj))
|
||||||
.Then(x => e.Tracks = x),
|
.Then(x => e.Tracks = x),
|
||||||
@ -307,10 +307,10 @@ namespace Kyoo.Controllers
|
|||||||
(Studio s, Show) => ShowRepository.GetAll(Utility.ResourceEquals<Show>(obj))
|
(Studio s, Show) => ShowRepository.GetAll(Utility.ResourceEquals<Show>(obj))
|
||||||
.Then(x => s.Shows = x),
|
.Then(x => s.Shows = x),
|
||||||
|
|
||||||
(People p, MetadataID) => ProviderRepository.GetAll(Utility.ResourceEquals<MetadataID>(obj))
|
(People p, MetadataID) => ProviderRepository.GetMetadataID(x => x.PeopleID == obj.ID)
|
||||||
.Then(x => p.ExternalIDs = x),
|
.Then(x => p.ExternalIDs = x),
|
||||||
(People p, PeopleRole) => PeopleRepository.GetFromPeople(Utility.ResourceEquals<PeopleRole>(obj))
|
(People p, PeopleRole) => (PeopleRepository.GetFromPeople((dynamic)(obj.ID > 0 ? obj.ID : obj.Slug))
|
||||||
.Then(x => p.Roles = x),
|
as Task<ICollection<PeopleRole>>).Then(x => p.Roles = x),
|
||||||
|
|
||||||
_ => throw new ArgumentException($"Couldn't find a way to load {member} of {typeof(T).Name}.")
|
_ => throw new ArgumentException($"Couldn't find a way to load {member} of {typeof(T).Name}.")
|
||||||
};
|
};
|
||||||
|
@ -45,5 +45,17 @@ namespace Kyoo.Controllers
|
|||||||
// TODO handle ExternalID deletion when they refer to this providerID.
|
// TODO handle ExternalID deletion when they refer to this providerID.
|
||||||
await _database.SaveChangesAsync();
|
await _database.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Task<ICollection<MetadataID>> GetMetadataID(Expression<Func<MetadataID, bool>> where = null,
|
||||||
|
Sort<MetadataID> sort = default,
|
||||||
|
Pagination limit = default)
|
||||||
|
{
|
||||||
|
return ApplyFilters(_database.MetadataIds,
|
||||||
|
x => _database.MetadataIds.FirstOrDefaultAsync(y => y.ID == x),
|
||||||
|
x => x.ID,
|
||||||
|
where,
|
||||||
|
sort,
|
||||||
|
limit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user