public async Task FillInDetails(AnimeSeason season, bool isNew, AiringAnime anime) { anime.Description = "Loading ..."; var updated = await _api.GetAnime(anime.Id, true); if (updated != null) { await _data.UpdateEntry(season, isNew, updated); UpdateObservableProperties(anime, updated); } else { anime.Description = ""; } }
public async Task <(bool successful, bool changesMade)> FillInDetails(Anime anime) { var changesMade = false; if (GetId(anime) == 0) { var(successful, id) = await FindId(anime); if (successful) { SetId(anime, id); } } if (GetId(anime) > 0) { var updated = await _api.GetAnime(GetId(anime), false); if (anime.Details.OverallTotal < anime.Details.TotalEpisodes) { anime.Details.OverallTotal = anime.Details.TotalEpisodes; } if (anime.Details.Synopsis != updated.Description) { anime.Details.Synopsis = updated.Description; changesMade = true; } if (anime.Details.Title != updated.TitleRomaji) { anime.Details.Title = updated.TitleRomaji; changesMade = true; } if (anime.Details.English != updated.TitleEnglish) { anime.Details.English = updated.TitleEnglish; changesMade = true; } if (updated.TotalEpisodes != 0 && anime.Details.TotalEpisodes != updated.TotalEpisodes) { anime.Details.TotalEpisodes = updated.TotalEpisodes; anime.Details.OverallTotal = updated.TotalEpisodes; changesMade = true; } if (anime.Details.Image == null && updated.ImagePath != null) { anime.Details.Image = updated.ImagePath; changesMade = true; } // Date details if (updated.StartDate.HasValue) { var aired = new AnimeSeason { Year = updated.StartDate.Value.Year, Season = (Season)Math.Ceiling(Convert.ToDouble(updated.StartDate.Value.Month) / 3) }; if (anime.Details.Aired != aired) { anime.Details.Aired = aired; changesMade = true; } } if (updated.EndDate is DateTime end) { var ended = new AnimeSeason { Year = end.Year, Season = (Season)Math.Ceiling(Convert.ToDouble(end.Month) / 3) }; if (anime.Details.Ended != ended) { anime.Details.Ended = ended; changesMade = true; } } var continuationChanged = await CheckSeriesContinuation(anime); if (continuationChanged) { changesMade = true; } return(true, changesMade); } return(false, false); }