public async ValueTask <Manga> GetManga(long mangaId, long userId) { using var context = Context; var mangaService = new MangaService(context); var chapterService = new ChapterService(context); var mangaTagMappingService = new MangaTagMappingService(context); var favoriteService = new FavoriteService(context); var readProgressService = new ReadProgressService(context); var commentProgressService = new CommentService(context); var manga = await mangaService.GetSingleAsync(it => it.ObjectId == mangaId); manga.Chapters = (await chapterService .GetListAsync(it => it.MangaId == mangaId)) .OrderBy(it => it.Order) .ToList(); manga.Tags = await mangaTagMappingService.GetTagByMangaId(mangaId); if (userId <= 0) { return(manga); } manga.IsFavorite = await favoriteService.IsAnyAsync(it => it.EntityId == mangaId && it.UserId == userId); manga.ReadProgresses = await readProgressService.GetListAsync(it => it.MangaId == mangaId && it.UserId == userId); manga.Comment = await commentProgressService.GetSingleAsync(it => it.EntityId == mangaId && it.UserId == userId); return(manga); }
public async ValueTask <Manga> GetManga(long pathId) { using var context = Context; var mangaService = new MangaService(context); var chapterService = new ChapterService(context); var mangaTagMappingService = new MangaTagMappingService(context); var manga = await mangaService.GetSingleAsync(it => it.PathId == pathId); manga.Chapters = await chapterService.GetListAsync(it => it.MangaId == manga.ObjectId); manga.Tags = await mangaTagMappingService.GetTagByMangaId(manga.ObjectId); return(manga); }