public static void OpenDocument(string fileName, ShapeDocument shapeDocument) { FileInfo fileInfo = new FileInfo(fileName); FileAttributes fileAttribute = fileInfo.Attributes & FileAttributes.ReadOnly; if (fileAttribute == FileAttributes.ReadOnly) { FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader reader = new BinaryReader(stream); ShapeDocument doc = new ShapeDocument(); doc.Deserialize(reader); shapeDocument = doc; reader.Close(); } else { FileStream stream = new FileStream(fileName, FileMode.Open); BinaryReader reader = new BinaryReader(stream); ShapeDocument doc = new ShapeDocument(); shapeDocument.Deserialize(reader); reader.Close(); } }
public static void SaveDocument(string fileName, ShapeDocument shapeDocument) { FileInfo fileInfo = new FileInfo(fileName); FileAttributes fileAttribute = fileInfo.Attributes & FileAttributes.Hidden; if (fileAttribute == FileAttributes.Hidden) { FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate); BinaryWriter writer = new BinaryWriter(stream); shapeDocument.Serialize(writer); writer.Close(); stream.Close(); } else { FileStream stream = new FileStream(fileName, FileMode.Create); BinaryWriter writer = new BinaryWriter(stream); shapeDocument.Serialize(writer); writer.Close(); stream.Close(); } }
//Add shapeDocument to VectorImage public static void LoadDocument(ShapeDocument shapeDocument, VectorImage vectorImage, DistanceUnit currentUnit) { IList <Layer> layerList = shapeDocument.LayerList; DistanceUnit currentUnitType = shapeDocument.DistanceUnit; List <ShapeBase> markableShapeList = new List <ShapeBase>(); for (int layerIndex = 0; layerIndex < layerList.Count; layerIndex++) { IList <ShapeBase> shapeList = layerList[layerIndex].ShapeList; for (int shapeIndex = 0; shapeIndex < shapeList.Count; shapeIndex++) { ShapeBase shape = shapeList[shapeIndex]; if (shape.Markable) { List <ShapeBase> markingShapeList = GenerateMarkingShape(shape); foreach (ShapeBase markingShape in markingShapeList) { AddShapeToVectorImage(vectorImage, markingShape, currentUnit); } } } } }