public static void Main() { using (TransactionScope tran = new TransactionScope( TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.RepeatableRead })) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../bookmarks.xml"); string xPathQuery = "/bookmarks/bookmark"; XmlNodeList bookmarksList = xmlDoc.SelectNodes(xPathQuery); foreach (XmlNode bookmark in bookmarksList) { string username = bookmark.InnerTextOrNull("username"); string title = bookmark.InnerTextOrNull("title"); string URL = bookmark.InnerTextOrNull("url"); List <string> tags = new List <string>(); string notes = bookmark.InnerTextOrNull("notes"); if (bookmark.InnerTextOrNull("tags") != null) { tags = bookmark.InnerTextOrNull("tags").Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); } BookmarksDAL.ImportBookmarks(username, title, URL, tags, notes); } tran.Complete(); } }
private static void ProcessSearchQueries(XmlTextWriter writer) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../complex-query.xml"); foreach (XmlNode query in xmlDoc.SelectNodes("/queries/query")) { string username = query.GetChildText("username"); int maxResults = 10; var maxResultsAttrib = query.Attributes["max-results"]; if (maxResultsAttrib != null) { maxResults = int.Parse(maxResultsAttrib.Value); } List <string> tags = new List <string>(); foreach (XmlNode tag in query.SelectNodes("tag")) { tags.Add(tag.InnerText.Trim()); } var bookmarks = BookmarksDAL.FindBookmarks(username, tags, maxResults); WriteBookmarks(writer, bookmarks); } }
static void Main() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../simple-query.xml"); string xPathQuery = "/query"; XmlNodeList bookmarksList = xmlDoc.SelectNodes(xPathQuery); foreach (XmlNode bookmark in bookmarksList) { string username = bookmark.InnerTextOrNull("username"); string tag = bookmark.InnerTextOrNull("tag"); var bookmarks = BookmarksDAL.SimpleBookmarkSearch(username, tag); foreach (var bookmarkItem in bookmarks) { Console.WriteLine(bookmarkItem.URL); } } }
static void Main() { TransactionScope tran = new TransactionScope( TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.RepeatableRead }); using (tran) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../bookmarks.xml"); string xPathQuery = "/bookmarks/bookmark"; XmlNodeList bookmarksList = xmlDoc.SelectNodes(xPathQuery); foreach (XmlNode bookmarkNode in bookmarksList) { string username = bookmarkNode.GetChildText("username"); string title = bookmarkNode.GetChildText("title"); string url = bookmarkNode.GetChildText("url"); string notes = bookmarkNode.GetChildText("notes"); string allTags = bookmarkNode.GetChildText("tags"); string[] tags = { }; if (allTags != null) { tags = allTags.Split(','); for (int i = 0; i < tags.Length; i++) { tags[i] = tags[i].Trim(); } } BookmarksDAL.AddBookmark(username, title, url, tags, notes); Thread.Sleep(500); } tran.Complete(); } }
static void Main() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../simple-query.xml"); string username = xmlDoc.GetChildText("/query/username"); string tag = xmlDoc.GetChildText("/query/tag"); var bookmarks = BookmarksDAL.FindBookmarksByUsernameAndTag( username, tag); if (bookmarks.Count > 0) { foreach (var bookmark in bookmarks) { Console.WriteLine(bookmark.URL); } } else { Console.WriteLine("Nothing found"); } }
static void Main() { List <IList <Bookmark> > resluts = new List <IList <Bookmark> >(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("../../complex-query.xml"); string xPathQuery = "/queries/query"; XmlNodeList queryList = xmlDoc.SelectNodes(xPathQuery); foreach (XmlNode query in queryList) { string username = query.InnerTextOrNull("username"); List <string> tags = new List <string>(); foreach (XmlNode tag in query.SelectNodes("tag")) { tags.Add(tag.InnerText); } int maxResults = 10; var maxResultsAttribute = query.Attributes["max-results"]; if (maxResultsAttribute != null) { maxResults = int.Parse(maxResultsAttribute.Value); } resluts.Add(BookmarksDAL.ComplexBookmarkSearch(username, tags, maxResults)); } string fileName = "../../search-results.xml"; using (XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.IndentChar = '\t'; writer.Indentation = 1; writer.WriteStartDocument(); writer.WriteStartElement("search-results"); foreach (IList <Bookmark> result in resluts) { writer.WriteStartElement("result-set"); foreach (Bookmark bookmark in result) { writer.WriteStartElement("bookmark"); writer.WriteElementString("username", bookmark.User.Username); writer.WriteElementString("title", bookmark.Title); writer.WriteElementString("url", bookmark.URL); writer.WriteElementString("tags", string.Join(", ", bookmark.Tags.Select(x => x.Name))); if (bookmark.Notes != null) { writer.WriteElementString("notes", bookmark.Notes); } writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndDocument(); } }