/// <summary> /// Writes to file the content from other file. /// </summary> /// <param name="sourceFile">The source file.</param> /// <param name="targetFile">The target file.</param> /// <param name="comment">The comment.</param> public static void WriteToFile(UnifiedFile sourceFile, UnifiedFile targetFile, string comment) { using (Stream stream = sourceFile.Open()) { WriteToFile(stream, targetFile, comment); } }
/// <summary> /// Saves the source stream to a unified file and adds a comment if the file implrments IVersioningFile. /// </summary> /// <param name="sourceStream">The source stream.</param> /// <param name="targetFile">The target file.</param> /// <param name="comment">A comment to add when checking in a versioning file.</param> public static void WriteToFile(Stream sourceStream, UnifiedFile targetFile, string comment) { // It may be a versioning file IVersioningFile versioningFile = targetFile as IVersioningFile; if (versioningFile != null) { ThrowIfCheckedOut(versioningFile); if (!versioningFile.IsCheckedOut) { versioningFile.CheckOut(); } } // Copy the source stream to the target file stream. using (Stream writeStream = targetFile.Open(FileMode.Create, FileAccess.Write)) { StreamConsumer.CopyToEnd(sourceStream, writeStream); } // If versioning, then check in with the supplied comment. if (versioningFile != null) { versioningFile.CheckIn(comment ?? String.Empty); } }
private void WriteError(string entryId, UnifiedFile file, Error error) { using (var fileStream = file.Open(FileMode.Create, FileAccess.Write, FileShare.None)) { var writer = new XmlTextWriter(fileStream, Encoding.UTF8) { Formatting = Formatting.Indented }; writer.WriteStartElement("error"); writer.WriteAttributeString("errorId", entryId); ErrorXml.Encode(error, writer); writer.WriteEndElement(); writer.Flush(); } }
private ErrorLogEntry ReadError(UnifiedFile file) { using (var stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var reader = new XmlTextReader(stream); if (reader.IsStartElement("error") == false) { return null; } var entryId = reader.GetAttribute("errorId"); var error = ErrorXml.Decode(reader); return new ErrorLogEntry(this, entryId, error); } }