Exemplo n.º 1
0
        public override void AddToRecent(TemplateHeader templateHeader)
        {
            Assert.ArgumentNotNull(templateHeader, nameof(templateHeader));

            RecentTemplateManager.AddToRecent(templateHeader);
        }
Exemplo n.º 2
0
        private void CreateItem([NotNull] object sender, [NotNull] RoutedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var context = Context;

            if (context == null)
            {
                return;
            }

            var parent = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem;

            if (parent == null)
            {
                return;
            }

            var menuItem = e.Source as MenuItem;

            if (menuItem == null)
            {
                return;
            }

            var templateHeader = menuItem.Tag as TemplateHeader;

            if (templateHeader == null)
            {
                return;
            }

            var d = new AddInsertOptionDialog();

            d.NewItemName.Text = templateHeader.Name;

            if (AppHost.Shell.ShowDialog(d) != true)
            {
                return;
            }

            RecentTemplateManager.AddToRecent(templateHeader);

            var newName     = d.ItemName;
            var templateId  = templateHeader.TemplateUri.ItemId;
            var templateUri = new ItemUri(parent.ItemUri.DatabaseUri, templateId);

            ItemUri itemUri;

            var isBranch = IdManager.GetTemplateType(templateId) != "template";

            if (isBranch)
            {
                itemUri = parent.ItemUri.Site.DataService.AddFromMaster(parent.ItemUri, templateUri, newName);
            }
            else
            {
                itemUri = parent.ItemUri.Site.DataService.AddFromTemplate(parent.ItemUri, templateUri, newName);
            }

            if (itemUri == ItemUri.Empty)
            {
                return;
            }

            parent.RefreshAndExpand(false);
            parent.SelectChildItems(new[]
            {
                itemUri
            });

            var itemVersionUri = new ItemVersionUri(itemUri, LanguageManager.CurrentLanguage, Version.Latest);

            AppHost.OpenContentEditor(itemVersionUri);

            Notifications.RaiseItemAdded(this, itemVersionUri, parent.ItemUri);
        }