22using MTConnect . SysML . Models . Devices ;
33using MTConnect . SysML . Models . Observations ;
44using System . Collections ;
5- using System . Collections . Generic ;
6- using System . IO ;
7- using System . Linq ;
85
96namespace MTConnect . SysML . CSharp
107{
@@ -18,10 +15,29 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
1815 if ( exportModels != null )
1916 {
2017 var classModels = exportModels . Where ( o => typeof ( MTConnectClassModel ) . IsAssignableFrom ( o . GetType ( ) ) ) . Select ( o => ( MTConnectClassModel ) o ) ;
21- var dClassModels = classModels . Where ( o => o . Name != null ) . ToDictionary ( o => o . Name ) ;
18+
19+ var dClassModels = new Dictionary < string , MTConnectClassModel > ( ) ;
20+ foreach ( var classModel in classModels )
21+ {
22+ if ( ! string . IsNullOrEmpty ( classModel . Name ) )
23+ {
24+ if ( ! dClassModels . ContainsKey ( classModel . Name ) ) dClassModels . Add ( classModel . Name , classModel ) ;
25+ }
26+ }
27+ //var dClassModels = classModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
28+
2229
2330 var enumModels = exportModels . Where ( o => typeof ( MTConnectEnumModel ) . IsAssignableFrom ( o . GetType ( ) ) ) . Select ( o => ( MTConnectEnumModel ) o ) ;
24- var dEnumModels = enumModels . Where ( o => o . Name != null ) . ToDictionary ( o => o . Name ) ;
31+
32+ var dEnumModels = new Dictionary < string , MTConnectEnumModel > ( ) ;
33+ foreach ( var enumModel in enumModels )
34+ {
35+ if ( ! string . IsNullOrEmpty ( enumModel . Name ) )
36+ {
37+ if ( ! dEnumModels . ContainsKey ( enumModel . Name ) ) dEnumModels . Add ( enumModel . Name , enumModel ) ;
38+ }
39+ }
40+ //var dEnumModels = enumModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
2541
2642
2743 var templates = new List < ITemplateModel > ( ) ;
@@ -80,7 +96,11 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
8096 if ( ( ( MTConnectComponentType ) exportModel ) . Type == "Controllers" ) ( ( MTConnectComponentType ) exportModel ) . MinimumVersion = new Version ( 1 , 0 ) ;
8197 template = ComponentType . Create ( ( MTConnectComponentType ) exportModel ) ;
8298 }
83- else if ( typeof ( MTConnectCuttingToolMeasurementModel ) . IsAssignableFrom ( type ) ) template = CuttingToolMeasurementModel . Create ( ( MTConnectCuttingToolMeasurementModel ) exportModel ) ;
99+ else if ( typeof ( MTConnectMeasurementModel ) . IsAssignableFrom ( type ) )
100+ {
101+ if ( exportModel . Id . StartsWith ( "Assets.CuttingTools." ) ) template = CuttingToolMeasurementModel . Create ( ( MTConnectMeasurementModel ) exportModel ) ;
102+ //else if (exportModel.Id.StartsWith("Assets.Pallet.")) template = MeasurementModel.Create((MTConnectMeasurementModel)exportModel);
103+ }
84104 else if ( exportModel . Id . EndsWith ( "Result" ) )
85105 {
86106 template = DataSetResultModel . Create ( ( MTConnectClassModel ) exportModel ) ;
@@ -94,6 +114,7 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
94114 case "Devices.UnitsEnum" : template = EnumStringModel . Create ( ( MTConnectEnumModel ) exportModel , ConvertUnitEnum ) ; break ;
95115 case "Devices.NativeUnitsEnum" : template = EnumStringModel . Create ( ( MTConnectEnumModel ) exportModel , ConvertUnitEnum ) ; break ;
96116 case "Assets.CuttingTools.Measurements.MeasurementCodeEnum" : template = EnumStringModel . Create ( ( MTConnectEnumModel ) exportModel , ConvertMeasurementCodeEnum ) ; break ;
117+ //case "Assets.Pallet.Measurements.MeasurementCodeEnum": template = EnumStringModel.Create((MTConnectEnumModel)exportModel, ConvertMeasurementCodeEnum); break;
97118 default : template = EnumModel . Create ( ( MTConnectEnumModel ) exportModel ) ; break ;
98119 }
99120 }
@@ -125,6 +146,7 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
125146 //case "Devices.Configurations.CriticalityType": ((EnumModel)template).Values.Add(new MTConnectEnumValueModel { Name = "NOT_SPECIFIED" }); break;
126147
127148 case "Assets.Asset" : ( ( ClassModel ) template ) . IsPartial = true ; break ;
149+ case "Assets.PhysicalAsset" : ( ( ClassModel ) template ) . IsPartial = true ; break ;
128150 case "Assets.ComponentConfigurationParameters.ComponentConfigurationParameters" :
129151 ( ( ClassModel ) template ) . IsPartial = true ;
130152 ( ( ClassModel ) template ) . Id += "Asset" ;
@@ -150,6 +172,10 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
150172 ( ( ClassModel ) template ) . IsPartial = true ;
151173 ( ( ClassModel ) template ) . IsAbstract = false ;
152174 break ;
175+ case "Assets.CuttingTools.ToolingMeasurement" :
176+ ( ( ClassModel ) template ) . IsPartial = true ;
177+ ( ( ClassModel ) template ) . IsAbstract = false ;
178+ break ;
153179 case "Assets.Files.File" :
154180 ( ( ClassModel ) template ) . IsPartial = true ;
155181 ( ( ClassModel ) template ) . Id += "Asset" ;
@@ -168,6 +194,18 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
168194 ( ( ClassModel ) template ) . Name += "Asset" ;
169195 if ( ( ( ClassModel ) template ) . ParentName != null && ( ( ClassModel ) template ) . ParentName != "Asset" ) ( ( ClassModel ) template ) . ParentName += "Asset" ;
170196 break ;
197+ case "Assets.Fixture.Fixture" :
198+ ( ( ClassModel ) template ) . IsPartial = true ;
199+ ( ( ClassModel ) template ) . Id += "Asset" ;
200+ ( ( ClassModel ) template ) . Name += "Asset" ;
201+ //if (((ClassModel)template).ParentName != null && ((ClassModel)template).ParentName != "Asset") ((ClassModel)template).ParentName += "Asset";
202+ break ;
203+ case "Assets.Pallet.Pallet" :
204+ ( ( ClassModel ) template ) . IsPartial = true ;
205+ ( ( ClassModel ) template ) . Id += "Asset" ;
206+ ( ( ClassModel ) template ) . Name += "Asset" ;
207+ //if (((ClassModel)template).ParentName != null && ((ClassModel)template).ParentName != "Asset") ((ClassModel)template).ParentName += "Asset";
208+ break ;
171209 case "Assets.QIF.QIFDocumentWrapper" :
172210 ( ( ClassModel ) template ) . IsPartial = true ;
173211 ( ( ClassModel ) template ) . Id += "Asset" ;
0 commit comments