コード例 #1
0
        public void RefreshMiniCalendar()
        {
            try
            {
                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    MiniCalendar.Clear();
                });

                List <JMMServerBinary.Contract_AniDBAnime> contracts =
                    JMMServerVM.Instance.clientBinaryHTTP.GetMiniCalendar(JMMServerVM.Instance.CurrentUser.JMMUserID.Value, UserSettingsVM.Instance.Dash_MiniCalendarDays);

                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    foreach (JMMServerBinary.Contract_AniDBAnime contract in contracts)
                    {
                        AniDB_AnimeVM anime = new AniDB_AnimeVM(contract);
                        if (JMMServerVM.Instance.CurrentUser.EvaluateAnime(anime))
                        {
                            MiniCalendar.Add(anime);
                        }
                    }
                    ViewEpsWatchNext_Recent.Refresh();
                });
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
            }
        }
コード例 #2
0
        void btnSwitchTraktSeason_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                Window wdw = Window.GetWindow(this);

                this.Cursor = Cursors.Wait;
                SelectTraktSeasonForm frm = new SelectTraktSeasonForm();
                frm.Owner = wdw;
                frm.Init(anime.AnimeID, anime.FormattedTitle, AniDB_AnimeCrossRefs.CrossRef_AniDB_Trakt.TraktID,
                         AniDB_AnimeCrossRefs.CrossRef_AniDB_Trakt.TraktSeasonNumber, AniDB_AnimeCrossRefs.TraktShow.Title);
                bool?result = frm.ShowDialog();
                if (result.Value)
                {
                    // update info
                    RefreshData();
                }

                this.Cursor = Cursors.Arrow;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #3
0
        private void SearchMovieDB()
        {
            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                Window wdw = Window.GetWindow(this);

                this.Cursor = Cursors.Wait;
                SearchMovieDBForm frm = new SearchMovieDBForm();
                frm.Owner = wdw;
                frm.Init(anime.AnimeID, anime.FormattedTitle);
                bool?result = frm.ShowDialog();
                if (result.Value)
                {
                    // update info
                    RefreshData();
                }

                this.Cursor = Cursors.Arrow;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #4
0
        private void CommandBinding_ToggleAutoLinkMAL(object sender, ExecutedRoutedEventArgs e)
        {
            object obj = e.Parameter;

            if (obj == null)
            {
                return;
            }

            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                this.Cursor = Cursors.Wait;

                anime.IsMALLinkDisabled = !anime.IsMALLinkDisabled;
                anime.UpdateDisableExternalLinksFlag();
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #5
0
        void btnUpdateTraktInfo_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                this.Cursor = Cursors.Wait;
                JMMServerVM.Instance.clientBinaryHTTP.UpdateTraktData(AniDB_AnimeCrossRefs.CrossRef_AniDB_Trakt.TraktID);

                // find the series for this anime
                foreach (AnimeSeriesVM ser in MainListHelperVM.Instance.AllSeries)
                {
                    if (anime.AnimeID == ser.AniDB_ID)
                    {
                        MainListHelperVM.Instance.UpdateHeirarchy(ser);
                        break;
                    }
                }

                RefreshData();
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #6
0
        private void CommandBinding_ReportTvDBLink(object sender, ExecutedRoutedEventArgs e)
        {
            object obj = e.Parameter;

            if (obj == null)
            {
                return;
            }

            try
            {
                if (obj.GetType() == typeof(CrossRef_AniDB_TvDBVMV2))
                {
                    CrossRef_AniDB_TvDBVMV2 link = obj as CrossRef_AniDB_TvDBVMV2;

                    AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                    if (anime == null)
                    {
                        return;
                    }

                    this.Cursor = Cursors.Wait;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #7
0
ファイル: MainListHelperVM.cs プロジェクト: RickDB/jmmclient
        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);
            }
        }
コード例 #8
0
        void btnUpdateMovieDBInfo_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                Window wdw = Window.GetWindow(this);

                this.Cursor = Cursors.Wait;
                string res = JMMServerVM.Instance.clientBinaryHTTP.UpdateMovieDBData(AniDB_AnimeCrossRefs.MovieDB_Movie.MovieId);
                if (res.Length > 0)
                {
                    MessageBox.Show(res, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    // update info
                    RefreshData();
                }

                this.Cursor = Cursors.Arrow;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #9
0
        public static bool EvaluateAnimeTextSearch(AniDB_AnimeVM anime, string filterText, SeriesSearchType searchType)
        {
            if (String.IsNullOrEmpty(filterText) || anime == null)
            {
                return(true);
            }

            // search the romaji name, english names etc from anidb
            if (anime.AllTitles.SubContains(filterText))
            {
                return(true);
            }


            if (searchType == SeriesSearchType.Everything)
            {
                // check the tags
                if (anime.AllTags.Contains(filterText, StringComparer.InvariantCultureIgnoreCase))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #10
0
        private void RefreshAdminData()
        {
            try
            {
                if (JMMServerVM.Instance.ShowCommunity)
                {
                    AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                    if (anime == null)
                    {
                        return;
                    }

                    CommunityTVDBLinks.Clear();
                    CommunityTraktLinks.Clear();

                    btnTvDBCommLinks1.IsEnabled = false;
                    btnTvDBCommLinks2.IsEnabled = false;
                    CommTvDBButtonText          = "Checking Online...";

                    btnTraktCommLinks1.IsEnabled = false;
                    btnTraktCommLinks2.IsEnabled = false;
                    CommTraktButtonText          = "Checking Online...";

                    if (!communityWorker.IsBusy)
                    {
                        communityWorker.RunWorkerAsync(anime);
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #11
0
        public void Init(AnimeEpisodeVM ep, AniDB_AnimeVM anime)
        {
            AnimeID      = anime.AnimeID;
            Anime        = anime;
            AnimeEpisode = ep;

            List <int> uids = new List <int>();

            cboSeries.Items.Clear();
            foreach (CrossRef_AniDB_TvDBVMV2 xref in Anime.TvSummary.CrossRefTvDBV2)
            {
                if (!uids.Contains(xref.TvDBID))
                {
                    cboSeries.Items.Add(xref);
                }

                uids.Add(xref.TvDBID);
            }

            cboSeries.SelectionChanged += new SelectionChangedEventHandler(cboSeries_SelectionChanged);

            if (cboSeries.Items.Count > 0)
            {
                cboSeries.SelectedIndex = 0;
            }
        }
コード例 #12
0
        public static string GetWideBannerAsFileName(AniDB_AnimeVM anime)
        {
            // check for user options
            List <string> banners = new List <string>();

            foreach (TvDB_ImageWideBannerVM wdban in anime.AniDB_AnimeCrossRefs.TvDBImageWideBanners)
            {
                if (wdban.IsImageDefault && File.Exists(wdban.FullImagePath))
                {
                    return(wdban.FullImagePath);
                }

                if (File.Exists(wdban.FullImagePath))
                {
                    banners.Add(wdban.FullImagePath);
                }
            }

            if (banners.Count == 0)
            {
                return("");
            }

            return(banners[bannerRandom.Next(0, banners.Count - 1)]);
        }
コード例 #13
0
        private List <string> GetFanartFilenames(AniDB_AnimeVM anime)
        {
            List <string> allFanart = new List <string>();

            // check if user has specied a fanart to always be used
            if (anime.DefaultFanart != null)
            {
                if (!string.IsNullOrEmpty(anime.DefaultFanart.FullImagePath) && File.Exists(anime.DefaultFanart.FullImagePath))
                {
                    allFanart.Add(anime.DefaultFanart.FullImagePath);
                    return(allFanart);
                }
            }

            //if (anime.AniDB_AnimeCrossRefs != nul
            foreach (FanartContainer fanart in anime.AniDB_AnimeCrossRefs.AllFanarts)
            {
                if (!fanart.IsImageEnabled)
                {
                    continue;
                }
                if (!File.Exists(fanart.FullImagePath))
                {
                    continue;
                }

                allFanart.Add(fanart.FullImagePath);
            }


            return(allFanart);
        }
コード例 #14
0
        private void LoadData()
        {
            relations.Clear();

            mainAnime = null;
            serMain   = null;



            serMain = JMMServerHelper.GetSeries(MainWindow.GlobalSeriesID);
            if (serMain != null)
            {
                mainAnime = serMain.AniDB_Anime;
            }

            if (mainAnime == null)
            {
                return;
            }

            try
            {
                relations = mainAnime.RelatedAnimeLinks;
            }
            catch (Exception ex)
            {
                BaseConfig.MyAnimeLog.Write(ex.ToString());
            }
        }
コード例 #15
0
        private void RefreshData()
        {
            try
            {
                AniDB_AnimeCrossRefs = null;

                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                JMMServerBinary.Contract_AniDB_AnimeCrossRefs xrefDetails = JMMServerVM.Instance.clientBinaryHTTP.GetCrossRefDetails(anime.AnimeID);
                if (xrefDetails == null)
                {
                    return;
                }

                AniDB_AnimeCrossRefs = new AniDB_AnimeCrossRefsVM();
                AniDB_AnimeCrossRefs.Populate(xrefDetails);

                MainListHelperVM.Instance.UpdateAnime(anime.AnimeID);
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #16
0
        private void CommandBinding_DeleteAllFiles(object sender, ExecutedRoutedEventArgs e)
        {
            object obj = e.Parameter;

            if (obj == null)
            {
                return;
            }

            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                Window wdw = Window.GetWindow(this);
                if (obj.GetType() == typeof(GroupVideoQualityVM))
                {
                    GroupVideoQualityVM gvq = (GroupVideoQualityVM)obj;

                    this.Cursor = Cursors.Wait;
                    DeleteFilesForm frm = new DeleteFilesForm();
                    frm.Owner = wdw;
                    frm.Init(anime.AnimeID, gvq);
                    bool?result = frm.ShowDialog();
                    if (result.Value)
                    {
                        // refresh
                        RefreshRecords();
                    }

                    this.Cursor = Cursors.Arrow;
                }

                if (obj.GetType() == typeof(GroupFileSummaryVM))
                {
                    GroupFileSummaryVM gfs = (GroupFileSummaryVM)obj;

                    this.Cursor = Cursors.Wait;
                    DeleteFilesForm frm = new DeleteFilesForm();
                    frm.Owner = wdw;
                    frm.Init(anime.AnimeID, gfs);
                    bool?result = frm.ShowDialog();
                    if (result.Value)
                    {
                        // refresh
                        RefreshRecords();
                    }

                    this.Cursor = Cursors.Arrow;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #17
0
 public void Init(int animeID, string animeName, string searchCriteria, int?existingTVDBID, AniDB_AnimeVM anime)
 {
     Anime          = anime;
     AnimeID        = animeID;
     AnimeName      = animeName;
     ExistingTVDBID = existingTVDBID;
     txtSearch.Text = searchCriteria;
 }
コード例 #18
0
        public void RefreshData()
        {
            try
            {
                AniDB_AnimeVM anime = null;

                AnimeSeriesVM animeSeries = (AnimeSeriesVM)this.DataContext;
                if (animeSeries == null)
                {
                    SimilarAnimeLinks.Clear();
                    return;
                }
                SimilarAnimeLinks.Clear();
                anime = animeSeries.AniDB_Anime;

                if (anime == null)
                {
                    return;
                }


                List <JMMServerBinary.Contract_AniDB_Anime_Similar> links = JMMServerVM.Instance.clientBinaryHTTP.GetSimilarAnimeLinks(anime.AnimeID,
                                                                                                                                       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)
                {
                    SimilarAnimeLinks.Add(sim);
                }

                if (SimilarAnimeLinks.Count == 0)
                {
                    DataExists  = false;
                    DataMissing = true;
                }
                else
                {
                    DataExists  = true;
                    DataMissing = false;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #19
0
        public void RefreshData()
        {
            try
            {
                AniDB_AnimeVM anime = null;

                AnimeSeriesVM animeSeries = (AnimeSeriesVM)this.DataContext;
                if (animeSeries == null)
                {
                    RelatedAnimeLinks.Clear();
                    return;
                }
                RelatedAnimeLinks.Clear();
                anime = animeSeries.AniDB_Anime;

                if (anime == null)
                {
                    return;
                }


                List <JMMServerBinary.Contract_AniDB_Anime_Relation> links = JMMServerVM.Instance.clientBinaryHTTP.GetRelatedAnimeLinks(anime.AnimeID,
                                                                                                                                        JMMServerVM.Instance.CurrentUser.JMMUserID.Value);


                List <AniDB_Anime_RelationVM> tempList = new List <AniDB_Anime_RelationVM>();
                foreach (JMMServerBinary.Contract_AniDB_Anime_Relation link in links)
                {
                    AniDB_Anime_RelationVM rel = new AniDB_Anime_RelationVM();
                    rel.Populate(link);
                    tempList.Add(rel);
                }

                List <SortPropOrFieldAndDirection> sortCriteria = new List <SortPropOrFieldAndDirection>();
                sortCriteria.Add(new SortPropOrFieldAndDirection("SortPriority", false, SortType.eInteger));
                tempList = Sorting.MultiSort <AniDB_Anime_RelationVM>(tempList, sortCriteria);

                foreach (AniDB_Anime_RelationVM rel in tempList)
                {
                    RelatedAnimeLinks.Add(rel);
                }

                if (RelatedAnimeLinks.Count == 0)
                {
                    DataExists  = false;
                    DataMissing = true;
                }
                else
                {
                    DataExists  = true;
                    DataMissing = false;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #20
0
        public void PopulateAnime(JMMServerBinary.Contract_AniDBAnime animeContract)
        {
            if (animeContract != null)
            {
                AniDB_Anime = new AniDB_AnimeVM(animeContract);
            }

            EvaluateProperties();
        }
コード例 #21
0
        private void CommandBinding_DeleteMALLink(object sender, ExecutedRoutedEventArgs e)
        {
            object obj = e.Parameter;

            if (obj == null)
            {
                return;
            }

            try
            {
                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                if (obj.GetType() == typeof(CrossRef_AniDB_MALVM))
                {
                    this.Cursor = Cursors.Wait;
                    CrossRef_AniDB_MALVM malLink = obj as CrossRef_AniDB_MALVM;

                    // prompt to select details
                    Window wdw = Window.GetWindow(this);

                    string           msg    = string.Format(Properties.Resources.CommunityLinks_DeleteLink);
                    MessageBoxResult result = MessageBox.Show(msg, Properties.Resources.Confirm, MessageBoxButton.YesNo, MessageBoxImage.Warning);

                    if (result == MessageBoxResult.Yes)
                    {
                        this.Cursor = Cursors.Wait;

                        string res = JMMServerVM.Instance.clientBinaryHTTP.RemoveLinkAniDBMAL(anime.AnimeID, malLink.StartEpisodeType, malLink.StartEpisodeNumber);
                        if (res.Length > 0)
                        {
                            MessageBox.Show(res, Properties.Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        else
                        {
                            // update info
                            RefreshData();
                        }

                        this.Cursor = Cursors.Arrow;
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #22
0
        private void CommandBinding_DeleteTvDBLink(object sender, ExecutedRoutedEventArgs e)
        {
            object obj = e.Parameter;

            if (obj == null)
            {
                return;
            }

            try
            {
                if (obj.GetType() == typeof(CrossRef_AniDB_TvDBVMV2))
                {
                    CrossRef_AniDB_TvDBVMV2 link = obj as CrossRef_AniDB_TvDBVMV2;

                    AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                    if (anime == null)
                    {
                        return;
                    }

                    this.Cursor = Cursors.Wait;

                    Window wdw = Window.GetWindow(this);

                    string           msg    = string.Format("Are you sure you want to delete this link?");
                    MessageBoxResult result = MessageBox.Show(msg, "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Warning);

                    if (result == MessageBoxResult.Yes)
                    {
                        this.Cursor = Cursors.Wait;
                        string res = JMMServerVM.Instance.clientBinaryHTTP.RemoveLinkAniDBTvDB(link.AnimeID, link.AniDBStartEpisodeType, link.AniDBStartEpisodeNumber,
                                                                                               link.TvDBID, link.TvDBSeasonNumber, link.TvDBStartEpisodeNumber);
                        if (res.Length > 0)
                        {
                            MessageBox.Show(res, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        else
                        {
                            // update info
                            RefreshData();
                        }

                        this.Cursor = Cursors.Arrow;
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
                this.Cursor = Cursors.Arrow;
            }
        }
コード例 #23
0
        public bool EvaluateAnime(AniDB_AnimeVM anime)
        {
            // make sure the user has not filtered this out
            if (!string.IsNullOrEmpty(JMMServerVM.Instance.CurrentUser.HideCategories))
            {
                return(EvaluateCategoryString(anime.AllCategories));
            }

            return(true);
        }
コード例 #24
0
ファイル: IgnoreAnimeVM.cs プロジェクト: dizzydezz/jmm
		public IgnoreAnimeVM(JMMServerBinary.Contract_IgnoreAnime contract)
		{
			this.IgnoreAnimeID = contract.IgnoreAnimeID;
			this.JMMUserID = contract.JMMUserID;
			this.AnimeID = contract.AnimeID;
			this.IgnoreType = contract.IgnoreType;

			if (contract.Anime != null)
				Anime = new AniDB_AnimeVM(contract.Anime);
		}
コード例 #25
0
        void lbAnime_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            AniDB_AnimeVM anime = lbAnime.SelectedItem as AniDB_AnimeVM;

            if (anime == null)
            {
                return;
            }

            SetSelectedAnime(anime);
        }
コード例 #26
0
        private void RefreshRecords()
        {
            try
            {
                IsDataLoading         = true;
                IsDataFinishedLoading = false;

                VideoQualityRecords.Clear();
                GroupSummaryRecords.Clear();

                TotalFileCount = 0;
                double fileSize = 0;

                AniDB_AnimeVM anime = this.DataContext as AniDB_AnimeVM;
                if (anime == null)
                {
                    return;
                }

                if (IsGroupQualityDetails)
                {
                    List <JMMServerBinary.Contract_GroupVideoQuality> summ = JMMServerVM.Instance.clientBinaryHTTP.GetGroupVideoQualitySummary(anime.AnimeID);
                    foreach (JMMServerBinary.Contract_GroupVideoQuality contract in summ)
                    {
                        GroupVideoQualityVM vidQual = new GroupVideoQualityVM(contract);
                        TotalFileCount += vidQual.FileCountNormal + vidQual.FileCountSpecials;
                        fileSize       += vidQual.TotalFileSize;
                        VideoQualityRecords.Add(vidQual);
                    }
                }

                if (IsGroupSummary)
                {
                    List <JMMServerBinary.Contract_GroupFileSummary> summ = JMMServerVM.Instance.clientBinaryHTTP.GetGroupFileSummary(anime.AnimeID);
                    foreach (JMMServerBinary.Contract_GroupFileSummary contract in summ)
                    {
                        GroupFileSummaryVM vidQual = new GroupFileSummaryVM(contract);
                        TotalFileCount += vidQual.FileCountNormal + vidQual.FileCountSpecials;
                        fileSize       += vidQual.TotalFileSize;
                        GroupSummaryRecords.Add(vidQual);
                    }
                }

                TotalFileSize = Utils.FormatFileSize(fileSize);


                IsDataLoading         = false;
                IsDataFinishedLoading = true;
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #27
0
ファイル: AnimeInfoWindow.cs プロジェクト: ewelike23/jmm
 private void LoadInfo()
 {
     if (MainWindow.GlobalSeriesID > 0)
     {
         serMain = JMMServerHelper.GetSeries(MainWindow.GlobalSeriesID);
         if (serMain != null)
         {
             MainAnime = serMain.AniDB_Anime;
         }
     }
 }
コード例 #28
0
        private bool AnimeSearchFilter(object obj)
        {
            AniDB_AnimeVM anime = obj as AniDB_AnimeVM;

            if (anime == null)
            {
                return(true);
            }

            return(GroupSearchFilterHelper.EvaluateAnimeTextSearch(anime, txtAnimeSearch.Text));
        }
コード例 #29
0
        public Fanart(object fanartObject)
        {
            this.fileName = "";
            List <string> allFanarts = new List <string>();

            // check for a default fanart
            if (fanartObject.GetType() == typeof(AnimeGroupVM))
            {
                AnimeGroupVM grp = fanartObject as AnimeGroupVM;

                if (grp.DefaultAnimeSeriesID.HasValue)
                {
                    AnimeSeriesVM ser = grp.DefaultSeries;
                    if (ser != null)
                    {
                        AniDB_AnimeVM anime = ser.AniDB_Anime;
                        allFanarts.AddRange(GetFanartFilenames(anime));
                    }
                }
                else
                {
                    // get all the series for this group
                    foreach (AnimeSeriesVM ser in grp.AllSeries)
                    {
                        AniDB_AnimeVM anime = ser.AniDB_Anime;
                        allFanarts.AddRange(GetFanartFilenames(anime));
                    }
                }
            }
            else if (fanartObject.GetType() == typeof(AnimeSeriesVM))
            {
                AnimeSeriesVM ser   = fanartObject as AnimeSeriesVM;
                AniDB_AnimeVM anime = ser.AniDB_Anime;
                allFanarts.AddRange(GetFanartFilenames(anime));
            }
            else if (fanartObject.GetType() == typeof(AniDB_AnimeVM))
            {
                AniDB_AnimeVM anime = fanartObject as AniDB_AnimeVM;
                allFanarts.AddRange(GetFanartFilenames(anime));
            }

            string randomFanart = "";

            if (allFanarts.Count > 0)
            {
                randomFanart = allFanarts[fanartRandom.Next(0, allFanarts.Count)];
            }

            if (!String.IsNullOrEmpty(randomFanart))
            {
                fileName = randomFanart;
            }
        }
コード例 #30
0
        public void RefreshMiniCalendar()
        {
            try
            {
                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    MiniCalendar.Clear();
                    ViewMiniCalendar.SortDescriptions.Clear();
                    if (UserSettingsVM.Instance.Dash_MiniCalendarUpcomingOnly)
                    {
                        ViewMiniCalendar.SortDescriptions.Add(new SortDescription("AirDate", ListSortDirection.Ascending));
                    }
                    else
                    {
                        ViewMiniCalendar.SortDescriptions.Add(new SortDescription("AirDate", ListSortDirection.Descending));
                    }
                });

                List <JMMServerBinary.Contract_AniDBAnime> contracts =
                    JMMServerVM.Instance.clientBinaryHTTP.GetMiniCalendar(JMMServerVM.Instance.CurrentUser.JMMUserID.Value, UserSettingsVM.Instance.Dash_MiniCalendarDays);

                System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action) delegate()
                {
                    DateTime yesterday = DateTime.Now.AddDays(-1);
                    foreach (JMMServerBinary.Contract_AniDBAnime contract in contracts)
                    {
                        bool useAnime = true;
                        if (UserSettingsVM.Instance.Dash_MiniCalendarUpcomingOnly && contract.AirDate < yesterday)
                        {
                            useAnime = false;
                        }

                        if (useAnime)
                        {
                            AniDB_AnimeVM anime = new AniDB_AnimeVM(contract);
                            if (JMMServerVM.Instance.CurrentUser.EvaluateAnime(anime))
                            {
                                MiniCalendar.Add(anime);
                            }
                        }
                    }

                    ViewMiniCalendar.Refresh();
                });
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
            finally
            {
            }
        }
コード例 #31
0
ファイル: IgnoreAnimeVM.cs プロジェクト: ewelike23/jmm
        public IgnoreAnimeVM(JMMServerBinary.Contract_IgnoreAnime contract)
        {
            this.IgnoreAnimeID = contract.IgnoreAnimeID;
            this.JMMUserID     = contract.JMMUserID;
            this.AnimeID       = contract.AnimeID;
            this.IgnoreType    = contract.IgnoreType;

            if (contract.Anime != null)
            {
                Anime = new AniDB_AnimeVM(contract.Anime);
            }
        }
コード例 #32
0
        public void Init(AnimeEpisodeVM ep, AniDB_AnimeVM anime)
        {
            AnimeID = anime.AnimeID;
            Anime = anime;
            AnimeEpisode = ep;

            List<int> uids = new List<int>();
            cboSeries.Items.Clear();
            foreach (CrossRef_AniDB_TvDBVMV2 xref in Anime.TvSummary.CrossRefTvDBV2)
            {
                if (!uids.Contains(xref.TvDBID))
                    cboSeries.Items.Add(xref);

                uids.Add(xref.TvDBID);
            }

            cboSeries.SelectionChanged += new SelectionChangedEventHandler(cboSeries_SelectionChanged);

            if (cboSeries.Items.Count > 0)
                cboSeries.SelectedIndex = 0;
        }
コード例 #33
0
ファイル: ImageDownloader.cs プロジェクト: dizzydezz/jmm
		public void DownloadAniDBCover(AniDB_AnimeVM anime, bool forceDownload)
		{
			if (string.IsNullOrEmpty(anime.Picname)) return;

			try
			{
				if (anime.AnimeID == 8580)
					Console.Write("");

				string url = string.Format(Constants.URLS.AniDB_Images, anime.Picname);
				string filename = anime.PosterPathNoDefault;

				ImageDownloadRequest req = new ImageDownloadRequest(ImageEntityType.AniDB_Cover, anime, forceDownload);

				// check if this file has already been downloaded and exists
				if (!req.ForceDownload)
				{
					// check to make sure the file actually exists
					if (!File.Exists(anime.PosterPath))
					{
						this.imagesToDownload.Add(req);
						OnQueueUpdateEvent(new QueueUpdateEventArgs(this.QueueCount));
						return;
					}

					// the file exists so don't download it again
					return;
				}

				this.imagesToDownload.Add(req);
				OnQueueUpdateEvent(new QueueUpdateEventArgs(this.QueueCount));
			}
			catch (Exception ex)
			{
				Utils.ShowErrorMessage(ex);
			}
		}
コード例 #34
0
		public void Populate(JMMServerBinary.Contract_AniDB_AnimeDetailed contract, int animeID)
		{
			AnimeID = animeID;

			AnimeTitles = new List<AnimeTitleVM>();
			AnimeTitlesSummary = new List<AnimeTitleVM>();
			AnimeTitlesMain = new List<AnimeTitleVM>();
			AnimeTitlesOfficial = new List<AnimeTitleVM>();
			AnimeTitlesSynonym = new List<AnimeTitleVM>();
			AnimeTitlesShort = new List<AnimeTitleVM>();

			AnimeCategories = new List<AnimeCategoryVM>();
			AnimeCategoriesSummary = new List<AnimeCategoryVM>();

			AnimeTags = new List<AnimeTagVM>();
			AnimeTagsSummary = new List<AnimeTagVM>();

			try
			{
				AniDB_Anime = new AniDB_AnimeVM(contract.AniDBAnime);
				UserVote = null;
				if (contract.UserVote != null)
					UserVote = new AniDB_VoteVM(contract.UserVote);

				UserHasVoted = UserVote != null;
				UserHasNotVoted = UserVote == null;

				if (UserVote == null)
					UserRating = 0;
				else
					UserRating = UserVote.VoteValue;

				UserRatingFormatted = Utils.FormatAniDBRating((double)UserRating);
				if (UserVote != null)
				{
					UserRatingFormatted += " (";
					if (UserVote.VoteType == 1) UserRatingFormatted += Properties.Resources.VoteTypeAnimePermanent;
					if (UserVote.VoteType == 2) UserRatingFormatted += Properties.Resources.VoteTypeAnimeTemporary;
					UserRatingFormatted += ")";
				}

				this.Stat_AllVideoQuality = contract.Stat_AllVideoQuality;
				this.Stat_AllVideoQuality_Episodes = contract.Stat_AllVideoQuality_Episodes;
				this.Stat_AudioLanguages = contract.Stat_AudioLanguages;
				this.Stat_SubtitleLanguages = contract.Stat_SubtitleLanguages;

				foreach (JMMServerBinary.Contract_AnimeCategory cat in contract.Categories)
				{
					AnimeCategoryVM vcat = new AnimeCategoryVM(cat);
					AnimeCategories.Add(vcat);

				}
				AnimeCategories.Sort();

				int i = 0;
				foreach (AnimeCategoryVM cat in AnimeCategories)
				{
					if (i <= 5)
						AnimeCategoriesSummary.Add(cat);
					else
						break;
					i++;
				}

				foreach (JMMServerBinary.Contract_AnimeTag tag in contract.Tags)
				{
					AnimeTagVM vtag = new AnimeTagVM(tag);
					AnimeTags.Add(vtag);
				}
				AnimeTags.Sort();

				i = 0;
				foreach (AnimeTagVM tag in AnimeTags)
				{
					if (i <= 5)
						AnimeTagsSummary.Add(tag);
					else
						break;
					i++;
				}

				foreach (JMMServerBinary.Contract_AnimeTitle title in contract.AnimeTitles)
				{
					AnimeTitleVM vtitle = new AnimeTitleVM(title);
					AnimeTitles.Add(vtitle);

					if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Main.ToUpper())
						AnimeTitlesMain.Add(vtitle);

					if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Official.ToUpper())
						AnimeTitlesOfficial.Add(vtitle);

					if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Synonym.ToUpper())
						AnimeTitlesSynonym.Add(vtitle);

					if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.ShortName.ToUpper())
						AnimeTitlesShort.Add(vtitle);
				}
				i = 0;
				foreach (AnimeTitleVM title in AnimeTitlesOfficial)
				{
					if (i <= 5)
						AnimeTitlesSummary.Add(title);
					else
						break;
					i++;
				}
			}
			catch (Exception ex)
			{
				Utils.ShowErrorMessage(ex);
			}
		}
コード例 #35
0
        public void Populate(JMMServerBinary.Contract_AniDB_AnimeDetailed contract, int animeID)
        {
            AnimeID = animeID;

            AnimeTitles = new List<AnimeTitleVM>();
            AnimeTitlesSummary = new List<AnimeTitleVM>();
            AnimeTitlesMain = new List<AnimeTitleVM>();
            AnimeTitlesOfficial = new List<AnimeTitleVM>();
            AnimeTitlesSynonym = new List<AnimeTitleVM>();
            AnimeTitlesShort = new List<AnimeTitleVM>();

            AnimeTags = new List<AnimeTagVM>();
            AnimeTagsSummary = new List<AnimeTagVM>();
            CustomTags.Clear();

            try
            {
                AniDB_Anime = new AniDB_AnimeVM(contract.AniDBAnime);
                UserVote = null;
                if (contract.UserVote != null)
                    UserVote = new AniDB_VoteVM(contract.UserVote);

                UserHasVoted = UserVote != null;
                UserHasNotVoted = UserVote == null;

                if (UserVote == null)
                    UserRating = 0;
                else
                    UserRating = UserVote.VoteValue;

                UserRatingFormatted = Utils.FormatAniDBRating((double)UserRating);
                if (UserVote != null)
                {
                    UserRatingFormatted += " (";
                    if (UserVote.VoteType == 1) UserRatingFormatted += Properties.Resources.VoteTypeAnimePermanent;
                    if (UserVote.VoteType == 2) UserRatingFormatted += Properties.Resources.VoteTypeAnimeTemporary;
                    UserRatingFormatted += ")";
                }

                this.Stat_AllVideoQuality = new HashSet<string>(contract.Stat_AllVideoQuality);
                this.Stat_AllVideoQuality_Episodes = new HashSet<string>(contract.Stat_AllVideoQuality_Episodes);
                this.Stat_AudioLanguages = new HashSet<string>(contract.Stat_AudioLanguages);
                this.Stat_SubtitleLanguages = new HashSet<string>(contract.Stat_SubtitleLanguages);

                foreach (JMMServerBinary.Contract_AnimeTag tag in contract.Tags)
                {
                    AnimeTagVM vtag = new AnimeTagVM(tag);
                    AnimeTags.Add(vtag);
                }
                //AnimeTags.Sort();

                List<SortPropOrFieldAndDirection> sortCriteria = new List<SortPropOrFieldAndDirection>();
                sortCriteria.Add(new SortPropOrFieldAndDirection("Weight", true, SortType.eInteger));
                AnimeTags = Sorting.MultiSort<AnimeTagVM>(AnimeTags, sortCriteria);

                int i = 0;
                /*
                foreach (AnimeTagVM tag in AnimeTags)
                {
                    if (i <= 5)
                        AnimeTagsSummary.Add(tag);
                    else
                        break;
                    i++;
                }
                */

                foreach (JMMServerBinary.Contract_CustomTag ctag in contract.CustomTags)
                {
                    CustomTagVM vtag = new CustomTagVM(ctag);
                    CustomTags.Add(vtag);
                }
                CustomTags.Sort();
                ViewCustomTags.Refresh();

                foreach (JMMServerBinary.Contract_AnimeTitle title in contract.AnimeTitles)
                {
                    AnimeTitleVM vtitle = new AnimeTitleVM(title);
                    AnimeTitles.Add(vtitle);

                    if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Main.ToUpper())
                        AnimeTitlesMain.Add(vtitle);

                    if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Official.ToUpper())
                        AnimeTitlesOfficial.Add(vtitle);

                    if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.Synonym.ToUpper())
                        AnimeTitlesSynonym.Add(vtitle);

                    if (title.TitleType.Trim().ToUpper() == Constants.AnimeTitleType.ShortName.ToUpper())
                        AnimeTitlesShort.Add(vtitle);
                }
                i = 0;
                foreach (AnimeTitleVM title in AnimeTitlesOfficial)
                {
                    if (i <= 5)
                        AnimeTitlesSummary.Add(title);
                    else
                        break;
                    i++;
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #36
0
 private void SetSelectedAnime(AniDB_AnimeVM anime)
 {
     if (anime != null)
     {
         IsAnimeNotPopulated = false;
         IsAnimePopulated = true;
         SelectedAnime = anime;
     }
     else
     {
         IsAnimeNotPopulated = true;
         IsAnimePopulated = false;
         SelectedAnime = null;
     }
 }
コード例 #37
0
 public bool EvaluateAnime(AniDB_AnimeVM anime)
 {
     // make sure the user has not filtered this out
     return EvaluateTags(anime.AllTags);
 }
コード例 #38
0
        public void PopulateAnime(JMMServerBinary.Contract_AniDBAnime animeContract)
        {
            if (animeContract != null)
                AniDB_Anime = new AniDB_AnimeVM(animeContract);

            EvaluateProperties();
        }
コード例 #39
0
ファイル: JMMUserVM.cs プロジェクト: dizzydezz/jmm
		public bool EvaluateAnime(AniDB_AnimeVM anime)
		{
			// make sure the user has not filtered this out
			if (!string.IsNullOrEmpty(JMMServerVM.Instance.CurrentUser.HideCategories))
			{
				return EvaluateCategoryString(anime.AllCategories);
			}

			return true;
		}
コード例 #40
0
        public void Init(int animeID, string animeName, EpisodeType aniEpType, int aniEpNumber, string traktID, int traktSeason, int traktEpNumber, string trakSeriesName,
            AniDB_AnimeVM anime, int? crossRef_AniDB_TraktV2ID)
        {
            Anime = anime;
            AnimeID = animeID;
            AnimeName = animeName;
            AnimeEpisodeType = (int)aniEpType;
            AnimeEpisodeNumber = aniEpNumber;
            TraktID = traktID;
            TraktSeason = traktSeason;
            TraktEpisodeNumber = traktEpNumber;
            TraktSeriesName = trakSeriesName;
            CrossRef_AniDB_TraktV2ID = crossRef_AniDB_TraktV2ID;

            AnimeURL = string.Format(Constants.URLS.AniDB_Series, AnimeID);
            TraktURL = string.Format(Constants.URLS.Trakt_Series, TraktID);

            bool hasSpecials = false;
            AniDBEpisodes = new List<AniDB_EpisodeVM>();
            List<JMMClient.JMMServerBinary.Contract_AniDB_Episode> contracts = JMMServerVM.Instance.clientBinaryHTTP.GetAniDBEpisodesForAnime(AnimeID);
            foreach (JMMClient.JMMServerBinary.Contract_AniDB_Episode contract in contracts)
            {
                AniDBEpisodes.Add(new AniDB_EpisodeVM(contract));
                if (contract.EpisodeType == (int)EpisodeType.Special) hasSpecials = true;
            }

            cboEpisodeType.Items.Clear();
            cboEpisodeType.Items.Add("Episodes");
            if (hasSpecials) cboEpisodeType.Items.Add("Specials");

            cboEpisodeType.SelectionChanged += new SelectionChangedEventHandler(cboEpisodeType_SelectionChanged);

            if (aniEpType == EpisodeType.Episode)
                cboEpisodeType.SelectedIndex = 0;
            else
                cboEpisodeType.SelectedIndex = 1;

            // get the seasons

            try
            {
                cboSeasonNumber.Items.Clear();

                List<int> seasons = null;
                if (anime.traktSummary.traktDetails.ContainsKey(traktID))
                {
                    traktDetails = anime.traktSummary.traktDetails[traktID];
                    seasons = anime.traktSummary.traktDetails[traktID].DictTraktSeasons.Keys.ToList();
                }
                else
                {
                    JMMServerVM.Instance.clientBinaryHTTP.UpdateTraktData(traktID);
                    traktDetails = new TraktDetails(traktID);
                    seasons = traktDetails.DictTraktSeasons.Keys.ToList();
                }

                int i = 0;
                int idx = 0;
                foreach (int season in seasons)
                {
                    cboSeasonNumber.Items.Add(season.ToString());
                    if (season == traktSeason) idx = i;
                    i++;
                }

                cboSeasonNumber.SelectionChanged += new SelectionChangedEventHandler(cboSeasonNumber_SelectionChanged);
                cboEpisodeNumber.SelectionChanged += new SelectionChangedEventHandler(cboEpisodeNumber_SelectionChanged);

                cboSeasonNumber.SelectedIndex = idx;

            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }
        }
コード例 #41
0
ファイル: NewSeries.xaml.cs プロジェクト: dizzydezz/jmm
		public void Init(AniDB_AnimeVM anime, string defaultGroupName)
		{
			AnimeSearchVM srch = new AnimeSearchVM();
			srch.AnimeID = anime.AnimeID;
			srch.MainTitle = anime.MainTitle;
			srch.Titles = anime.AllTitles;

			SetSelectedAnime(srch);
			EvaluateRadioButtons();

			rbGroupExisting.IsChecked = true;

			AllGroups = new ObservableCollection<AnimeGroupVM>();
			SearchResults = new ObservableCollection<AnimeSearchVM>();

			try
			{

				ViewGroups = CollectionViewSource.GetDefaultView(AllGroups);
				ViewGroups.SortDescriptions.Add(new SortDescription("SortName", ListSortDirection.Ascending));

				ViewSearchResults = CollectionViewSource.GetDefaultView(SearchResults);
				ViewSearchResults.SortDescriptions.Add(new SortDescription("MainTitle", ListSortDirection.Ascending));

				List<JMMServerBinary.Contract_AnimeGroup> grpsRaw = JMMServerVM.Instance.clientBinaryHTTP.GetAllGroups(JMMServerVM.Instance.CurrentUser.JMMUserID.Value);

				foreach (JMMServerBinary.Contract_AnimeGroup grp in grpsRaw)
				{
					AnimeGroupVM grpNew = new AnimeGroupVM(grp);
					AllGroups.Add(grpNew);
				}

				ViewGroups.Filter = GroupSearchFilter;

				txtGroupName.Text = defaultGroupName;
				txtGroupSortName.Text = defaultGroupName;

			}
			catch (Exception ex)
			{
				Utils.ShowErrorMessage(ex);
			}
		}
コード例 #42
0
ファイル: BookmarkedAnimeVM.cs プロジェクト: dizzydezz/jmm
		public void Populate(JMMServerBinary.Contract_BookmarkedAnime contract)
		{
			this.BookmarkedAnimeID = contract.BookmarkedAnimeID;
			this.AnimeID = contract.AnimeID;
			this.Priority = contract.Priority;
			this.Notes = contract.Notes;
			this.Downloading = contract.Downloading;

			if (contract.Anime != null)
				AniDB_Anime = new AniDB_AnimeVM(contract.Anime);
		}
コード例 #43
0
ファイル: SearchTvDBForm.xaml.cs プロジェクト: dizzydezz/jmm
		public void Init(int animeID, string animeName, string searchCriteria, int? existingTVDBID, AniDB_AnimeVM anime)
		{
			Anime = anime;
			AnimeID = animeID;
			AnimeName = animeName;
			ExistingTVDBID = existingTVDBID;
			txtSearch.Text = searchCriteria;
		}