Exemplo n.º 1
0
        private bool Append(params HistoryItem[] historyItems)
        {
            if (!string.IsNullOrEmpty(FilePath))
            {
                lock (thisLock)
                {
                    Helpers.CreateDirectoryFromFilePath(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.DateTime.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);
                        }

                    if (!string.IsNullOrEmpty(BackupFolder))
                    {
                        if (CreateBackup)
                        {
                            Helpers.CopyFile(FilePath, BackupFolder);
                        }

                        if (CreateWeeklyBackup)
                        {
                            Helpers.BackupFileWeekly(FilePath, BackupFolder);
                        }
                    }
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
        protected override bool Append(string filePath, IEnumerable <HistoryItem> historyItems)
        {
            if (!string.IsNullOrEmpty(filePath))
            {
                lock (thisLock)
                {
                    Helpers.CreateDirectoryFromFilePath(filePath);

                    using (FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Read, 4096, FileOptions.WriteThrough))
                        using (XmlTextWriter writer = new XmlTextWriter(fileStream, 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.DateTime.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);
                        }

                    Backup(FilePath);
                }

                return(true);
            }

            return(false);
        }