Skip to content

Commit 0c62f8c

Browse files
Add generation for InterfaceDispatcherData and fixed some generation bugs (#19)
* Fix some generation issues * generate InterfaceDispatcherData in TraditionalBridgeGenerator
1 parent d36a4a8 commit 0c62f8c

3 files changed

Lines changed: 10 additions & 6 deletions

File tree

HarmonyCoreCodeGen.Core/Generator/SignalRGenerator.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace HarmonyCoreGenerator.Generator
3333
foreach iface in GeneratorBase.GetTargetInterfaces(^nameof(SignalRGenerator), targetSolution)
3434
begin
3535
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate a SignalR hub for the Interface", targetSolution.ControllersNamespace, targetSolution.ControllersFolder, iface, ^nameof(SignalRGenerator),
36-
& new string[#] { "SignalRHub" }, new UserToken[#] { new UserToken("MODELS_NAMESPACE", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models")) }, Path.Combine(targetSolution.TemplatesFolder,"SignalR")))
36+
& new string[#] { "SignalRHub" }, new UserToken[#] { new UserToken("MODELS_NAMESPACE", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models")), new UserToken("DTOS_NAMESPACE", iface.Name) }, Path.Combine(targetSolution.TemplatesFolder,"SignalR")))
3737
end
3838

3939
mreturn result

HarmonyCoreCodeGen.Core/Generator/TraditionalBridgeGenerator.dbl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,29 @@ namespace HarmonyCoreGenerator.Generator
5353
begin
5454
;; Request and response models for the service class methods (.NET side)
5555
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate request and response models for the service class methods", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, iface, ^nameof(TraditionalBridgeGenerator),
56-
& new string[#] { "MultiInterfaceServiceModels" }, new UserToken[#] { modelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
56+
& new string[#] { "MultiInterfaceServiceModels" }, new UserToken[#] { modelsNamespace, new UserToken("DTOS_NAMESPACE", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models"))}, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
5757
end
5858
else
5959
begin
6060
;; Request and response models for the service class methods (.NET side)
6161
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate request and response models for the service class methods", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, iface, ^nameof(TraditionalBridgeGenerator),
62-
& new string[#] { "InterfaceServiceModels" }, new UserToken[#] { modelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
62+
& new string[#] { "InterfaceServiceModels" }, new UserToken[#] { modelsNamespace, new UserToken("DTOS_NAMESPACE", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models")) }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
6363
end
6464

6565
;; Service class (.NET side)
6666
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate the service class (.NET side)", targetSolution.ControllersNamespace, targetSolution.ControllersFolder, iface, ^nameof(TraditionalBridgeGenerator),
67-
& new string[#] { "InterfaceService" }, new UserToken[#] { modelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
67+
& new string[#] { "InterfaceService" }, new UserToken[#] { modelsNamespace, new UserToken("DTOS_NAMESPACE", String.Format("{0}.{1}", targetSolution.TraditionalBridgeFolder, iface.Name)) }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
6868

6969
;; Parameter model classes (Traditional Side)
7070
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate data models for structure parameters", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models"), Path.Combine(targetSolution.TraditionalBridgeFolder,"Models"), iface, ^nameof(TraditionalBridgeGenerator),
7171
& new string[#] { "TraditionalModel", "TraditionalMetadata" }, new UserToken[#] { modelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
7272

73-
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate model and metadata classes", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, iface, ^nameof(ModelGenerator), new string[#] { "ODataModel", "ODataMetaData" }, ^null, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
73+
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate model and metadata classes", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, iface, ^nameof(TraditionalBridgeGenerator), new string[#] { "ODataModel", "ODataMetaData" }, ^null, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
7474

75+
;; Add InterfaceDispatcherData
76+
data interfaceDispatcherDataTask = StructureTaskHelper(targetSolution, "Generate InterfaceDispatcherData", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Dispatchers"), Path.Combine(targetSolution.TraditionalBridgeFolder,"Dispatchers"), true, ^nameof(TraditionalBridgeGenerator), new string[#] { "InterfaceDispatcherData" }, new UserToken[#] { new UserToken("SMC_INTERFACE", iface.Name), new UserToken("DTOS_NAMESPACE", iface.Name) }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge"))
77+
interfaceDispatcherDataTask.Interface = iface.Name
78+
result.Add(interfaceDispatcherDataTask)
7579
end
7680
mreturn result
7781
endmethod

HarmonyCoreCodeGen.Core/Generator/WebApiGenerator.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace HarmonyCoreGenerator.Generator
3535
;; Web API controller (.NET side)
3636
data modelsNamespace = new UserToken("MODELS_NAMESPACE", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models"))
3737
result.Add(GeneratorBase.InterfaceTaskHelper(targetSolution, "Generate Web API controller (.NET side)", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Models"), Path.Combine(targetSolution.TraditionalBridgeFolder,"Models"), iface, ^nameof(WebApiGenerator),
38-
& new string[#] { "InterfaceController" }, new UserToken[#] { modelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
38+
& new string[#] { "InterfaceController" }, new UserToken[#] { modelsNamespace, new UserToken("DTOS_NAMESPACE", iface.Name) }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
3939

4040
;; Postman tests for the WebAPI operations
4141

0 commit comments

Comments
 (0)