[FA-6] Good spot
This commit is contained in:
@@ -153,12 +153,12 @@ public class Query
|
||||
public IQueryable<ChapterReaderDto> GetChapter(
|
||||
NovelServiceDbContext dbContext,
|
||||
uint novelId,
|
||||
uint volumeId,
|
||||
uint volumeOrder,
|
||||
uint chapterOrder,
|
||||
Language preferredLanguage = Language.En)
|
||||
{
|
||||
return dbContext.Chapters
|
||||
.Where(c => c.Volume.Novel.Id == novelId && c.Volume.Id == volumeId && c.Order == chapterOrder)
|
||||
.Where(c => c.Volume.Novel.Id == novelId && c.Volume.Order == volumeOrder && c.Order == chapterOrder)
|
||||
.Select(chapter => new ChapterReaderDto
|
||||
{
|
||||
Id = chapter.Id,
|
||||
@@ -210,16 +210,16 @@ public class Query
|
||||
TotalChaptersInVolume = chapter.Volume.Chapters.Count,
|
||||
|
||||
// Previous chapter: first try same volume, then last chapter of previous volume
|
||||
PrevChapterVolumeId = chapter.Volume.Chapters
|
||||
PrevChapterVolumeOrder = chapter.Volume.Chapters
|
||||
.Where(c => c.Order < chapterOrder)
|
||||
.OrderByDescending(c => c.Order)
|
||||
.Select(c => (uint?)chapter.Volume.Id)
|
||||
.Select(c => (int?)chapter.Volume.Order)
|
||||
.FirstOrDefault()
|
||||
?? chapter.Volume.Novel.Volumes
|
||||
.Where(v => v.Order < chapter.Volume.Order)
|
||||
.OrderByDescending(v => v.Order)
|
||||
.SelectMany(v => v.Chapters.OrderByDescending(c => c.Order).Take(1))
|
||||
.Select(c => (uint?)c.Volume.Id)
|
||||
.Select(c => (int?)c.Volume.Order)
|
||||
.FirstOrDefault(),
|
||||
|
||||
PrevChapterOrder = chapter.Volume.Chapters
|
||||
@@ -235,16 +235,16 @@ public class Query
|
||||
.FirstOrDefault(),
|
||||
|
||||
// Next chapter: first try same volume, then first chapter of next volume
|
||||
NextChapterVolumeId = chapter.Volume.Chapters
|
||||
NextChapterVolumeOrder = chapter.Volume.Chapters
|
||||
.Where(c => c.Order > chapterOrder)
|
||||
.OrderBy(c => c.Order)
|
||||
.Select(c => (uint?)chapter.Volume.Id)
|
||||
.Select(c => (int?)chapter.Volume.Order)
|
||||
.FirstOrDefault()
|
||||
?? chapter.Volume.Novel.Volumes
|
||||
.Where(v => v.Order > chapter.Volume.Order)
|
||||
.OrderBy(v => v.Order)
|
||||
.SelectMany(v => v.Chapters.OrderBy(c => c.Order).Take(1))
|
||||
.Select(c => (uint?)c.Volume.Id)
|
||||
.Select(c => (int?)c.Volume.Order)
|
||||
.FirstOrDefault(),
|
||||
|
||||
NextChapterOrder = chapter.Volume.Chapters
|
||||
|
||||
@@ -19,9 +19,9 @@ public class ChapterReaderDto : BaseDto<uint>
|
||||
public int VolumeOrder { get; init; }
|
||||
public int TotalChaptersInVolume { get; init; }
|
||||
|
||||
// Cross-volume navigation (VolumeId + Order identify a chapter)
|
||||
public uint? PrevChapterVolumeId { get; init; }
|
||||
// Cross-volume navigation (VolumeOrder + ChapterOrder identify a chapter)
|
||||
public int? PrevChapterVolumeOrder { get; init; }
|
||||
public uint? PrevChapterOrder { get; init; }
|
||||
public uint? NextChapterVolumeId { get; init; }
|
||||
public int? NextChapterVolumeOrder { get; init; }
|
||||
public uint? NextChapterOrder { get; init; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user