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)); }
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(); }