Sort Order Fix on Volume Detail Page (#3216)

This commit is contained in:
Joe Milazzo 2024-09-23 10:52:34 -05:00 committed by GitHub
parent ee253820f6
commit 0a13cc8454
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 131 additions and 103 deletions

View file

@ -127,9 +127,18 @@ public class VolumeRepository : IVolumeRepository
if (includeChapters)
{
query = query.Include(v => v.Chapters).AsSplitQuery();
query = query
.Includes(VolumeIncludes.Chapters)
.AsSplitQuery();
}
return await query.ToListAsync();
var volumes = await query.ToListAsync();
foreach (var volume in volumes)
{
volume.Chapters = volume.Chapters.OrderBy(c => c.SortOrder).ToList();
}
return volumes;
}
/// <summary>
@ -142,12 +151,11 @@ public class VolumeRepository : IVolumeRepository
{
var volume = await _context.Volume
.Where(vol => vol.Id == volumeId)
.Include(vol => vol.Chapters)
.ThenInclude(c => c.Files)
.Includes(VolumeIncludes.Chapters | VolumeIncludes.Files)
.AsSplitQuery()
.OrderBy(v => v.MinNumber)
.ProjectTo<VolumeDto>(_mapper.ConfigurationProvider)
.SingleOrDefaultAsync(vol => vol.Id == volumeId);
.FirstOrDefaultAsync(vol => vol.Id == volumeId);
if (volume == null) return null;
@ -166,8 +174,7 @@ public class VolumeRepository : IVolumeRepository
{
return await _context.Volume
.Where(vol => vol.SeriesId == seriesId)
.Include(vol => vol.Chapters)
.ThenInclude(c => c.Files)
.Includes(VolumeIncludes.Chapters | VolumeIncludes.Files)
.AsSplitQuery()
.OrderBy(vol => vol.MinNumber)
.ToListAsync();
@ -205,24 +212,19 @@ public class VolumeRepository : IVolumeRepository
await AddVolumeModifiers(userId, volumes);
foreach (var volume in volumes)
{
volume.Chapters = volume.Chapters.OrderBy(c => c.SortOrder).ToList();
}
return volumes;
}
public async Task<Volume?> GetVolumeByIdAsync(int volumeId)
{
return await _context.Volume.SingleOrDefaultAsync(x => x.Id == volumeId);
return await _context.Volume.FirstOrDefaultAsync(x => x.Id == volumeId);
}
public async Task<IList<Volume>> GetAllWithCoversInDifferentEncoding(EncodeFormat encodeFormat)
{
var extension = encodeFormat.GetExtension();
return await _context.Volume
.Include(v => v.Chapters)
.Includes(VolumeIncludes.Chapters)
.Where(c => !string.IsNullOrEmpty(c.CoverImage) && !c.CoverImage.EndsWith(extension))
.AsSplitQuery()
.ToListAsync();