Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }