Exemple #1
0
        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;
        }