Esempio n. 1
0
        private void UpdatePath()
        {
            PathTextBlock.Text = "[Image has been updated]";

            var fieldUri = sourceField.FieldUris.FirstOrDefault();

            if (fieldUri == null)
            {
                return;
            }

            PathTextBlock.Text = "[Updating image]";

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result, true))
                {
                    PathTextBlock.Text = "[Image not found]";
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(fieldUri.DatabaseUri, element);

                PathTextBlock.Text = itemHeader.Path;
            };

            AppHost.Server.Items.GetItemHeader(MediaUri, completed);
        }
        private void FindPlaceHolderSettingsItem([NotNull] Action <ItemHeader> action)
        {
            Debug.ArgumentNotNull(action, nameof(action));
            var placeHolderName = PlaceHolderTreeViewItem.PlaceHolderName;
            var placeHolderPath = PlaceHolderTreeViewItem.GetPlaceHolderPath();

            var device = PlaceHolderTreeViewItem.DeviceTreeViewItem.Device;

            Site.RequestCompleted completed = delegate(string response)
            {
                if (string.IsNullOrEmpty(response))
                {
                    CreatePlaceHolderSettings(placeHolderName, placeHolderPath, action);
                    return;
                }

                var root = response.ToXElement();
                if (root == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(device.DatabaseUri, root);
                action(itemHeader);
            };

            device.DatabaseUri.Site.Execute("LayoutBuilders.GetPlaceHolderSettings", completed, device.DatabaseUri.DatabaseName.ToString(), placeHolderName, placeHolderPath);
        }
Esempio n. 3
0
        public static void GetInsertOptions([NotNull] this DataService dataService, [NotNull] ItemUri itemUri, [NotNull] GetItemsCompleted <ItemHeader> callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(itemUri, nameof(itemUri));
            Assert.ArgumentNotNull(callback, nameof(callback));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var root = Parse(response);
                if (root == null)
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var result = root.Elements().Select(element => ItemHeader.Parse(itemUri.DatabaseUri, element)).ToList();

                callback(result);
            };

            dataService.ExecuteAsync("Sitecore.Rocks.Server.Requests.GetInsertOptions", c, itemUri.DatabaseName.Name, itemUri.ItemId.ToString());
        }
Esempio n. 4
0
        private void HandleTextChanged([NotNull] object sender, [NotNull] TextChangedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            if (string.IsNullOrEmpty(LayoutSelector.Text))
            {
                Path.Text = "[No Layout]";
                return;
            }

            Path.Text = "[Updating Layout]";

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result, true))
                {
                    Path.Text = "[Layout not found]";
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(Device.DatabaseUri, element);

                Path.Text = itemHeader.Path;
            };

            Device.DatabaseUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, LayoutSelector.Text, Device.DatabaseUri.DatabaseName.Name);
        }
Esempio n. 5
0
        public static ItemHeader GetItemHeader([NotNull] XElement element, [NotNull] DatabaseUri databaseUri)
        {
            Assert.ArgumentNotNull(element, nameof(element));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));

            return(ItemHeader.Parse(databaseUri, element));
        }
Esempio n. 6
0
        public static void Query([NotNull] this DataService dataService, [NotNull] string queryText, [NotNull] DatabaseUri databaseUri, [NotNull] GetItemsCompleted <ItemHeader> callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(queryText, nameof(queryText));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(callback, nameof(callback));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var root = Parse(response);
                if (root == null)
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var result = new List <ItemHeader>();

                foreach (var element in root.Elements())
                {
                    result.Add(ItemHeader.Parse(databaseUri, element));
                }

                callback(result);
            };

            dataService.ExecuteAsync("Sitecore.Rocks.Server.Requests.Query", c, queryText);
        }
Esempio n. 7
0
        public static void SelectItems([NotNull] this DataService dataService, [NotNull] string queryText, [NotNull] DatabaseUri databaseUri, [NotNull] GetItemsCompleted <ItemHeader> callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(queryText, nameof(queryText));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(callback, nameof(callback));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var root = Parse(response);
                if (root == null)
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var items = root.Elements().Select(element => ItemHeader.Parse(databaseUri, element)).ToList();

                callback(items);
            };

            dataService.ExecuteAsync("Search.SelectItems", c, queryText, databaseUri.DatabaseName.ToString());
        }
Esempio n. 8
0
        private void LoadRenderings([NotNull] string response, [NotNull] ExecuteResult executeResult)
        {
            if (!DataService.HandleExecute(response, executeResult))
            {
                return;
            }

            var root = response.ToXElement();

            if (root == null)
            {
                return;
            }

            var renderings = root.Elements().Select(element => ItemHeader.Parse(DatabaseUri, element)).ToList();

            Renderings = renderings.Select(t => new CheckedItemHeader(t, SelectedItems.Contains(t.ItemUri.ItemId))).ToList();

            RenderingListView.ItemsSource = Renderings;

            _listViewSorter.Resort();
            _view = CollectionViewSource.GetDefaultView(Renderings) as CollectionView;
            if (_view == null)
            {
                return;
            }

            var groupDescription = new PropertyGroupDescription("ParentPath")
            {
                StringComparison = StringComparison.InvariantCultureIgnoreCase
            };

            var collection = _view.GroupDescriptions;

            if (collection != null)
            {
                collection.Clear();
                collection.Add(groupDescription);
            }

            _view.Filter = delegate(object o)
            {
                var itemHeader = o as ItemHeader;
                return(itemHeader != null && itemHeader.Name.IsFilterMatch(RenderinSelectorFilter.Text));
            };

            _view.Refresh();

            RenderingListView.ResizeColumn(NameColumn);

            Loading.Visibility           = Visibility.Collapsed;
            RenderingListView.Visibility = Visibility.Visible;

            var loaded = RenderingsLoaded;

            if (loaded != null)
            {
                loaded(this, EventArgs.Empty);
            }
        }
        private void LayoutSelectorTextChanged([NotNull] object sender, [NotNull] TextChangedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            Modified = true;
            LayoutSelectorImage.Visibility = Visibility.Collapsed;

            if (string.IsNullOrEmpty(LayoutSelector.Text))
            {
                LayoutUri = ItemUri.Empty;
                return;
            }

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result, true))
                {
                    LayoutSelectorImage.Visibility = Visibility.Visible;
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    LayoutSelectorImage.Visibility = Visibility.Visible;
                }

                var itemHeader = ItemHeader.Parse(DatabaseUri, element);
                LayoutUri = itemHeader.ItemUri;
            };

            DatabaseUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, LayoutSelector.Text, DatabaseUri.DatabaseName.Name);
        }
        public override void Execute(object parameter)
        {
            var context = parameter as LayoutDesignerContext;

            if (context == null)
            {
                return;
            }

            var contentTree = ActiveContext.ActiveContentTree;

            if (contentTree == null)
            {
                return;
            }

            var selectedItem = context.SelectedItem;

            if (selectedItem == null)
            {
                return;
            }

            var item = selectedItem as PlaceholderItem;

            if (item == null)
            {
                return;
            }

            var databaseUri = context.LayoutDesigner.DatabaseUri;

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                if (Keyboard.Modifiers == ModifierKeys.Control)
                {
                    AppHost.OpenContentEditor(itemHeader.ItemUri);
                }
                else
                {
                    contentTree.Locate(itemHeader.ItemUri);
                }
            };

            databaseUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, item.MetaDataItemId, databaseUri.DatabaseName.ToString());
        }
Esempio n. 11
0
        private void Opened([NotNull] object sender, [NotNull] RoutedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var context = Context;

            if (context == null)
            {
                return;
            }

            var menuItem = e.Source as MenuItem;

            if (menuItem == null)
            {
                return;
            }

            var item = menuItem.Items.OfType <MenuItem>().FirstOrDefault(i => i.Tag as string == @"loading");

            if (item == null)
            {
                return;
            }

            var placeHolderTreeViewItem = context.TreeViewItems.FirstOrDefault() as PlaceHolderTreeViewItem;

            if (placeHolderTreeViewItem == null)
            {
                return;
            }

            var placeHolderName = placeHolderTreeViewItem.PlaceHolderName;
            var placeHolderPath = placeHolderTreeViewItem.GetPlaceHolderPath();

            var index = menuItem.Items.IndexOf(item);

            menuItem.Items.Insert(index + 1, new Separator());

            var device = placeHolderTreeViewItem.DeviceTreeViewItem.Device;

            ExecuteCompleted completed = delegate(string response, ExecuteResult executeResult)
            {
                var root = response.ToXElement();
                if (root == null)
                {
                    return;
                }

                var items = root.Elements().Select(element => ItemHeader.Parse(device.DatabaseUri, element)).ToList();

                LoadRenderings(menuItem, items);
            };

            AppHost.Server.LayoutBuilders.GetRenderingsInPlaceHolder(device.DatabaseUri, placeHolderName, placeHolderPath, completed);
        }
Esempio n. 12
0
        private void ParseItems([NotNull] XElement root, [NotNull] DatabaseUri databaseUri)
        {
            Debug.ArgumentNotNull(root, nameof(root));
            Debug.ArgumentNotNull(databaseUri, nameof(databaseUri));

            var items = root.Elements().Select(element => ItemHeader.Parse(databaseUri, element)).ToList();

            ItemDescriptors = items.Select(item => new ItemDescriptor(item)).ToList();
        }
Esempio n. 13
0
        private void TextChanged([NotNull] object sender, [NotNull] TextChangedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var valueModified = ValueModified;

            if (valueModified != null)
            {
                valueModified();
            }

            var sourceField = SourceField;

            if (sourceField == null)
            {
                return;
            }

            var fieldUri = sourceField.FieldUris.FirstOrDefault();

            if (fieldUri == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(Link.Text))
            {
                UpdatePath(string.Empty);
                return;
            }

            UpdatePath("[Updating path]");

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result, true))
                {
                    UpdatePath("[Item not found]");
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(fieldUri.DatabaseUri, element);

                UpdatePath(itemHeader.Path);
            };

            fieldUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, Link.Text, fieldUri.DatabaseName.Name);
        }
        private void CreatePlaceHolderSettings([NotNull] string placeHolderName, [NotNull] string placeHolderPath, [NotNull] Action <ItemHeader> action)
        {
            Debug.ArgumentNotNull(placeHolderName, nameof(placeHolderName));
            Debug.ArgumentNotNull(placeHolderPath, nameof(placeHolderPath));
            Debug.ArgumentNotNull(action, nameof(action));

            var device = PlaceHolderTreeViewItem.DeviceTreeViewItem.Device;

            var options = new TaskDialogOptions
            {
                Owner           = this.GetAncestorOrSelf <Window>(),
                Title           = "Place Holder Settings",
                CommonButtons   = TaskDialogCommonButtons.None,
                MainInstruction = "The place holder settings item was not found.",
                MainIcon        = VistaTaskDialogIcon.Information,
                CommandButtons  = new[]
                {
                    string.Format("Create place holder settings with name \"{0}\"", placeHolderName),
                    string.Format("Create place holder settings with qualified name \"{0}\"", placeHolderPath)
                },
                AllowDialogCancellation = true
            };

            var r = TaskDialog.Show(options).CommandButtonResult;

            if (r == null)
            {
                return;
            }

            var path = r == 0 ? placeHolderName : placeHolderPath;

            Site.RequestCompleted completed = delegate(string response)
            {
                if (string.IsNullOrEmpty(response))
                {
                    AppHost.MessageBox("Could not create the Place Holder Settings item.", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                var root = response.ToXElement();
                if (root == null)
                {
                    AppHost.MessageBox("Could not create the Place Holder Settings item.", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                var itemHeader = ItemHeader.Parse(device.DatabaseUri, root);

                action(itemHeader);
            };

            device.DatabaseUri.Site.Execute("Layouts.CreatePlaceHolderSettings", completed, device.DatabaseUri.DatabaseName.ToString(), path);
        }
Esempio n. 15
0
        private void ParseItems([NotNull] XElement root, [NotNull] Site site)
        {
            Debug.ArgumentNotNull(root, nameof(root));
            Debug.ArgumentNotNull(site, nameof(site));

            Func <XElement, ItemDescriptor> selector = delegate(XElement element)
            {
                var databaseUri = new DatabaseUri(site, new DatabaseName(element.GetAttributeValue("database")));

                return(new ItemDescriptor(ItemHeader.Parse(databaseUri, element)));
            };

            ItemDescriptors = root.Elements().Select(selector).ToList();
        }
Esempio n. 16
0
        public static void SearchMedia([NotNull] this DataService dataService, [NotNull] string queryText, [NotNull] DatabaseUri databaseUri, [Localizable(false), NotNull] string field, [NotNull] string condition, [NotNull] ItemUri root, int pageNumber, [NotNull] GetItemsCompleted <ItemHeader> callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(queryText, nameof(queryText));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(condition, nameof(condition));
            Assert.ArgumentNotNull(root, nameof(root));
            Assert.ArgumentNotNull(callback, nameof(callback));

            var databaseName = databaseUri.DatabaseName.Name;
            var itemId       = string.Empty;

            if (root != ItemUri.Empty)
            {
                databaseName = root.DatabaseName.ToString();
                itemId       = root.ItemId.ToString();
            }

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var r = Parse(response);
                if (r == null)
                {
                    callback(Enumerable.Empty <ItemHeader>());
                    return;
                }

                var result = new List <ItemHeader>();

                foreach (var element in r.Elements())
                {
                    result.Add(ItemHeader.Parse(databaseUri, element));
                }

                callback(result);
            };

            dataService.ExecuteAsync("Media.Search", c, queryText, field, condition, databaseName, itemId, pageNumber);
        }
Esempio n. 17
0
        private void CopyItemBatch([NotNull] DragCopyPipeline pipeline)
        {
            Debug.ArgumentNotNull(pipeline, nameof(pipeline));

            pipeline.Suspend();

            var sourceItemIds = string.Join(",", pipeline.Items.Select(i => i.ItemUri.ItemId.ToString()));

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    pipeline.Abort();
                    return;
                }

                var root = response.ToXElement();
                if (root == null)
                {
                    pipeline.Abort();
                    return;
                }

                foreach (var element in root.Elements())
                {
                    var itemHeader = ItemHeader.Parse(pipeline.Target.ItemUri.DatabaseUri, element);

                    var newItem = new DragCopyPipeline.NewItem
                    {
                        Item       = itemHeader,
                        NewName    = itemHeader.Name,
                        NewItemUri = itemHeader.ItemUri
                    };

                    pipeline.NewItems.Add(newItem);
                }

                pipeline.Owner  = pipeline.Target;
                pipeline.Anchor = null;

                pipeline.Resume();
            };

            AppHost.Server.Items.CopyItems(sourceItemIds, pipeline.Target.ItemUri, completed);
        }
Esempio n. 18
0
        public void Load()
        {
            var context = Commandy.Parameter as LayoutDesignerContext;

            if (context == null)
            {
                return;
            }

            var first = context.Items.FirstOrDefault();

            if (first == null)
            {
                return;
            }

            renderingItems.Clear();

            var databaseUri = first.ItemUri.DatabaseUri;

            ExecuteCompleted completed = (response, executeResult) =>
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    return;
                }

                var root = response.ToXElement();
                if (root == null)
                {
                    return;
                }

                var items = root.Elements().Select(element => ItemHeader.Parse(databaseUri, element)).ToList();
                foreach (var itemHeader in items)
                {
                    renderingItems.Add(new RenderingItem(null, itemHeader));
                }

                IsReady = true;
            };

            AppHost.Server.Layouts.GetRenderings(databaseUri, completed);
        }
Esempio n. 19
0
        public void BrowseImage([NotNull] object sender, [NotNull] RoutedEventArgs e)
        {
            Assert.ArgumentNotNull(sender, nameof(sender));
            Assert.ArgumentNotNull(e, nameof(e));

            var         dialog = new SelectItemDialog();
            DatabaseUri databaseUri;

            if (MediaUri == ItemUri.Empty)
            {
                databaseUri = sourceField.FieldUris.First().DatabaseUri;
                dialog.Initialize(Rocks.Resources.Browse, databaseUri, "/sitecore/media library");
            }
            else
            {
                databaseUri = MediaUri.DatabaseUri;
                dialog.Initialize(Rocks.Resources.Browse, MediaUri);
            }

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

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                Update(itemHeader);
            };

            AppHost.Server.Items.GetItemHeader(dialog.SelectedItemUri, completed);
        }
Esempio n. 20
0
        public override void Execute(object parameter)
        {
            var context = parameter as LayoutDesignerContext;

            if (context == null)
            {
                return;
            }

            var fieldUri = context.LayoutDesigner.FieldUris.FirstOrDefault();

            if (fieldUri == null)
            {
                SelectItemToPreview(context);
                return;
            }

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(fieldUri.DatabaseUri, element);

                if (itemHeader.Name != "__Standard Values")
                {
                    Browse(itemHeader.ItemUri);
                    return;
                }

                SelectItemToPreview(context);
            };

            AppHost.Server.Items.GetItemHeader(fieldUri.ItemVersionUri.ItemUri, completed);
        }
        public void GetPublishingCandidates(int pageNumber)
        {
            var site = DatabaseUri.Site;

            if (site == Site.Empty)
            {
                AppHost.MessageBox(Rocks.Resources.Search_HandleKeyDown_Please_select_a_database_first_, Rocks.Resources.Search_HandleKeyDown_Select_Database, MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    Loading.Visibility = Visibility.Collapsed;
                    List.Visibility    = Visibility.Visible;
                    return;
                }

                var root = response.ToXElement();
                if (root == null)
                {
                    Loading.Visibility = Visibility.Collapsed;
                    List.Visibility    = Visibility.Visible;
                    return;
                }

                var list = new List <ItemHeader>();

                foreach (var element in root.Elements())
                {
                    var itemHeader = ItemHeader.Parse(DatabaseUri, element);
                    list.Add(itemHeader);
                }

                LoadItems(list);
            };

            Loading.Visibility = Visibility.Visible;
            List.Visibility    = Visibility.Collapsed;

            DatabaseUri.Site.DataService.ExecuteAsync("Publishing.GetPublishingQueue", c, DatabaseUri.DatabaseName.ToString(), pageNumber);
        }
        public override void Execute(object parameter)
        {
            var context = parameter as LayoutDesignerContext;

            if (context == null)
            {
                return;
            }

            var item = context.SelectedItems.FirstOrDefault() as RenderingItem;

            if (item == null)
            {
                return;
            }

            var databaseUri = context.LayoutDesigner.DatabaseUri;

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                var activeContentTree = ActiveContext.ActiveContentTree;
                if (activeContentTree != null)
                {
                    activeContentTree.Locate(itemHeader.ItemUri);
                }
            };

            databaseUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, item.DataSource, databaseUri.DatabaseName.ToString());
        }
Esempio n. 23
0
        private void SetRenderings([NotNull] string response, [NotNull] ExecuteResult executeResult)
        {
            Debug.ArgumentNotNull(response, nameof(response));
            Debug.ArgumentNotNull(executeResult, nameof(executeResult));

            if (!DataService.HandleExecute(response, executeResult))
            {
                return;
            }

            var root = response.ToXElement();

            if (root == null)
            {
                return;
            }

            var items = root.Elements().Select(element => ItemHeader.Parse(DatabaseUri, element)).Where(MatchesSpeakCoreVersion).ToList();

            renderings.AddRange(items);

            foreach (var source in RenderingSelectorFilters)
            {
                source.SetRenderings(renderings);
            }

            var selectedItem = FilterListbox.SelectedItem as ListBoxItem;

            if (selectedItem != null)
            {
                selectedItem.IsSelected = false;
                selectedItem.IsSelected = true;
                return;
            }

            var firstItem = FilterListbox.Items.OfType <ListBoxItem>().FirstOrDefault();

            if (firstItem != null)
            {
                firstItem.IsSelected = true;
            }
        }
Esempio n. 24
0
        public static void GetLinks([NotNull] this DataService dataService, [NotNull] ItemUri itemUri, [NotNull] GetLinksCompleted callback)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(itemUri, nameof(itemUri));
            Assert.ArgumentNotNull(callback, nameof(callback));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    callback(string.Empty, Enumerable.Empty <ItemHeader>(), Enumerable.Empty <ItemHeader>());
                    return;
                }

                var root = Parse(response);
                if (root == null)
                {
                    callback(string.Empty, Enumerable.Empty <ItemHeader>(), Enumerable.Empty <ItemHeader>());
                    return;
                }

                var referencesElement = root.Element(@"references");
                var referrersElement  = root.Element(@"referrers");

                if (referencesElement == null || referrersElement == null)
                {
                    callback(string.Empty, Enumerable.Empty <ItemHeader>(), Enumerable.Empty <ItemHeader>());
                    return;
                }

                var name       = root.GetAttributeValue("name");
                var references = referencesElement.Elements().Select(element => ItemHeader.Parse(itemUri.DatabaseUri, element)).ToList();
                var referrers  = referrersElement.Elements().Select(element => ItemHeader.Parse(itemUri.DatabaseUri, element)).ToList();

                callback(name, references, referrers);
            };

            dataService.ExecuteAsync("Sitecore.Rocks.Server.Requests.Links.GetLinks", c, itemUri.DatabaseName.Name, itemUri.ItemId.ToString());
        }
Esempio n. 25
0
        public static void GetItemHeader([NotNull] this DataService dataService, [NotNull] ItemUri itemUri, [NotNull] GetValueCompleted <ItemHeader> getItemHeaderCompleted)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(itemUri, nameof(itemUri));
            Assert.ArgumentNotNull(getItemHeaderCompleted, nameof(getItemHeaderCompleted));

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    return;
                }

                var root = Parse(response);
                if (root != null)
                {
                    getItemHeaderCompleted(ItemHeader.Parse(itemUri.DatabaseUri, root));
                }
            };

            itemUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", c, itemUri.ItemId.ToString(), itemUri.DatabaseName.Name);
        }
Esempio n. 26
0
        public override void Execute(object parameter)
        {
            var context = parameter as LayoutDesignerContext;

            if (context == null)
            {
                return;
            }

            var item = context.SelectedItems.FirstOrDefault() as RenderingItem;

            if (item == null)
            {
                return;
            }

            var databaseUri = context.LayoutDesigner.DatabaseUri;

            ExecuteCompleted completed = delegate(string response, ExecuteResult result)
            {
                if (!DataService.HandleExecute(response, result))
                {
                    return;
                }

                var element = response.ToXElement();
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                AppHost.OpenContentEditor(new ItemVersionUri(itemHeader.ItemUri, LanguageManager.CurrentLanguage, Version.Latest));
            };

            databaseUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, item.DataSource, databaseUri.DatabaseName.ToString());
        }
Esempio n. 27
0
        private void LoadRenderingGallery([NotNull] LayoutDesigner layoutDesigner, [NotNull] InRibbonGallery gallery)
        {
            Debug.ArgumentNotNull(layoutDesigner, nameof(layoutDesigner));
            Debug.ArgumentNotNull(gallery, nameof(gallery));

            Site.RequestCompleted completed = delegate(string response)
            {
                var root = response.ToXElement();
                if (root == null)
                {
                    return;
                }

                var items      = root.Elements().Select(element => ItemHeader.Parse(layoutDesigner.DatabaseUri, element)).Where(e => MatchesSpeakCoreVersion(e, layoutDesigner)).ToList();
                var renderings = new List <RenderingButton>();

                foreach (var item in items.OrderBy(i => i.ParentName).ThenBy(i => i.Name))
                {
                    var button = new RenderingButton
                    {
                        Label   = item.Name,
                        Icon    = item.Icon,
                        Tag     = item,
                        ToolTip = ToolTipBuilder.BuildToolTip(item)
                    };

                    button.PreviewMouseUp += (sender, args) => { AddRenderingFromRibbon(layoutDesigner, sender, button); };

                    renderings.Add(button);
                }

                renderings = renderings.OrderBy(i => i.Label).ToList();

                gallery.ItemsSource = renderings;
            };

            layoutDesigner.DatabaseUri.Site.Execute("Layouts.GetRenderings", completed, layoutDesigner.DatabaseUri.DatabaseName.ToString());
        }
Esempio n. 28
0
        internal bool InternalAddItems([NotNull] string response, [NotNull] ExecuteResult executeresult)
        {
            Debug.ArgumentNotNull(response, nameof(response));
            Debug.ArgumentNotNull(executeresult, nameof(executeresult));

            if (!DataService.HandleExecute(response, executeresult))
            {
                return(false);
            }

            var root = response.ToXElement();

            if (root == null)
            {
                return(false);
            }

            foreach (var element in root.Elements())
            {
                var databaseName = element.GetAttributeValue("database");

                var databaseUri = new DatabaseUri(Site, new DatabaseName(databaseName));

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                if (Items.Any(i => i.ItemUri == itemHeader.ItemUri))
                {
                    continue;
                }

                var packageItem = new PackageItem(itemHeader);

                Items.Add(packageItem);
            }

            return(true);
        }
Esempio n. 29
0
        public static void Upload([NotNull] this DataService dataService, [NotNull] DatabaseUri databaseUri, [NotNull] string filePath, [NotNull] byte[] file, [NotNull] GetValueCompleted <ItemHeader> uploadCompleted)
        {
            Assert.ArgumentNotNull(dataService, nameof(dataService));
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(filePath, nameof(filePath));
            Assert.ArgumentNotNull(file, nameof(file));
            Assert.ArgumentNotNull(uploadCompleted, nameof(uploadCompleted));

            var data = Convert.ToBase64String(file);

            ExecuteCompleted c = delegate(string response, ExecuteResult executeResult)
            {
                if (!DataService.HandleExecute(response, executeResult))
                {
                    return;
                }

                var r = Parse(response);
                if (r == null)
                {
                    return;
                }

                var element = r.Element(@"item");
                if (element == null)
                {
                    return;
                }

                var itemHeader = ItemHeader.Parse(databaseUri, element);

                uploadCompleted(itemHeader);
            };

            databaseUri.Site.DataService.ExecuteAsync("Sitecore.Rocks.Server.Requests.Media.Upload", c, databaseUri.DatabaseName.Name, filePath, data);
        }
Esempio n. 30
0
        public void AddIdProperty([NotNull] string text, [NotNull] string propertyName)
        {
            Assert.ArgumentNotNull(text, nameof(text));
            Assert.ArgumentNotNull(propertyName, nameof(propertyName));

            AddLabel(text);

            var property = GetProperty(propertyName);
            var binding  = new Binding(property.Name);

            var grid = new Grid();

            grid.RowDefinitions.Add(new RowDefinition());
            grid.ColumnDefinitions.Add(new ColumnDefinition());
            grid.ColumnDefinitions.Add(new ColumnDefinition
            {
                Width = GridLength.Auto
            });

            var textBox = new TextBox();

            textBox.SetBinding(TextBox.TextProperty, binding);
            textBox.VerticalAlignment = VerticalAlignment.Center;
            grid.Children.Add(textBox);
            textBox.SetValue(Grid.ColumnProperty, 0);

            var button = new Button
            {
                Content = "Browse",
                Width   = 75,
                Height  = 23,
                Margin  = new Thickness(2, 0, 0, 0)
            };

            button.Click += delegate
            {
                var container = RenderingItem.RenderingContainer;
                if (container == null)
                {
                    return;
                }

                var dialog = new SelectItemDialog();
                dialog.Initialize("Browse", RenderingItem.ItemUri.DatabaseUri, textBox.Text ?? string.Empty);
                if (AppHost.Shell.ShowDialog(dialog) != true)
                {
                    return;
                }

                textBox.Text = dialog.SelectedItemUri.ItemId.ToString();
            };

            grid.Children.Add(button);
            button.SetValue(Grid.ColumnProperty, 1);

            Grid.Children.Add(grid);

            var path = new TextBlock
            {
                Text         = " ",
                Margin       = new Thickness(0, 0, 0, 4),
                Foreground   = SystemColors.GrayTextBrush,
                TextTrimming = TextTrimming.CharacterEllipsis
            };

            Grid.Children.Add(new Border());
            Grid.Children.Add(path);

            textBox.TextChanged += delegate
            {
                path.Text = "[Updating path]";

                ExecuteCompleted completed = delegate(string response, ExecuteResult result)
                {
                    if (!DataService.HandleExecute(response, result, true))
                    {
                        path.Text = "[Item not found]";
                        return;
                    }

                    var element = response.ToXElement();
                    if (element == null)
                    {
                        path.Text = "[Item not found]";
                        return;
                    }

                    var itemHeader = ItemHeader.Parse(RenderingItem.ItemUri.DatabaseUri, element);

                    path.Text = string.IsNullOrEmpty(itemHeader.Path) ? " " : itemHeader.Path;
                };

                RenderingItem.ItemUri.Site.DataService.ExecuteAsync("Items.GetItemHeader", completed, textBox.Text, RenderingItem.ItemUri.DatabaseName.Name);
            };

            var selectedItem = property.Value;

            textBox.Text = (selectedItem ?? string.Empty).ToString();

            bindings.Add(BindingOperations.GetBindingExpressionBase(textBox, TextBox.TextProperty));
        }