private void Execute([NotNull] DatabaseUri databaseUri, [CanBeNull] IDatabaseSelectionContext context) { Debug.ArgumentNotNull(databaseUri, nameof(databaseUri)); var d = new AdvancedPublishDialog(databaseUri); if (AppHost.Shell.ShowDialog(d) != true) { return; } var profile = d.GetCurrentProfile(); if (profile == null) { return; } var itemId = string.Empty; var itemContext = context as IItemSelectionContext; if (itemContext != null) { var item = itemContext.Items.FirstOrDefault(); if (item != null) { itemId = item.ItemUri.ItemId.ToString(); } } var languageList = profile.Languages.Aggregate(string.Empty, (text, part) => text + (text.Length > 0 ? "|" : string.Empty) + part); var targetList = profile.Targets.Aggregate(string.Empty, (text, part) => text + (text.Length > 0 ? "|" : string.Empty) + part); ExecuteCompleted completed = (response, result) => DataService.HandleExecute(response, result); databaseUri.Site.DataService.ExecuteAsync("Publishing.AdvancedPublish", completed, databaseUri.DatabaseName.ToString(), itemId, profile.Mode, profile.Source, languageList, targetList, profile.RelatedItems); if (AppHost.Settings.Options.ShowJobViewer) { AppHost.Windows.OpenJobViewer(databaseUri.Site); } }
public override bool CanExecute(object parameter) { if (parameter is ContentEditorContext) { return(false); } var context = parameter as IDatabaseSelectionContext; if (context == null) { return(false); } if (context.DatabaseUri == DatabaseUri.Empty) { return(false); } Context = context; return(true); }
public override void ContextMenuClosed() { base.ContextMenuClosed(); Context = null; }