Beispiel #1
0
        public string GetValue()
        {
            var rv   = this.GraphSerializeWithDefaults();
            var data = LengthEncoder.MakeReadable(rv, "\t");

            File.AppendAllText("stringabledump.txt", data + Environment.NewLine);

            return(rv);
        }
Beispiel #2
0
        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");
        }))
        {
        }
Beispiel #3
0
        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);
        }