-
Notifications
You must be signed in to change notification settings - Fork 85
/
Json2CsharpArchitecture.drawio
119 lines (119 loc) · 12.5 KB
/
Json2CsharpArchitecture.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<mxfile host="app.diagrams.net" modified="2022-11-07T09:17:50.076Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" etag="E8l97H6kgVKS7UraFKA3" version="20.5.3" type="github">
<diagram id="F3-HToHU0AaHVmi-pwG5" name="Page-1">
<mxGraphModel dx="3694" dy="1588" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-12" value="JsonClassGenerator.cs" style="swimlane;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;rounded=1;fontSize=14;fontStyle=1;strokeWidth=2;resizeParent=0;resizeLast=1;shadow=0;dashed=0;align=center;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="75" y="430" width="190" height="90" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-14" value="<font style="font-size: 18px;">GenerateClasses(....)</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="k6L5swOgqQ6Sf8f8yYpH-12">
<mxGeometry y="30" width="190" height="60" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=default;strokeWidth=2;fontSize=18;" edge="1" parent="1" source="k6L5swOgqQ6Sf8f8yYpH-16">
<mxGeometry relative="1" as="geometry">
<mxPoint x="75" y="485" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-16" value="JSON input" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="-75" y="470" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=default;strokeWidth=2;fontSize=18;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="265" y="483.58" as="sourcePoint" />
<mxPoint x="315" y="483.58" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=2;fontSize=14;" edge="1" parent="1" source="k6L5swOgqQ6Sf8f8yYpH-21">
<mxGeometry relative="1" as="geometry">
<mxPoint x="410" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-21" value="<span style="font-weight: normal;"><font style="font-size: 14px;">Parse Json</font></span>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="330" y="360" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-24" value="<span style="font-weight: normal;"><font style="font-size: 14px;">Create a list of JObjects</font></span>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="330" y="440" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-25" value="<p style="line-height: 120%; font-size: 10px;"><font style="font-size: 10px;"><span style="font-weight: normal;"><font style="font-size: 10px;">Analyse Types using&nbsp;</font></span>GenerateClass <span style="font-weight: 400;">Method</span></font></p>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="330" y="520" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=2;fontSize=14;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="409.9" y="520" as="targetPoint" />
<mxPoint x="409.9" y="490" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-29" value="<p style="line-height: 120%; font-size: 10px;"><span style="font-weight: 400;">Use the ICodeWriter Interface to write classes&nbsp;</span></p>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="330" y="600" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=2;fontSize=14;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="409.80000000000007" y="600" as="targetPoint" />
<mxPoint x="409.80000000000007" y="570" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-32" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;flipH=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;fontSize=10;rotation=-90;strokeWidth=4;" vertex="1" parent="1">
<mxGeometry x="280" y="100" width="40" height="470" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-33" value="<b><font style="font-size: 17px;">JSON Parsing/ Cleaning/ Analyzing</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=4;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="150" y="280" width="330" height="30" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-34" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;flipH=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;fontSize=10;rotation=-90;strokeWidth=4;" vertex="1" parent="1">
<mxGeometry x="995" y="-95" width="40" height="860" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-35" value="<b><font style="font-size: 17px;">Writing JSON Types to Classes</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=4;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="850" y="280" width="330" height="30" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-36" value="JsonClassGenerator.cs" style="swimlane;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;rounded=1;fontSize=14;fontStyle=1;strokeWidth=2;resizeParent=0;resizeLast=1;shadow=0;dashed=0;align=center;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="570" y="410" width="220" height="90" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-37" value="<font style="font-size: 18px;">WriteClassesToFile(...)</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="k6L5swOgqQ6Sf8f8yYpH-36">
<mxGeometry y="30" width="220" height="60" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=default;strokeWidth=2;fontSize=18;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="790" y="454.5799999999999" as="sourcePoint" />
<mxPoint x="840" y="454.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-39" value="<font style="font-size: 14px;">ICodeWriter</font>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="840" y="390" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-40" value="<font style="font-size: 14px;">CSharpCodeWriter</font>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="830" y="480" width="200" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-41" value="<b><font style="font-size: 24px;">=</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="895" y="450" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-43" value="<font style="font-size: 14px;">CSharpCodeWriterConfig</font>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="810" y="570" width="240" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=default;strokeWidth=2;fontSize=18;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="k6L5swOgqQ6Sf8f8yYpH-43" target="k6L5swOgqQ6Sf8f8yYpH-40">
<mxGeometry relative="1" as="geometry">
<mxPoint x="935" y="559.9999999999999" as="sourcePoint" />
<mxPoint x="985" y="559.9999999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-45" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;flipH=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;strokeWidth=4;fontSize=24;" vertex="1" parent="1">
<mxGeometry x="1080" y="470" width="40" height="160" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-49" value="<span style="font-size: 14px; font-weight: 700;">CSharpCodeWriter.cs</span>" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=3;fontSize=24;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="1140" y="436.5" width="190" height="40" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-50" value="<font style="font-size: 14px;">WriteFileStart(...)</font>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="1140" y="491.5" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-51" value="<font style="font-size: 14px;">WriteFileEnd(...)</font>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="1140" y="546.5" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-52" value="<span style="font-size: 14px;">Etc...</span>" style="label;whiteSpace=wrap;html=1;image=img/clipart/Gear_128x128.png;fontSize=18;" vertex="1" parent="1">
<mxGeometry x="1140" y="603.5" width="190" height="50" as="geometry" />
</mxCell>
<mxCell id="k6L5swOgqQ6Sf8f8yYpH-54" value="<b><font style="font-size: 17px;">Each language has an implementation of the ICodeWriter Interface and a config class</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=4;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="762.5" y="620" width="315" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>