本文整理汇总了C#中System.Windows.Forms.ContextMenu.Add方法的典型用法代码示例。如果您正苦于以下问题:C# ContextMenu.Add方法的具体用法?C# ContextMenu.Add怎么用?C# ContextMenu.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Forms.ContextMenu
的用法示例。
在下文中一共展示了ContextMenu.Add方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShowDisplayOptionsMenu
private ContextMenuAction ShowDisplayOptionsMenu(string previousMenu)
{
ContextMenu cmenu = new ContextMenu(Translation.DisplayOptions, previousMenu);
cmenu.Add(Translation.ChangeLayout, () => ShowLayoutMenu(Translation.DisplayOptions));
return cmenu.Show();
}
示例2: ShowContextMenuSeriesEdit
private ContextMenuAction ShowContextMenuSeriesEdit(string previousMenu)
{
GUIListItem currentitem = m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
AnimeSeriesVM ser = currentitem.TVTag as AnimeSeriesVM;
if (ser == null)
return ContextMenuAction.Exit;
string currentMenu = ser.SeriesName + " - " + Translation.Edit;
ContextMenu cmenu = new ContextMenu(currentMenu, previousmenu: previousMenu);
// ReSharper disable ImplicitlyCapturedClosure
cmenu.Add(Translation.SetDefaultAudioLanguage, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
string language = ser.DefaultAudioLanguage;
if (Utils.DialogLanguage(ref language, false))
{
ser.DefaultAudioLanguage = language;
ser.Save();
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
// ReSharper disable ImplicitlyCapturedClosure
cmenu.Add(Translation.SetDefaultSubtitleLanguage, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
string language = ser.DefaultSubtitleLanguage;
if (Utils.DialogLanguage(ref language, true))
{
ser.DefaultSubtitleLanguage = language;
ser.Save();
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
cmenu.Add(Translation.DeleteThisSeriesEpisodes, () =>
{
if (ser.AnimeSeriesID.HasValue)
{
if (Utils.DialogConfirm(Translation.AreYouSure))
{
JMMServerVM.Instance.clientBinaryHTTP.DeleteAnimeSeries(ser.AnimeSeriesID.Value, false, false);
LoadFacade();
return ContextMenuAction.Exit;
}
}
return ContextMenuAction.Continue;
});
return cmenu.Show();
}
示例3: ShowContextMenuTVDB
private ContextMenuAction ShowContextMenuTVDB(AnimeSeriesVM ser, string previousMenu)
{
GUIListItem currentitem = m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
int tvdbid;
int season;
string displayName;
if (ser.CrossRef_AniDB_TvDBV2.Count > 0 && ser.TvDBSeriesV2.Count > 0 && ser.AniDB_Anime.AniDB_AnimeCrossRefs != null && ser.AniDB_Anime.AniDB_AnimeCrossRefs.TvDBCrossRefExists)
{
displayName = ser.AniDB_Anime.AniDB_AnimeCrossRefs.TvDBSeries[0].SeriesName;
tvdbid = ser.CrossRef_AniDB_TvDBV2[0].TvDBID;
season = ser.CrossRef_AniDB_TvDBV2[0].TvDBSeasonNumber;
}
else
return ContextMenuAction.PreviousMenu;
ContextMenu cmenu = new ContextMenu(displayName, previousmenu: previousMenu);
// ReSharper disable ImplicitlyCapturedClosure
cmenu.AddAction(Translation.RemoveTVDBAssociation, () => JMMServerVM.Instance.clientBinaryHTTP.RemoveLinkAniDBTvDBForAnime(ser.AniDB_Anime.AnimeID));
// ReSharper restore ImplicitlyCapturedClosure
cmenu.Add(string.Format(Translation.SwitchSeason, season.ToString(Globals.Culture)), () =>
{
if (ser.CrossRef_AniDB_TvDBV2.Count < 2)
{
return ShowSeasonSelectionMenuTvDB(ser, ser.AniDB_Anime.AnimeID, tvdbid, displayName);
}
Utils.DialogMsg(Translation.Error, Translation.CannotEditTvDBLink);
return ContextMenuAction.Continue;
});
return cmenu.Show();
}
示例4: ShowContextMenuGroupEdit
private ContextMenuAction ShowContextMenuGroupEdit(string previousMenu)
{
GUIListItem currentitem = m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
AnimeGroupVM grp = currentitem.TVTag as AnimeGroupVM;
if (grp == null)
return ContextMenuAction.Exit;
string currentMenu = grp.GroupName + " - " + Translation.Edit;
ContextMenu cmenu = new ContextMenu(currentMenu, previousmenu: previousMenu);
cmenu.Add(Translation.RenameGroup, () =>
{
string name = grp.GroupName;
if (Utils.DialogText(ref name, GetID) && name != string.Empty)
{
if (name != grp.GroupName)
{
grp.GroupName = name;
grp.SortName = Utils.GetSortName(name);
grp.Save();
LoadFacade();
}
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
cmenu.Add(Translation.ChangeSortName, () =>
{
string sortName = grp.SortName;
if (Utils.DialogText(ref sortName, GetID))
{
grp.SortName = sortName;
grp.Save();
LoadFacade();
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
List<AnimeSeriesVM> allSeries = grp.AllSeries;
AnimeSeriesVM equalSeries = null;
if (allSeries.Count == 1)
equalSeries = allSeries[0];
if (equalSeries != null)
{
cmenu.Add(Translation.SetDefaultAudioLanguage, () =>
{
String language = equalSeries.DefaultAudioLanguage;
if (Utils.DialogLanguage(ref language, false))
{
equalSeries.DefaultAudioLanguage = language;
equalSeries.Save();
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
cmenu.Add(Translation.SetDefaultSubtitleLanguage, () =>
{
String language = equalSeries.DefaultSubtitleLanguage;
if (Utils.DialogLanguage(ref language, true))
{
equalSeries.DefaultSubtitleLanguage = language;
equalSeries.Save();
return ContextMenuAction.Exit;
}
return ContextMenuAction.Continue;
});
}
if (grp.DefaultAnimeSeriesID.HasValue)
{
// ReSharper disable ImplicitlyCapturedClosure
cmenu.Add(Translation.RemoveDefaultSeries, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
JMMServerVM.Instance.clientBinaryHTTP.RemoveDefaultSeriesForGroup(grp.AnimeGroupID);
grp.DefaultAnimeSeriesID = null;
return ContextMenuAction.Continue;
});
}
if (allSeries.Count > 1)
{
// ReSharper disable ImplicitlyCapturedClosure
cmenu.Add(Translation.SetDefaultSeries, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
AnimeSeriesVM ser = null;
if (Utils.DialogSelectSeries(ref ser, allSeries))
{
if (ser.AnimeSeriesID.HasValue)
{
grp.DefaultAnimeSeriesID = ser.AnimeSeriesID;
JMMServerVM.Instance.clientBinaryHTTP.SetDefaultSeriesForGroup(grp.AnimeGroupID, ser.AnimeSeriesID.Value);
}
}
return ContextMenuAction.Continue;
});
}
// ReSharper disable ImplicitlyCapturedClosure
cmenu.Add(Translation.DeleteThisGroupSeriesEpisodes, () =>
//.........这里部分代码省略.........
示例5: ShowContextMenuSeries
private ContextMenuAction ShowContextMenuSeries(string previousMenu)
{
GUIListItem currentitem = this.m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
AnimeSeriesVM ser = currentitem.TVTag as AnimeSeriesVM;
if (ser == null)
return ContextMenuAction.Exit;
ContextMenu cmenu = new ContextMenu(ser.SeriesName, previousmenu: previousMenu);
cmenu.AddAction(Translation.SeriesInformation, () => ShowAnimeInfoWindow(ser));
cmenu.AddAction(Translation.MarkAllAsWatched, () =>
{
if (ser.AnimeSeriesID.HasValue)
{
JMMServerHelper.SetWatchedStatusOnSeries(true, Int32.MaxValue, ser.AnimeSeriesID.Value);
Contract_AnimeSeries contract = JMMServerVM.Instance.clientBinaryHTTP.GetSeries(ser.AnimeSeriesID.Value, JMMServerVM.Instance.CurrentUser.JMMUserID);
if (contract != null)
{
AnimeSeriesVM serTemp = new AnimeSeriesVM(contract);
if(serTemp != null)
Utils.PromptToRateSeriesOnCompletion(serTemp);
}
LoadFacade();
}
});
cmenu.AddAction(Translation.MarkAllAsUnwatched, () =>
{
if (ser.AnimeSeriesID.HasValue)
{
JMMServerHelper.SetWatchedStatusOnSeries(false, Int32.MaxValue, ser.AnimeSeriesID.Value);
LoadFacade();
}
});
cmenu.AddAction(Translation.RateSeries, () =>
{
if (ser == null)
{
BaseConfig.MyAnimeLog.Write("Error during rating = series was null!");
}
if (ser.AnimeSeriesID.HasValue)
{
Utils.PromptToRateSeriesMaually(ser);
}
});
cmenu.Add(Translation.Databases + " ...", () => ShowContextMenuDatabases(ser, ser.SeriesName));
cmenu.Add(Translation.Images + " ...", () => ShowContextMenuImages(ser.SeriesName));
cmenu.Add(Translation.EditSeries + " ...", () => ShowContextMenuSeriesEdit(ser.SeriesName));
// ReSharper disable ImplicitlyCapturedClosure
cmenu.AddAction(Translation.RandomEpisode, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
RandomWindow_CurrentEpisode = null;
RandomWindow_CurrentSeries = null;
RandomWindow_LevelObject = ser;
RandomWindow_RandomLevel = RandomSeriesEpisodeLevel.Series;
RandomWindow_RandomType = RandomObjectType.Episode;
GUIWindowManager.ActivateWindow(Constants.WindowIDs.RANDOM);
});
cmenu.Add(Translation.PostProcessing + " ...", () => ShowContextMenuPostProcessing(ser.SeriesName));
return cmenu.Show();
}
示例6: ShowContextMenuEpisode
private ContextMenuAction ShowContextMenuEpisode(string previousMenu)
{
GUIListItem currentitem = this.m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_MENU);
if (dlg == null)
return ContextMenuAction.Exit;
AnimeEpisodeVM episode = currentitem.TVTag as AnimeEpisodeVM;
if (episode == null)
return ContextMenuAction.Exit;
bool isWatched = (episode.IsWatched == 1);
ContextMenu cmenu = new ContextMenu(episode.EpisodeNumberAndName, previousmenu: previousMenu);
cmenu.AddAction(isWatched ? Translation.MarkAsUnwatched : Translation.MarkAsWatched, () =>
{
BaseConfig.MyAnimeLog.Write("Toggle watched status: {0} - {1}", isWatched, episode);
episode.ToggleWatchedStatus(!isWatched);
LoadFacade();
});
AnimeSeriesVM ser = GetTopSerie();
AnimeEpisodeTypeVM e = GetTopEpType();
enEpisodeType ept = enEpisodeType.Episode;
if (e != null)
ept = e.EpisodeType;
cmenu.AddAction(Translation.MarkAllAsWatched, () =>
{
if (ser == null)
{
// If we can't get a top series we fallback on what the episode tells us
BaseConfig.MyAnimeLog.Write("Error during watch state change - series was null!");
ser = episode.AnimeSeries;
}
if (ser?.AnimeSeriesID != null)
{
BaseConfig.MyAnimeLog.Write("Marking series as watched: ID -> {0} - Name -> {1}", ser.AnimeSeriesID,
ser.SeriesName);
JMMServerVM.Instance.clientBinaryHTTP.SetWatchedStatusOnSeries(ser.AnimeSeriesID.Value, true,
Int32.MaxValue, (int) ept, JMMServerVM.Instance.CurrentUser.JMMUserID);
if (BaseConfig.Settings.DisplayRatingDialogOnCompletion)
{
Contract_AnimeSeries contract =
JMMServerVM.Instance.clientBinaryHTTP.GetSeries(ser.AnimeSeriesID.Value,
JMMServerVM.Instance.CurrentUser.JMMUserID);
if (contract != null)
{
ser = new AnimeSeriesVM(contract);
if (ser?.AnimeSeriesID != null)
ReplaceSerie(ser.AnimeSeriesID.Value, ser);
Utils.PromptToRateSeriesOnCompletion(ser);
}
}
LoadFacade();
}
});
cmenu.AddAction(Translation.MarkAllAsUnwatched, () =>
{
if (ser == null)
{
// If we can't get a top series we fallback on what the episode tells us
BaseConfig.MyAnimeLog.Write("Error during watch state change - series was null!");
ser = episode.AnimeSeries;
}
if (ser?.AnimeSeriesID != null)
{
BaseConfig.MyAnimeLog.Write("Marking series as un-watched: ID -> {0} - Name -> {1}", ser.AnimeSeriesID,
ser.SeriesName);
JMMServerVM.Instance.clientBinaryHTTP.SetWatchedStatusOnSeries(ser.AnimeSeriesID.Value, false,
Int32.MaxValue, (int) ept, JMMServerVM.Instance.CurrentUser.JMMUserID);
LoadFacade();
}
});
cmenu.AddAction(Translation.MarkAllPreviousAsWatched, () =>
{
if (ser == null)
{
// If we can't get a top series we fallback on what the episode tells us
BaseConfig.MyAnimeLog.Write("Error during watch state change - series was null!");
ser = episode.AnimeSeries;
}
if (ser?.AnimeSeriesID != null)
{
JMMServerVM.Instance.clientBinaryHTTP.SetWatchedStatusOnSeries(ser.AnimeSeriesID.Value, false,
episode.EpisodeNumber - 1, (int)ept, JMMServerVM.Instance.CurrentUser.JMMUserID);
Contract_AnimeSeries contract =
JMMServerVM.Instance.clientBinaryHTTP.GetSeries(ser.AnimeSeriesID.Value,
JMMServerVM.Instance.CurrentUser.JMMUserID);
if (contract != null)
{
ser = new AnimeSeriesVM(contract);
if (ser?.AnimeSeriesID != null)
//.........这里部分代码省略.........
示例7: ShowContextMenuGroup
private ContextMenuAction ShowContextMenuGroup(string previousMenu)
{
GUIListItem currentitem = m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
AnimeGroupVM grp = currentitem.TVTag as AnimeGroupVM;
if (grp == null)
return ContextMenuAction.Exit;
ContextMenu cmenu = new ContextMenu(grp.GroupName, previousmenu: previousMenu);
if (grp.SubGroups.Count == 0)
{
cmenu.AddAction(grp.IsFave == 1 ? Translation.RemoveFromFavorites : Translation.AddToFavorites, () =>
{
grp.IsFave = grp.IsFave == 1 ? 0 : 1;
grp.Save();
EvaluateVisibility();
});
}
cmenu.AddAction(Translation.MarkAllAsWatched, () =>
{
foreach (AnimeSeriesVM ser in grp.AllSeries)
{
if (ser.AnimeSeriesID.HasValue)
JMMServerHelper.SetWatchedStatusOnSeries(true, Int32.MaxValue, ser.AnimeSeriesID.Value);
}
LoadFacade();
});
cmenu.AddAction(Translation.MarkAllAsUnwatched, () =>
{
foreach (AnimeSeriesVM ser in grp.AllSeries)
{
if (ser.AnimeSeriesID.HasValue)
JMMServerHelper.SetWatchedStatusOnSeries(false, Int32.MaxValue, ser.AnimeSeriesID.Value);
}
LoadFacade();
});
if (grp.AllSeries.Count == 1)
{
cmenu.AddAction(Translation.SeriesInformation, () => ShowAnimeInfoWindow(grp.AllSeries[0]));
}
History h = GetCurrent();
if (h.Listing is GroupFilterVM)
{
GroupFilterVM gf = (GroupFilterVM) h.Listing;
cmenu.Add(Translation.QuickSort + " ...", () =>
{
string sortType = "";
GroupFilterSortDirection sortDirection = GroupFilterSortDirection.Asc;
if (gf.GroupFilterID.HasValue)
{
if (GroupFilterQuickSorts.ContainsKey(gf.GroupFilterID.Value))
sortDirection = GroupFilterQuickSorts[gf.GroupFilterID.Value].SortDirection;
if (!Utils.DialogSelectGFQuickSort(ref sortType, ref sortDirection, gf.GroupFilterName))
{
if (!GroupFilterQuickSorts.ContainsKey(gf.GroupFilterID.Value))
GroupFilterQuickSorts[gf.GroupFilterID.Value] = new QuickSort();
GroupFilterQuickSorts[gf.GroupFilterID.Value].SortType = sortType;
GroupFilterQuickSorts[gf.GroupFilterID.Value].SortDirection = sortDirection;
LoadFacade();
return ContextMenuAction.Exit;
}
}
return ContextMenuAction.Continue;
});
if ((gf.GroupFilterID.HasValue) && (GroupFilterQuickSorts.ContainsKey(gf.GroupFilterID.Value)))
{
cmenu.AddAction(Translation.RemoveQuickSort, () =>
{
GroupFilterQuickSorts.Remove(gf.GroupFilterID.Value);
LoadFacade();
});
}
}
// ReSharper disable ImplicitlyCapturedClosure
cmenu.AddAction(Translation.RandomSeries, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
RandomWindow_CurrentEpisode = null;
RandomWindow_CurrentSeries = null;
RandomWindow_LevelObject = grp;
RandomWindow_RandomLevel = RandomSeriesEpisodeLevel.Group;
RandomWindow_RandomType = RandomObjectType.Series;
GUIWindowManager.ActivateWindow(Constants.WindowIDs.RANDOM);
});
// ReSharper disable ImplicitlyCapturedClosure
cmenu.AddAction(Translation.RandomEpisode, () =>
// ReSharper restore ImplicitlyCapturedClosure
{
RandomWindow_CurrentEpisode = null;
RandomWindow_CurrentSeries = null;
RandomWindow_LevelObject = grp;
RandomWindow_RandomLevel = RandomSeriesEpisodeLevel.Group;
RandomWindow_RandomType = RandomObjectType.Episode;
GUIWindowManager.ActivateWindow(Constants.WindowIDs.RANDOM);
});
//.........这里部分代码省略.........
示例8: ShowContextMenuDatabases
private ContextMenuAction ShowContextMenuDatabases(AnimeSeriesVM ser, string previousMenu)
{
string currentMenu = ser.SeriesName + " " + Translation.Databases;
bool hasTvDbLink = ser.CrossRef_AniDB_TvDBV2.Count > 0 && ser.AniDB_Anime.AniDB_AnimeCrossRefs != null && ser.AniDB_Anime.AniDB_AnimeCrossRefs.TvDBCrossRefExists;
bool hasMovieDbLink = ser.CrossRef_AniDB_MovieDB != null && ser.AniDB_Anime.AniDB_AnimeCrossRefs != null && ser.AniDB_Anime.AniDB_AnimeCrossRefs.MovieDB_Movie != null;
bool hasMalLink = ser.CrossRef_AniDB_MAL != null && ser.CrossRef_AniDB_MAL.Count > 0;
ContextMenu cmenu = new ContextMenu(currentMenu, previousmenu: previousMenu);
string tvdbText = Translation.SearchTheTvDB;
string moviedbText = Translation.SearchTheMovieDB;
string malText = Translation.SearchMAL;
if ((hasTvDbLink) && (ser.AniDB_Anime.AniDB_AnimeCrossRefs != null))
tvdbText += string.Format(" ({0}: {1})", Translation.Current, ser.AniDB_Anime.AniDB_AnimeCrossRefs.TvDBSeries[0].SeriesName);
if ((hasMovieDbLink) && (ser.AniDB_Anime.AniDB_AnimeCrossRefs != null))
moviedbText += string.Format(" ({0}: {1})", Translation.Current, ser.AniDB_Anime.AniDB_AnimeCrossRefs.MovieDB_Movie.MovieName);
if (hasMalLink)
malText += string.Format(" ({0}: {1})", Translation.Current, (ser.CrossRef_AniDB_MAL.Count == 1) ? ser.CrossRef_AniDB_MAL[0].MALTitle : Translation.MultipleLinks);
if (!hasMovieDbLink)
{
cmenu.Add(tvdbText, () => SearchTheTvDBMenu(ser, currentMenu));
cmenu.Add(malText, () => SearchMALMenu(ser, currentMenu));
}
if (!hasTvDbLink)
cmenu.Add(moviedbText, () => SearchTheMovieDBMenu(ser, currentMenu));
if (hasTvDbLink)
cmenu.Add(Translation.TheTVDB + " ...", () => ShowContextMenuTVDB(ser, currentMenu));
if (hasMalLink)
cmenu.Add(Translation.MAL + " ...", () => ShowContextMenuMAL(ser, currentMenu));
if (hasMovieDbLink)
cmenu.Add(Translation.TheMovieDB + " ...", () => ShowContextMenuMovieDB(ser, currentMenu));
return cmenu.Show();
}
示例9: ShowContextMenuAdvancedOptionsGroup
private ContextMenuAction ShowContextMenuAdvancedOptionsGroup(string previousMenu)
{
GUIListItem currentitem = m_Facade.SelectedListItem;
if (currentitem == null)
return ContextMenuAction.Exit;
AnimeGroupVM grp = currentitem.TVTag as AnimeGroupVM;
if (grp == null)
return ContextMenuAction.Exit;
ContextMenu cmenu = new ContextMenu(Translation.AdvancedOptions, previousmenu: previousMenu);
cmenu.Add(Translation.EditGroup + " ...", () => ShowContextMenuGroupEdit(grp.GroupName));
if (grp.AllSeries.Count == 1)
{
cmenu.Add(Translation.Databases + " ...",
() => ShowContextMenuDatabases(grp.AllSeries[0], Translation.GroupMenu));
cmenu.Add(Translation.Images + " ...", () => ShowContextMenuImages(grp.GroupName));
}
cmenu.Add(Translation.PostProcessing + " ...", () => ShowContextMenuPostProcessing(grp.GroupName));
return cmenu.Show();
}
示例10: SearchTheTvDBMenu
private ContextMenuAction SearchTheTvDBMenu(AnimeSeriesVM ser, string previousMenu)
{
//string searchCriteria = "";
int aniDBID = ser.AniDB_Anime.AnimeID;
ContextMenu cmenu = new ContextMenu(Translation.SearchTheTvDB, previousMenu);
cmenu.Add(Translation.SearchUsing + ": " + ser.AniDB_Anime.FormattedTitle, () => SearchTheTvDB(ser, ser.AniDB_Anime.FormattedTitle, Translation.SearchTheTvDB));
cmenu.Add(Translation.ManualSearch, () =>
{
if (Utils.DialogText(ref searchText, GetID))
return SearchTheTvDB(ser, searchText, Translation.SearchTheTvDB);
return ContextMenuAction.Continue;
});
List<CrossRef_AniDB_TvDBVMV2> CrossRef_AniDB_TvDBResult = new List<CrossRef_AniDB_TvDBVMV2>();
List<JMMServerBinary.Contract_Azure_CrossRef_AniDB_TvDB> xrefs = new List<Contract_Azure_CrossRef_AniDB_TvDB>(JMMServerVM.Instance.clientBinaryHTTP.GetTVDBCrossRefWebCache(aniDBID, false));
if (xrefs != null && xrefs.Count > 0)
{
string xrefSummary = string.Empty;
foreach (JMMServerBinary.Contract_Azure_CrossRef_AniDB_TvDB xref in xrefs)
{
CrossRef_AniDB_TvDBVMV2 xrefAzure = new CrossRef_AniDB_TvDBVMV2(xref);
CrossRef_AniDB_TvDBResult.Add(xrefAzure);
xrefSummary += Environment.NewLine;
xrefSummary += string.Format("AniDB {0}:{1} -- TvDB {2}: {3}:{4}",
xref.AniDBStartEpisodeType, xref.AniDBStartEpisodeNumber, xref.TvDBTitle, xref.TvDBSeasonNumber, xref.TvDBStartEpisodeNumber);
}
cmenu.AddAction(Translation.CommunitySays + ": " + xrefSummary, () =>
{
string res = JMMServerVM.Instance.clientBinaryHTTP.RemoveLinkAniDBTvDBForAnime(aniDBID);
if (res.Length > 0)
Utils.DialogMsg(Translation.Error, res);
else
{
foreach (CrossRef_AniDB_TvDBVMV2 xref in CrossRef_AniDB_TvDBResult)
{
LinkAniDBToTVDB(ser, xref.AnimeID, (enEpisodeType)xref.AniDBStartEpisodeType,
xref.AniDBStartEpisodeNumber, xref.TvDBID,
xref.TvDBSeasonNumber, xref.TvDBStartEpisodeNumber);
}
}
});
}
return cmenu.Show();
}
示例11: SearchTheMovieDBMenu
private ContextMenuAction SearchTheMovieDBMenu(AnimeSeriesVM ser, string previousMenu)
{
int aniDBID = ser.AniDB_Anime.AnimeID;
ContextMenu cmenu = new ContextMenu(Translation.SearchTheMovieDB, previousMenu);
cmenu.Add(Translation.SearchUsing + ": " + ser.AniDB_Anime.FormattedTitle, () => SearchTheMovieDB(ser, ser.AniDB_Anime.FormattedTitle, Translation.SearchTheMovieDB));
cmenu.Add(Translation.ManualSearch, () =>
{
searchText = ser.AniDB_Anime.FormattedTitle;
if (Utils.DialogText(ref searchText, GetID))
return SearchTheMovieDB(ser, ser.AniDB_Anime.FormattedTitle, Translation.SearchTheMovieDB);
return ContextMenuAction.Continue;
});
Contract_CrossRef_AniDB_OtherResult xref = JMMServerVM.Instance.clientBinaryHTTP.GetOtherAnimeCrossRefWebCache(aniDBID, (int)CrossRefType.MovieDB);
if (xref != null)
{
CrossRef_AniDB_OtherResultVM crossrossRefAniDbOtherResult = new CrossRef_AniDB_OtherResultVM(xref);
cmenu.AddAction(Translation.CommunitySays + ": " + crossrossRefAniDbOtherResult.CrossRefID, () => LinkAniDBToMovieDB(ser, crossrossRefAniDbOtherResult.AnimeID, Int32.Parse(crossrossRefAniDbOtherResult.CrossRefID)));
}
return cmenu.Show();
}
示例12: SearchMALMenu
private ContextMenuAction SearchMALMenu(AnimeSeriesVM ser, string previousMenu)
{
int aniDBID = ser.AniDB_Anime.AnimeID;
ContextMenu cmenu = new ContextMenu(Translation.SearchMAL, previousmenu: previousMenu);
cmenu.Add(Translation.SearchUsing + ": " + ser.AniDB_Anime.FormattedTitle, () => SearchMAL(ser, ser.AniDB_Anime.FormattedTitle, Translation.SearchMAL));
cmenu.Add(Translation.ManualSearch, () =>
{
searchText = ser.AniDB_Anime.FormattedTitle;
if (Utils.DialogText(ref searchText, GetID))
return SearchMAL(ser, searchText, Translation.SearchMAL);
return ContextMenuAction.Continue;
});
return cmenu.Show();
}