예제 #1
0
        //

        /// <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;
        }
예제 #2
0
        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();
        }
예제 #3
0
        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 = "";
            }
        }
예제 #4
0
        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);
        }