Skip to content

Commit 07c32a5

Browse files
authored
Merge pull request #54 from joadan/breakout-actions
Actions are now generated in a seperate class
2 parents 42d7e31 + 7888e5a commit 07c32a5

20 files changed

Lines changed: 946 additions & 271 deletions

src/Linq2OData.Generator/ClientGenerator.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,20 @@ private void GenerateClientCode()
8080
var templateHelperText = new ClientHelperTemplate(request).TransformText();
8181
AddFile("Client", request.Name + "Helpers.cs", templateHelperText);
8282
}
83+
84+
GenerateActionsCode();
85+
}
86+
87+
private void GenerateActionsCode()
88+
{
89+
foreach (var clientMetadata in request.Metadata)
90+
{
91+
if (!clientMetadata.Metadata.Schemas.Any(s => s.Functions.Any()))
92+
continue;
93+
94+
var actionsText = new ActionsTemplate(request, clientMetadata, (ODataVersion)version!).TransformText();
95+
AddFile("Client", clientMetadata.ActionsClassName + ".cs", actionsText);
96+
}
8397
}
8498

8599
private void GenerateTypesCode()

src/Linq2OData.Generator/Linq2OData.Generator.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@
2727
</ItemGroup>
2828

2929
<ItemGroup>
30+
<Compile Update="Templates\Client\ActionsTemplate.cs">
31+
<DesignTime>True</DesignTime>
32+
<AutoGen>True</AutoGen>
33+
<DependentUpon>ActionsTemplate.tt</DependentUpon>
34+
</Compile>
3035
<Compile Update="Templates\Client\ClientHelperTemplate.cs">
3136
<DesignTime>True</DesignTime>
3237
<AutoGen>True</AutoGen>
@@ -56,6 +61,10 @@
5661

5762

5863
<ItemGroup>
64+
<None Update="Templates\Client\ActionsTemplate.tt">
65+
<Generator>TextTemplatingFilePreprocessor</Generator>
66+
<LastGenOutput>ActionsTemplate.cs</LastGenOutput>
67+
</None>
5968
<None Update="Templates\Client\ClientHelperTemplate.tt">
6069
<Generator>TextTemplatingFilePreprocessor</Generator>
6170
<LastGenOutput>ClientHelperTemplate.cs</LastGenOutput>

src/Linq2OData.Generator/MetadataExtensions.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ private static string MapEdmTypeToCSharp(string edmType)
5858
internal string JsonName => $"{navigation.NamespaceName}_Json";
5959
internal string HelperName => $"{navigation.NamespaceName}_Helper";
6060
internal string ServiceName => $"{navigation.NamespaceName}_Service";
61+
internal string ActionsClassName => $"{navigation.NamespaceName}_Actions";
62+
internal string ActionsPropertyName => navigation.NamespaceName;
63+
internal string ActionsFieldName => $"{Helpers.ToCamelCaseVariable(navigation.NamespaceName)}";
6164

6265
internal string MetadataAsJson => System.Text.Json.JsonSerializer.Serialize(navigation.Metadata);
6366

0 commit comments

Comments
 (0)