コード例 #1
0
        private void UpdateGUI(SeriesTag tag = null)
        {
            ClearGUI();
            if (ReferenceEquals(tag, null))
            {
                return;
            }

            // Recommended for identification
            seriesTitle.Value      = tag.SeriesName;
            seriesIMDB.Value       = tag.IMDB_ID;
            seriesTVDB.Value       = tag.TVDB_ID;
            seasonIndex.Value      = tag.SeasonIndex;
            episodeIndexList.Value = tag.EpisodeIndexList;
            episodeAired.Value     = tag.EpisodeFirstAired;

            // additional series infos
            seriesFirstAired.Value = tag.SeriesFirstAired;
            seriesSummary.Value    = tag.SeriesOverview;
            seriesGenre.Value      = tag.SeriesGenreList;
            seriesActors.Value     = tag.SeriesActors;
            Certification.Value    = tag.Certification;
            Network.Value          = tag.Network;
            seriesKeywords.Value   = tag.SeriesKeywords;
            // additional episode infos
            episodeIMDB.Value     = tag.EpisodeIMDB_ID;
            episodeTitle.Value    = tag.EpisodeTitle;
            episodeSummary.Value  = tag.EpisodeOverview;
            GuestStars.Value      = tag.GuestStars;
            Directors.Value       = tag.Directors;
            Writers.Value         = tag.Writers;
            episodeKeywords.Value = tag.EpisodeKeywords;
        }
コード例 #2
0
        private SeriesTag CopySeriesInfos(SeriesTag seriesTag, TvdbSeries series, int seasonIndex, int episodeIndex)
        {
            seriesTag.SeriesName = series.SeriesName;
            seriesTag.IMDB_ID    = series.ImdbId;
            seriesTag.TVDB_ID    = series.Id.ToString();
            // Do not overwrite the index
            //seriesTag.SeasonIndex
            //seriesTag.EpisodeIndexList

            seriesTag.Network          = series.Network;
            seriesTag.Certification    = series.ContentRating;
            seriesTag.SeriesFirstAired = series.FirstAired.ToString("yyyy-MM-dd");
            seriesTag.SeriesOverview   = series.Overview;
            seriesTag.SeriesGenreList  = series.Genre.AsReadOnly();
            seriesTag.SeriesActors     = series.Actors.AsReadOnly();

            TvdbEpisode ep =
                series.Episodes.FirstOrDefault(e => e.SeasonNumber == seasonIndex && e.EpisodeNumber == episodeIndex);

            if (ep == null)
            {
                return(seriesTag);
            }

            seriesTag.EpisodeFirstAired = ep.FirstAired.ToString("yyyy-MM-dd");
            seriesTag.EpisodeTitle      = ep.EpisodeName;
            seriesTag.EpisodeIMDB_ID    = ep.ImdbId;
            seriesTag.EpisodeOverview   = ep.Overview;
            seriesTag.GuestStars        = ep.GuestStars.AsReadOnly();
            seriesTag.Directors         = ep.Directors.AsReadOnly();
            seriesTag.Writers           = ep.Writer.AsReadOnly();

            return(seriesTag);
        }
コード例 #3
0
        private SeriesTag UpdateTagFromGUI(SeriesTag tag)
        {
            // Recommended for identification
            tag.SeriesName        = seriesTitle.Value;
            tag.IMDB_ID           = seriesIMDB.Value;
            tag.TVDB_ID           = seriesTVDB.Value;
            tag.SeasonIndex       = seasonIndex.Value;
            tag.EpisodeIndexList  = episodeIndexList.Value;
            tag.EpisodeFirstAired = episodeAired.Value;

            // additional series infos
            tag.SeriesFirstAired = seriesFirstAired.Value;
            tag.SeriesOverview   = seriesSummary.Value;
            tag.SeriesGenreList  = seriesGenre.Value;
            tag.SeriesActors     = seriesActors.Value;
            tag.Certification    = Certification.Value;
            tag.Network          = Network.Value;
            tag.SeriesKeywords   = seriesKeywords.Value;
            // additional episode infos
            tag.EpisodeIMDB_ID  = episodeIMDB.Value;
            tag.EpisodeTitle    = episodeTitle.Value;
            tag.EpisodeOverview = episodeSummary.Value;
            tag.GuestStars      = GuestStars.Value;
            tag.Directors       = Directors.Value;
            tag.Writers         = Writers.Value;
            tag.EpisodeKeywords = episodeKeywords.Value;

            return(tag);
        }
コード例 #4
0
        private static SeriesTag CopyEpisodeToTag(SeriesTag tag, Episode ep)
        {
            tag.SeriesName        = ep.SeriesInfo.Title;
            tag.IMDB_ID           = ep.SeriesInfo.IMDB_ID;
            tag.TVDB_ID           = ep.SeriesInfo.ID.ToString();
            tag.SeasonIndex       = ep.SeasonIndex.ToString();
            tag.EpisodeIndexList  = ep.EpisodeIndexList.AsReadOnly();
            tag.EpisodeFirstAired = ep.FirstAired;

            // additional series tags
            tag.SeriesFirstAired = ep.SeriesInfo.FirstAired;
            tag.Network          = ep.SeriesInfo.Network;
            tag.Certification    = ep.SeriesInfo.Certification;
            tag.SeriesOverview   = ep.SeriesInfo.Summary;

            tag.SeriesGenreList = ep.SeriesInfo.Genre.AsReadOnly();
            tag.SeriesActors    = ep.SeriesInfo.Actors.AsReadOnly();

            // additional episode tags
            tag.EpisodeTitle    = ep.EpisodeName;
            tag.EpisodeIMDB_ID  = ep.IMDB_ID;
            tag.EpisodeOverview = ep.Summary;

            tag.GuestStars = ep.GuestStars.AsReadOnly();
            tag.Directors  = ep.Directors.AsReadOnly();
            tag.Writers    = ep.Writers.AsReadOnly();

            return(tag);
        }
コード例 #5
0
    public async Task SeriesTagTest()
    {
        SeriesTag data = (await FredClient.GetSeriesTags("STLFSI")).FirstOrDefault();

        Assert.IsNotNull(data);
        Assert.IsFalse(String.IsNullOrEmpty(data.Symbol));
        Assert.IsFalse(String.IsNullOrEmpty(data.Name));
        Assert.IsFalse(String.IsNullOrEmpty(data.GroupID));
        Assert.IsFalse(String.IsNullOrEmpty(data.Notes));
        Assert.Greater(data.Popularity, 0);
    }
コード例 #6
0
        public SeriesTag UpdateTags(SeriesTag seriesTag)
        {
            if (TVDB == null)
            {
                TVDB = new TvdbHandler(API_KEY);
            }

            string imdb = seriesTag.IMDB_ID;
            string name = seriesTag.SeriesName;

            if (string.IsNullOrEmpty(imdb) && string.IsNullOrEmpty(name))
            {
                MessageBox.Show("TvDb lookup needs atleast IMDB id or series name.");
                return(seriesTag);
            }

            int iSeason;
            int iEpisode;

            if (!int.TryParse(seriesTag.SeasonIndex, out iSeason) || !int.TryParse(seriesTag.EpisodeIndexList.FirstOrDefault(), out iEpisode))
            {
                MessageBox.Show("TvDb lookup needs season & episode index.");
                return(seriesTag);
            }

            TvdbSearchResult searchResult;

            if (!string.IsNullOrEmpty(imdb))
            {
                searchResult = SearchSeries(imdb, true);
            }
            else
            {
                searchResult = SearchSeries(name);
            }

            if (searchResult == null)
            {
                return(seriesTag);
            }

            TvdbSeries series = TVDB.GetFullSeries(searchResult.Id, App.Config.SelectedTvDbLanguage, false);

            if (series == null)
            {
                return(seriesTag);
            }

            return(CopySeriesInfos(seriesTag, series, iSeason, iEpisode));
        }
コード例 #7
0
            //曲线删除
            /// <summary>
            /// 移除指定的数据列及其依附的对象
            /// </summary>
            /// <param name="DeletingSeriesIndex">要进行删除的数据列在集合中的索引下标值,注意:第一条曲线的下标值为1,而不是0。</param>
            /// <remarks>为了保存模板中的数据系列的格式,这里的删除并不是将数据列进行了真正的删除,而是将数据列的数据设置为空。
            /// 这样的话,后期的数据曲线应该加载在最靠前而且没有数据的数据列中。</remarks>
            public virtual void DeleteSeries(int DeletingSeriesIndex)
            {
                SeriesTag with_1 = F_DicSeries_Tag[DeletingSeriesIndex];

                Excel.Series with_2 = with_1.series;
                with_2.XValues = new object[] { null }; // in VB: with_2.XValues = {Nothing}
                //这里不能用.XValues = Nothing
                with_2.Values = new object[] { null };
                //.Name = ""

                this.F_DicSeries_Tag.Remove(DeletingSeriesIndex);
                this.F_List_HasCurve[DeletingSeriesIndex - cst_LboundOfSeriesInCollection] = false;

                // ----------------------------------- 对图例的显示进行操作
                LegendRefresh(F_List_HasCurve);

                this.F_CurvesCount--;
            }
コード例 #8
0
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="DataSheet">图表对应的数据工作表</param>
            /// <param name="DrawingChart">Excel图形所在的Chart对象</param>
            /// <param name="ParentApp">此图表所在的Excel类的实例对象</param>
            /// <param name="type">此图表所属的类型,由枚举drawingtype提供</param>
            /// <param name="CanRoll">是图表是否可以滚动,即是动态图还是静态图</param>
            /// <param name="DateSpan">此图表的TimeSpan跨度</param>
            /// <remarks></remarks>
            public clsDrawing_Mnt_RollingBase(Excel.Worksheet DataSheet, Excel.Chart
                                              DrawingChart, Cls_ExcelForMonitorDrawing ParentApp,
                                              DrawingType type, bool CanRoll, Excel.TextFrame2 Info,
                                              MonitorInfo DrawingTag, MntType MonitorType,
                                              DateSpan DateSpan, SeriesTag
                                              theFirstSeriesTag) : base(DataSheet, DrawingChart, ParentApp, type, CanRoll, Info, DrawingTag, MonitorType)
            {
                // VBConversions Note: Non-static class variable initialization is below.  Class variables cannot be initially assigned non-static values in C#.
                F_Chart = this.Chart;

                //
                this.DateSpan = DateSpan;
                //刷新滚动窗口的列表框的界面显示
                APPLICATION_MAINFORM.MainForm.Form_Rolling.OnRollingDrawingsRefreshed();

                //启用主界面的程序滚动按钮
                APPLICATION_MAINFORM.MainForm.MainUI_RollingObjectCreated();

                //--------------------------- 设置与数据系列的曲线相关的属性值

                clsDrawing_Mnt_RollingBase with_1 = this;

                //以数据列中第一个元素作为进行滚动的那个series
                with_1.MovingSeries = theFirstSeriesTag.series;
                // ----- 集合数据的记录
                with_1.F_DicSeries_Tag.Add(cst_LboundOfSeriesInCollection, theFirstSeriesTag);
                //刚开始时,图表中只有一条数据曲线
                with_1.F_CurvesCount = 1;
                //
                this.F_List_HasCurve.Clear();
                this.F_List_HasCurve.Add(true); //第一个数据列是有曲线的,所以将其值设置为true
                Excel.SeriesCollection seriesColl = Chart.SeriesCollection() as Excel.SeriesCollection;
                for (var i = 1; i <= seriesColl.Count - 1; i++)
                {
                    this.F_List_HasCurve.Add(false);
                }
                // -----对图例进行更新---------
                LegendRefresh(F_List_HasCurve);
            }
コード例 #9
0
        //public Dictionary<string,Episode> GetAllEpisodes()
        //{
        //  string db = DatabasePath;
        //  OpenConnection(db);

        //  Dictionary<string,Episode> episodes = new Dictionary<string, Episode>();
        //  using (var command = new SQLiteCommand(connection))
        //  {
        //    command.CommandText = "SELECT * FROM local_episodes";

        //    using (SQLiteDataReader reader = command.ExecuteReader())
        //    {
        //      while (reader.Read())
        //      {
        //        Episode ep = FillLocalEpisodeInfo(new Episode(), reader);
        //        episodes.Add(ep.Filename,ep);
        //      }
        //      reader.Close();
        //    }
        //  }

        //  foreach (Episode episode in episodes.Values)
        //  {

        //  }

        //  CloseConnection();
        //  return episodes;
        //}

        //public Dictionary<int, Series> GetAllSeries()
        //{
        //  string db = DatabasePath;
        //  OpenConnection(db);

        //  Dictionary<int, Series> series = new Dictionary<int, Series>();
        //  using (var command = new SQLiteCommand(connection))
        //  {
        //    command.CommandText = "SELECT * FROM online_series";

        //    using (SQLiteDataReader reader = command.ExecuteReader())
        //    {
        //      while (reader.Read())
        //      {
        //        Series s = FillSeriesInfo(new Series(), reader);
        //        series.Add(s.ID, s);
        //      }
        //      reader.Close();
        //    }
        //  }

        //  CloseConnection();
        //  return series;
        //}

        public SeriesTag UpdateTags(SeriesTag seriesTag, string filename)
        {
            Episode ep = null;

            try
            {
                MPTVSeriesImporter i = new MPTVSeriesImporter();
                ep = i.GetEpisodeInfo(filename);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(seriesTag);
            }

            if (ep == null)
            {
                return(seriesTag);
            }

            return(CopyEpisodeToTag(seriesTag, ep));
        }
コード例 #10
0
            private Excel.Chart F_Chart; // VBConversions Note: Initial value cannot be assigned here since it is non-static.  Assignment has been moved to the class constructors.
            /// <summary>
            /// 当在数据列上双击时执行相应的操作
            /// </summary>
            /// <param name="ElementID">在图表上双击击中的对象</param>
            /// <param name="Arg1">所选数据系列在集合中的索引下标值,注意,第一第曲线的下标值为1,而不是0。</param>
            /// <param name="Arg2"></param>
            /// <param name="Cancel"></param>
            /// <remarks>要么将其删除,要么将其锁定在图表中,要么什么都不做</remarks>
            private void SeriesChange(int ElementID, int Arg1, int Arg2, ref
                                      bool Cancel)
            {
                if (ElementID == (int)Excel.XlChartItem.xlSeries)
                {
                    Debug.Print("当前选择的曲线下标值为: " + System.Convert.ToString(Arg1));
                    //所选数据系列在集合中的索引下标值,注意,第一第曲线的下标值为1,而不是0
                    int seriesIndex = Arg1;
                    //所选的数据系列
                    Excel.Series           seri;
                    Excel.SeriesCollection seriColl = this.Chart.SeriesCollection() as Excel.SeriesCollection;
                    seri = seriColl.Item(seriesIndex);


                    // -------- 打开处理对话框,并根据返回的不同结果来执行不同的操作
                    DiaFrm_LockDelete diafrm = new DiaFrm_LockDelete();
                    //判断要删除的曲线是否为当前滚动的曲线,有如下两种判断方法
                    bool blnDeletingTheRollingCurve = false;
                    blnDeletingTheRollingCurve = seriesIndex == cst_LboundOfSeriesInCollection;
                    //blnDeletingTheRollingCurve = (seri.Name = F_movingSeries.Name)
                    if (F_CurvesCount == 1 || blnDeletingTheRollingCurve)
                    {
                        //如果图表中只有一条曲线,或者点击的正好是要正在进行滚动的曲线,那么这条曲线不能被删除
                        diafrm.btn2.Enabled = false;
                        diafrm.AcceptButton = diafrm.btn1;
                    }
                    else //只能进行删除
                    {
                        diafrm.btn1.Enabled = false;
                        diafrm.AcceptButton = diafrm.btn2;
                    }

                    //在界面上取消图表对象的选择
                    this.Sheet_Drawing.Range["A1"].Activate();
                    this.Application.ScreenUpdating = false;

                    //---------------------------------- 开始执行数据系列的添加或删除
                    //此数据列对应的施工日期
                    DateTime  t_date = default(DateTime);
                    SeriesTag SrTag  = default(SeriesTag);
                    try
                    {
                        SrTag  = this.F_DicSeries_Tag[seriesIndex];
                        t_date = SrTag.ConstructionDate;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("提取字典中的元素出错,字典中没有此元素。" + "\r\n" + ex.Message + "\r\n" + "报错位置:" + ex.TargetSite.Name,
                                        "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    //----------------------------------------
                    M_DialogResult result    = default(M_DialogResult);
                    string         strPrompt = "The date value for the selected series is:" + "\r\n" +
                                               t_date.ToString(AMEApplication.DateFormat) + "\r\n" +
                                               "Choose to Lock or Delete this series...";
                    result = diafrm.ShowDialog(strPrompt, "Lock or Delete Series");
                    //----------------------------------------
                    switch (result)
                    {
                    case M_DialogResult.Delete:
                        //删除数据系列
                        try
                        {
                            DeleteSeries(seriesIndex);
                        }
                        catch (Exception ex)
                        {
                            Debug.Print("删除数据系列出错。" + "\r\n" + ex.Message + "\r\n" + "报错位置:" + ex.TargetSite.Name);
                        }
                        break;

                    case M_DialogResult.Lock:
                        //添加数据系列
                        try
                        {
                            CopySeries(seriesIndex);
                        }
                        catch (Exception ex)
                        {
                            Debug.Print(ex.Message);
                            MessageBox.Show("添加数据系列出错。" + "\r\n" + ex.Message + "\r\n" + "报错位置:" + ex.TargetSite.Name,
                                            "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        break;
                    }
                    this.Application.ScreenUpdating = true;
                }
                //覆盖原来的双击操作
                Cancel = true;
                this.Sheet_Drawing.Range["A1"].Activate();
            }