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; }
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); }
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); }
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); }
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); }
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)); }
//曲线删除 /// <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--; }
/// <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); }
//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)); }
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(); }