public string GetValue() { var rv = this.GraphSerializeWithDefaults(); var data = LengthEncoder.MakeReadable(rv, "\t"); File.AppendAllText("stringabledump.txt", data + Environment.NewLine); return(rv); }
public GraphingTest() : base(LogicOf <Nothing> .New((x) => { //build an object up var id = "id".BuildAsId(); var guid = Guid.NewGuid(); var hasGuid = id.HasGUID(guid); var now = DateTime.Now; var hasDateCreated = hasGuid.HasDateCreated(now); var lastTouchedDate = DateTime.Now; var hasLastTouched = hasDateCreated.HasDateLastTouched(lastTouchedDate); var localMachineName = NetUtil.GetLocalMachineName(); var hasLM = hasLastTouched.HasLocalMachineName(); var ip = NetUtil.GetLocalIPAddresses().First(); var hasIP = hasLM.HasIP(ip); var hasRS = hasIP.HasRandomString("blah"); var hasV = hasRS.HasVersion("v"); //graph it var objState1 = hasV.GraphSerializeWithDefaults(); var readable = LengthEncoder.MakeReadable(objState1, "\t"); readable.WithEach(i => { Debug.WriteLine(i); }); var graph = Graph.Parse(objState1, ValueManagerChainOfResponsibility.NewDefault()); var readable2 = GraphingUtil.ConvertToXML(graph).ToString(); var obj2 = objState1.GraphDeserializeWithDefaults() as HasVersionDecoration; Condition.Requires(obj2.Version).IsEqualTo("v"); Condition.Requires(obj2.As <HasRandomStringDecoration>(true).RandomString).IsEqualTo("blah"); Condition.Requires(obj2.As <HasIPDecoration>(true).IPAddress.ToString()).IsEqualTo(ip.ToString()); Condition.Requires(obj2.As <HasMachineNameDecoration>(true).MachineName).IsEqualTo(localMachineName); Condition.Requires(obj2.As <HasDateLastTouchedDecoration>(true).DateLastTouched.ToString()).IsEqualTo(lastTouchedDate.ToUniversalTime().ToString()); Condition.Requires(obj2.As <HasDateCreatedDecoration>(true).DateCreated.ToString()).IsEqualTo(now.ToUniversalTime().ToString()); Condition.Requires(obj2.As <HasGUIDDecoration>(true).GUID).IsEqualTo(guid); Condition.Requires(obj2.Id.ToString()).IsEqualTo("id"); hasV.Version = "v2"; var objState2 = hasV.GraphSerializeWithDefaults(); var obj3 = objState2.GraphDeserializeWithDefaults() as HasVersionDecoration; Condition.Requires(obj3.Version).IsEqualTo("v2"); })) { }
public static XDocument ConvertToXML(Graph graph) { XDocument doc = new XDocument(); XElement root = new XElement("root"); doc.Add(root); var nodes = graph.NodeStore.GetAll(); nodes = nodes.OrderBy((x) => { return(x.TraversalIndex); }).ToList(); XElement parent = null; nodes.WithEach(node => { var name = ScrubBackingFieldName(node.Path.CurrentSegment.Path); var nameArr = name.Split(new string[] { " " }, StringSplitOptions.None); var nodeName = nameArr[0]; var depth = nameArr.Length == 2 ? nameArr[1] : "0"; var mgr = graph.ChainOfResponsibility.GetValueManagerById(node.ValueManagerId); var context = string.Join(",", LengthEncoder.MakeReadable(node.Context, "").ToArray()); XElement layer = new XElement(nodeName, new XAttribute("i", node.TraversalIndex), new XAttribute("depth", depth), new XAttribute("mgr", node.ValueManagerId), context); //if (parent == null) //{ root.Add(layer); //} //else //{ // parent.Add(layer); //} //parent = layer; }); return(doc); }