// /// <summary> /// It's unfortunate that by updating these properties via reflection /// i'm not raising propertychanged, so i'll just do it here manually /// </summary> private static void UpdateObservableProperties(AiringAnime original, AiringAnime updated) { original.Description = updated.Description; original.Source = updated.Source; original.Studio = updated.Studio; original.ImagePath = updated.ImagePath; }
public async Task UpdateEntry(AnimeSeason season, bool isNew, AiringAnime updated) { if (!Data.ContainsKey(season.Title)) { return; } var list = isNew ? Data[season.Title].New : Data[season.Title].LeftOver; var index = list.IndexOf(list.First(a => a.Id.Equals(updated.Id))); list[index] = updated; await DownloadImage(updated); await Save(); }
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 DetailsViewModel CreateNewFromAiring(AiringAnime airing) { Editing = false; Anime = new Anime { Name = airing.TitleEnglish, Episode = 0, Status = Status.Watching, Resolution = "720", Airing = true, Details = { AniId = airing.Id, NeedsUpdating = true, Image = airing.ImagePath, Synopsis = airing.Description, Title = airing.TitleRomaji, English = airing.TitleEnglish, Aired = airing.AnimeSeason, TotalEpisodes = airing.TotalEpisodes, OverallTotal = airing.TotalEpisodes } }; Image = airing.ImagePath; // Text = "Add"; Command = new RelayCommand( CreateAndReturn, () => !_animeService.Animes.Any( a => a.Name.ToLower().Trim().Equals(Anime?.Name?.ToLower().Trim())) && Anime?.Name?.Length > 0 ); return(this); }