protected void Dispatch(IDocumentItem documentItem, PdfDocumentWriter writer, Context context) { if (!documentItem.Hidden) { this.GetType().GetMethod("Handle" + documentItem.GetType().Name, BindingFlags.Instance | BindingFlags.NonPublic).Invoke(this, new object[] { documentItem, writer, context }); } }
public IDocument CreateDocument(IDocumentItem item) { if (item is IDiagram) return new DiagramDocument((IDiagram)item, DockForm); else if (item is TemplateFile) return new TemplateDocument((TemplateFile)item, DockForm); throw new NotSupportedException(item.GetType().Name); }
public string SerializeToText(IDocumentItem obj) { var BinarySerializer = new DataContractSerializer(obj.GetType()); using (var ms = new MemoryStream()) { BinarySerializer.WriteObject(ms, obj); return(Encoding.UTF8.GetString(ms.ToArray())); } }
public string SerializeToText(IDocumentItem obj) { var devidedTypes = typeof(MorestachioDocument).Assembly.GetTypes().Where(e => e.IsClass) .Where(e => typeof(IDocumentItem).IsAssignableFrom(e)).ToArray(); var XmlSerializer = new XmlSerializer(obj.GetType(), devidedTypes); using (var ms = new MemoryStream()) { XmlSerializer.Serialize(ms, obj); return(Encoding.UTF8.GetString(ms.ToArray())); } }
private void SerilalizeAndDeserialize(IDocumentItem document) { var text = DocumentSerializerStrategy.SerializeToText(document); var deserialized = DocumentSerializerStrategy.DeSerializeToText(text, document.GetType()); var deserializedText = DocumentSerializerStrategy.SerializeToText(deserialized); Assert.That(document, Is.EqualTo(deserialized), () => { return($"Object left is: " + $"\"{text}\" " + $"and right ist " + $"\"{deserializedText}\"" + $""); }); Assert.That(deserializedText, Is.EqualTo(text)); }