Exemple #1
0
        public void UpdateAnime(int animeID)
        {
            try
            {
                JMMServerBinary.Contract_AniDBAnime animeRaw = JMMServerVM.Instance.clientBinaryHTTP.GetAnime(animeID);
                if (animeRaw != null)
                {
                    AniDB_AnimeVM anime = new AniDB_AnimeVM(animeRaw);
                    AllAnimeDictionary[anime.AnimeID] = anime;

                    // update the series
                    AnimeSeriesVM ser = AllSeriesDictionary.Values.FirstOrDefault(a => a.AniDB_ID == anime.AnimeID);
                    if (ser != null)
                    {
                        ser.RefreshBase();
                        ser.AniDB_Anime.Detail.RefreshBase();
                        AllSeriesDictionary[ser.AnimeSeriesID.Value] = ser;
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
 void missingDataWorker_DoWork(object sender, DoWorkEventArgs e)
 {
     try
     {
         foreach (AniDB_Anime_RelationVM rel in RelatedAnimeLinks)
         {
             if (rel.AnimeInfoNotExists)
             {
                 string result = JMMServerVM.Instance.clientBinaryHTTP.UpdateAnimeData(rel.RelatedAnimeID);
                 if (string.IsNullOrEmpty(result))
                 {
                     JMMServerBinary.Contract_AniDBAnime animeContract = JMMServerVM.Instance.clientBinaryHTTP.GetAnime(rel.RelatedAnimeID);
                     System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, (Action) delegate()
                     {
                         rel.PopulateAnime(animeContract);
                     });
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Utils.ShowErrorMessage(ex);
     }
 }
Exemple #3
0
        public void GetMissingRecommendationsDownload()
        {
            try
            {
                IsLoadingData = true;

                foreach (RecommendationVM rec in RecommendationsDownload)
                {
                    if (rec.Recommended_AnimeInfoNotExists)
                    {
                        string result = JMMServerVM.Instance.clientBinaryHTTP.UpdateAnimeData(rec.RecommendedAnimeID);
                        if (string.IsNullOrEmpty(result))
                        {
                            JMMServerBinary.Contract_AniDBAnime animeContract = JMMServerVM.Instance.clientBinaryHTTP.GetAnime(rec.RecommendedAnimeID);
                            System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, (Action) delegate()
                            {
                                rec.PopulateRecommendedAnime(animeContract);
                                ViewRecommendationsDownload.Refresh();
                            });
                        }
                    }
                }

                IsLoadingData = false;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
            }
        }
Exemple #4
0
        public void PopulateAnime(JMMServerBinary.Contract_AniDBAnime animeContract)
        {
            if (animeContract != null)
            {
                AniDB_Anime = new AniDB_AnimeVM(animeContract);
            }

            EvaluateProperties();
        }
Exemple #5
0
        public static AniDB_AnimeVM GetAnime(int animeID)
        {
            JMMServerBinary.Contract_AniDBAnime contractAnime = JMMServerVM.Instance.clientBinaryHTTP.GetAnime(animeID);
            if (contractAnime == null)
            {
                return(null);
            }

            return(new AniDB_AnimeVM(contractAnime));
        }
        void recsWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                AnimeSeriesVM ser = e.Argument as AnimeSeriesVM;

                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    Recommendations.Clear();
                });

                List <JMMServerBinary.Contract_AniDB_Anime_Similar> links = JMMServerVM.Instance.clientBinaryHTTP.GetSimilarAnimeLinks(ser.AniDB_ID,
                                                                                                                                       JMMServerVM.Instance.CurrentUser.JMMUserID.Value);


                List <AniDB_Anime_SimilarVM> tempList = new List <AniDB_Anime_SimilarVM>();
                foreach (JMMServerBinary.Contract_AniDB_Anime_Similar link in links)
                {
                    AniDB_Anime_SimilarVM sim = new AniDB_Anime_SimilarVM();
                    sim.Populate(link);
                    tempList.Add(sim);
                }

                List <SortPropOrFieldAndDirection> sortCriteria = new List <SortPropOrFieldAndDirection>();
                sortCriteria.Add(new SortPropOrFieldAndDirection("ApprovalPercentage", true, SortType.eDoubleOrFloat));
                tempList = Sorting.MultiSort <AniDB_Anime_SimilarVM>(tempList, sortCriteria);

                foreach (AniDB_Anime_SimilarVM sim in tempList)
                {
                    if (sim.AnimeInfoNotExists)
                    {
                        string result = JMMServerVM.Instance.clientBinaryHTTP.UpdateAnimeData(sim.SimilarAnimeID);
                        if (string.IsNullOrEmpty(result))
                        {
                            JMMServerBinary.Contract_AniDBAnime animeContract = JMMServerVM.Instance.clientBinaryHTTP.GetAnime(sim.SimilarAnimeID);
                            sim.PopulateAnime(animeContract);
                        }
                    }

                    System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                    {
                        Recommendations.Add(new RecommendationTile()
                        {
                            Details        = "",
                            AnimeName      = sim.DisplayName,
                            Picture        = sim.PosterPath,
                            AnimeSeries    = sim.AnimeSeries,
                            TileSize       = "Large",
                            Height         = 100,
                            Source         = "AniDB",
                            AnimeID        = sim.AnimeID,
                            URL            = sim.AniDB_SiteURL,
                            SimilarAnimeID = sim.SimilarAnimeID,
                            HasSeries      = sim.LocalSeriesExists
                        });
                    });
                }
            }
            catch (Exception ex)
            {
                logger.ErrorException(ex.ToString(), ex);
            }
        }
Exemple #7
0
        public AniDB_AnimeVM(JMMServerBinary.Contract_AniDBAnime contract)
        {
            this.AirDate             = contract.AirDate;
            this.AllCategories       = contract.AllCategories;
            this.AllCinemaID         = contract.AllCinemaID;
            this.AllTags             = contract.AllTags;
            this.AllTitles           = contract.AllTitles;
            this.AnimeID             = contract.AnimeID;
            this.AnimeNfo            = contract.AnimeNfo;
            this.AnimePlanetID       = contract.AnimePlanetID;
            this.AnimeType           = contract.AnimeType;
            this.ANNID               = contract.ANNID;
            this.AvgReviewRating     = contract.AvgReviewRating;
            this.AwardList           = contract.AwardList;
            this.BeginYear           = contract.BeginYear;
            this.Description         = contract.Description;
            this.DateTimeDescUpdated = contract.DateTimeDescUpdated;
            this.DateTimeUpdated     = contract.DateTimeUpdated;
            this.EndDate             = contract.EndDate;
            this.EndYear             = contract.EndYear;
            this.EpisodeCount        = contract.EpisodeCount;
            this.EpisodeCountNormal  = contract.EpisodeCountNormal;
            this.EpisodeCountSpecial = contract.EpisodeCountSpecial;
            this.ImageEnabled        = contract.ImageEnabled;
            this.LatestEpisodeNumber = contract.LatestEpisodeNumber;
            this.MainTitle           = contract.MainTitle;
            this.Picname             = contract.Picname;
            this.Rating              = contract.Rating;
            this.Restricted          = contract.Restricted;
            this.ReviewCount         = contract.ReviewCount;
            this.TempRating          = contract.TempRating;
            this.TempVoteCount       = contract.TempVoteCount;
            this.URL            = contract.URL;
            this.VoteCount      = contract.VoteCount;
            this.FormattedTitle = contract.FormattedTitle;

            if (contract.DefaultImagePoster != null)
            {
                DefaultPoster = new AniDB_Anime_DefaultImageVM(contract.DefaultImagePoster);
            }
            else
            {
                DefaultPoster = null;
            }

            if (contract.DefaultImageFanart != null)
            {
                DefaultFanart = new AniDB_Anime_DefaultImageVM(contract.DefaultImageFanart);
            }
            else
            {
                DefaultFanart = null;
            }

            if (contract.DefaultImageWideBanner != null)
            {
                DefaultWideBanner = new AniDB_Anime_DefaultImageVM(contract.DefaultImageWideBanner);
            }
            else
            {
                DefaultWideBanner = null;
            }

            bool isDefault = false;

            if (DefaultPoster != null && DefaultPoster.ImageParentType == (int)ImageEntityType.AniDB_Cover)
            {
                isDefault = true;
            }

            IsImageDefault = isDefault;
        }