public async Task <IActionResult> Index(long id)
        {
            AnimeDetailsModel model = new AnimeDetailsModel();

            Jikan jikan = new Jikan();

            var anime = await jikan.GetAnime(id);

            model.ID           = anime.MalId;
            model.Title        = anime.Title;
            model.EnglishTitle = anime.TitleEnglish;
            model.Studios      = string.Join(", ", anime.Studios);
            model.Synopsis     = anime.Synopsis;
            model.ImageURL     = anime.ImageURL;
            model.Genres       = string.Join(", ", anime.Genres);
            model.Airing       = anime.Airing;
            model.Premiered    = anime.Premiered;

            int episodes;

            if (!int.TryParse(anime.Episodes, out episodes))
            {
                episodes = -1;
            }
            model.Episodes = episodes;

            return(View("AnimeDetailsView", model));
        }
Пример #2
0
        public async Task <IActionResult> GetAnimeDetailsFromUserWatchlist(string username, long id)
        {
            Jikan jikan = new Jikan();

            var watchlistData = await jikan.GetUserAnimeList(username);

            Anime             details = null;
            AnimeDetailsModel model   = new AnimeDetailsModel();

            foreach (var anime in watchlistData.Anime)
            {
                var watchStatus = anime.WatchingStatus;

                if (anime.MalId == id)
                {
                    details = await jikan.GetAnime(id);

                    model.ID           = details.MalId;
                    model.Title        = details.Title;
                    model.EnglishTitle = details.TitleEnglish;
                    model.Studios      = string.Join(", ", details.Studios);
                    model.Synopsis     = details.Synopsis;
                    model.ImageURL     = details.ImageURL;
                    model.Genres       = string.Join(", ", details.Genres);
                    model.Airing       = details.Airing;
                    model.Premiered    = details.Premiered;

                    int episodes;
                    if (!int.TryParse(details.Episodes, out episodes))
                    {
                        episodes = -1;
                    }
                    model.Episodes = episodes;

                    if (anime.Score == 0)
                    {
                        model.Score = null;
                    }
                    else
                    {
                        model.Score = anime.Score;
                    }

                    switch (anime.WatchingStatus)
                    {
                    case UserAnimeListExtension.Completed:
                        model.ListStatus = "Completed";
                        break;

                    case UserAnimeListExtension.Dropped:
                        model.ListStatus = "Dropped";
                        break;

                    case UserAnimeListExtension.OnHold:
                        model.ListStatus = "On Hold";
                        break;

                    case UserAnimeListExtension.PlanToWatch:
                        model.ListStatus = "Plan To Watch";
                        break;

                    case UserAnimeListExtension.Watching:
                        model.ListStatus = "Watching";
                        break;

                    default:
                        model.ListStatus = null;
                        break;
                    }

                    break;
                }
            }

            if (details == null)
            {
                // lmao what do?
                return(View(new ErrorViewModel {
                    RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier
                }));
            }



            return(View("Views/Anime/AnimeDetailsView.cshtml", model));
        }