public bool Append(params HistoryItem[] historyItems) { if (!string.IsNullOrEmpty(FilePath)) { lock (thisLock) { Helpers.CreateDirectoryIfNotExist(FilePath); using (FileStream fs = File.Open(FilePath, FileMode.Append, FileAccess.Write, FileShare.Read)) using (XmlTextWriter writer = new XmlTextWriter(fs, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 4; foreach (HistoryItem historyItem in historyItems) { writer.WriteStartElement("HistoryItem"); writer.WriteElementIfNotEmpty("Filename", historyItem.Filename); writer.WriteElementIfNotEmpty("Filepath", historyItem.Filepath); writer.WriteElementIfNotEmpty("DateTimeUtc", historyItem.DateTimeUtc.ToString("o")); writer.WriteElementIfNotEmpty("Type", historyItem.Type); writer.WriteElementIfNotEmpty("Host", historyItem.Host); writer.WriteElementIfNotEmpty("URL", historyItem.URL); writer.WriteElementIfNotEmpty("ThumbnailURL", historyItem.ThumbnailURL); writer.WriteElementIfNotEmpty("DeletionURL", historyItem.DeletionURL); writer.WriteElementIfNotEmpty("ShortenedURL", historyItem.ShortenedURL); writer.WriteEndElement(); } writer.WriteWhitespace(Environment.NewLine); } } return true; } return false; }