public IEnumerable <IItem> GetItems(DatabaseUri databaseUri)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));

            journal = new StringJournal("SelectItem", databaseUri.ToString())
            {
                Max = 8,
                RemoveDuplicates = true
            };

            foreach (var entry in journal.GetHistory())
            {
                var parts = entry.Split('^');
                if (parts.Length != 2)
                {
                    continue;
                }

                ItemUri itemUri;
                if (!ItemUri.TryParse(parts[1], out itemUri))
                {
                    continue;
                }

                var name = parts[0];

                yield return(new HistoryEntry(itemUri, name));
            }
        }
Beispiel #2
0
        public override void Save()
        {
            var writer = new StringWriter();
            var output = new XmlTextWriter(writer)
            {
                Formatting = Formatting.Indented
            };

            output.WriteStartElement("search");
            output.WriteAttributeString("name", Name);
            output.WriteAttributeString("databaseuri", DatabaseUri.ToString());
            output.WriteValue(SearchText);
            output.WriteEndElement();

            output.Flush();

            AppHost.Files.CreateDirectory(Path.GetDirectoryName(FileName));
            AppHost.Files.WriteAllText(FileName, writer.ToString());
        }
        public void Ok()
        {
            if (!string.IsNullOrEmpty(SettingsKey) && SelectedItemUri != ItemUri.Empty && DatabaseUri != DatabaseUri.Empty)
            {
                AppHost.Settings.SetString("SelectItemDialog\\" + SettingsKey, DatabaseUri.ToString(), SelectedItemUri.ItemId.ToString());
            }

            foreach (var item in Tabs.Items)
            {
                var tabItem = item as TabItem;
                if (tabItem == null)
                {
                    continue;
                }

                var pane = tabItem.Content as ISelectDialogPane;
                if (pane != null)
                {
                    pane.Close();
                }
            }

            this.Close(true);
        }