Exemplo n.º 1
0
        public void DataBoxAddItemWithTag()
        {
            //Arrange
            var data = new DataBox("test.xml");
            var tag  = data.NewTag("Test");

            //Act
            LinkEntry entry = data.NewLinkEntry("name", "description");

            entry.AddTag(tag);

            //Assert
            Assert.AreEqual(1, data.Entries.Count);
            Assert.AreEqual("name", data.Entries[0].Name);
            Assert.AreEqual("description", ((LinkEntry)data.Entries[0]).Description);
            Assert.AreEqual("Test", data.Entries[0].Tags.First().Name);
            Assert.AreEqual(entry, data.Entries[0]);
            Assert.IsTrue(data.Entries[0].Tags.Contains(tag));
        }
Exemplo n.º 2
0
        private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            lblTitle.Visibility        = Visibility.Visible;
            txtTitle.Visibility        = Visibility.Collapsed;
            tblkDescription.Visibility = Visibility.Visible;
            txtDescription.Visibility  = Visibility.Collapsed;
            btnEdit.Visibility         = Visibility.Visible;
            btnUpdate.Visibility       = Visibility.Collapsed;
            tagTags.IsEnabled          = false;

            entry.Name        = txtTitle.Text;
            entry.Description = txtDescription.Text;
            var tags = tagTags.Tags;
            var db   = (App.Current.MainWindow as MainWindow)?.Databox;

            foreach (string tag in tags)
            {
                if (!entry.Tags.Any(x => x.CheckString(tag)))
                {
                    var split = tag.Split(':');
                    Tag newTag;
                    if (split.Length == 2)
                    {
                        if (db.TagExists(split[1], split[0]))
                        {
                            newTag = db.GetTagsByName(split[1], split[0]).First();
                        }
                        else
                        {
                            newTag = db.NewTag(split[1], split[0]);
                        }
                    }
                    else if (split.Length > 2)
                    {
                        string tagName = String.Join(" - ", split.Skip(1).ToArray());
                        if (db.TagExists(tagName, split[0]))
                        {
                            newTag = db.GetTagsByName(tagName, split[0]).First();
                        }
                        else
                        {
                            newTag = db.NewTag(tagName, split[0]);
                        }
                    }
                    else
                    {
                        if (db.TagExists(tag))
                        {
                            newTag = db.GetTagsByName(tag).First();
                        }
                        else
                        {
                            newTag = db.NewTag(tag);
                        }
                    }
                    entry.AddTag(newTag);
                }
            }
            var removedTags = new List <Tag>();

            foreach (Tag tag in entry.Tags)
            {
                if (!tags.Contains(tag.Display))
                {
                    removedTags.Add(tag);
                }
            }
            foreach (Tag tag in removedTags)
            {
                entry.Tags.Remove(tag);
            }
            LoadEntry();
            MainWindow main = (App.Current.MainWindow as MainWindow);

            main?.SetChangeMade(true);
            main?.LoadTags();
        }