public void Process(Assembly assembly, Model.Model model) { assembly.ExportedTypes.Where(t => t.GetTypeInfo().IsClass&& !t.GetTypeInfo().IsAbstract).ForEach(t => { var element = new Element(TypeLabeler(t)); model.Add(element); foreach (var p in _classProcessors) { p(t, element); } foreach (var property in t.GetRuntimeProperties()) { var type = property.PropertyType; var name = property.Name; var r = new Relationship { SourceName = t.FullName, Label = name, TargetName = type.FullName }; model.Add(r); foreach (var pa in _propertyProcessors) { pa(property, r); } } }); model.ResolveNodes(); }
public void SerializeModelDocumentAndDeserialize() { FilePath path = "C:/TEMP/SerializeModelDocumentAndDeserializeTest.test"; var model = new Model.Model(); model.Add(new LinearElement(0, 0, 0, 10, 0, 0)); var doc = new ModelDocument(model); doc.SaveAs(path); var doc2 = ModelDocument.Load(path); Assert.AreEqual(1, doc2.Model.Elements.Count); }
private void PerformCurrentOperation() { switch (state.CurrentOperation) { case Operation.Add: model.Add(); break; case Operation.Sub: model.Subtract(); break; case Operation.Mult: model.Multiply(); break; case Operation.Div: model.Divide(); break; } }