Skip to content

Commit f25db9a

Browse files
author
Roelant Vos
committed
- Reverted TemplateSampleBasic.handlebars
- Moved HandleBarsHelper.cs to DataWarehouseAutomation project - Upgraded to handlebars.net 2.0.4 - Added freeform to test projects / examples
1 parent ee62d7e commit f25db9a

21 files changed

Lines changed: 68 additions & 309 deletions

File tree

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/DataConnection.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Text;
1+
using System.Collections.Generic;
42
using Newtonsoft.Json;
53

64
namespace DataWarehouseAutomation

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/DataWarehouseAutomation.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8+
<PackageReference Include="Handlebars.Net" Version="2.0.4" />
89
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
910
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.13" />
1011
</ItemGroup>

ClassLibrary/DataWarehouseAutomation/RunDwhAutomation/HandleBarsHelpers.cs renamed to ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/HandleBarsHelpers.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using System.IO;
33
using HandlebarsDotNet;
44

5-
namespace RunDwhAutomation
5+
namespace DataWarehouseAutomation
66
{
7-
class HandleBarsHelpers
7+
public class HandleBarsHelpers
88
{
99
public static void RegisterHandleBarsHelpers()
1010
{
@@ -115,10 +115,11 @@ public static void RegisterHandleBarsHelpers()
115115
// }
116116
//})
117117

118+
118119
// Accept two values, and see if they are the same, use as block helper.
119120
// Usage {{#stringcompare string1 string2}} do something {{else}} do something else {{/stringcompare}}
120121
// Usage {{#stringcompare string1 string2}} do something {{/stringcompare}}
121-
Handlebars.RegisterHelper("stringequal", (TextWriter output, HelperOptions options, dynamic context, object[] arguments) =>
122+
Handlebars.RegisterHelper("stringequal", (output, options, context, arguments) =>
122123
{
123124
if (arguments.Length != 2) throw new HandlebarsException("The {{stringcompare}} functions requires exactly two arguments.");
124125

@@ -138,7 +139,7 @@ public static void RegisterHandleBarsHelpers()
138139
// Accept two values, and do something if they are the different.
139140
// Usage {{#stringdiff string1 string2}} do something {{else}} do something else {{/stringdiff}}
140141
// Usage {{#stringdiff string1 string2}} do something {{/strinstringdiffgcompare}}
141-
Handlebars.RegisterHelper("stringdiff", (TextWriter output, HelperOptions options, dynamic context, object[] arguments) =>
142+
Handlebars.RegisterHelper("stringdiff", (output, options, context, arguments) =>
142143
{
143144
if (arguments.Length != 2) throw new HandlebarsException("The {{stringdiff}} functions requires exactly two arguments.");
144145

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/obj/DataWarehouseAutomation.csproj.nuget.g.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
55
</PropertyGroup>
66
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
7-
<Import Project="$(NuGetPackageRoot)netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets')" />
7+
<Import Project="$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('$(NuGetPackageRoot)netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
88
</ImportGroup>
99
</Project>

ClassLibrary/DataWarehouseAutomation/Example_Project/Examples.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
<WarningLevel>4</WarningLevel>
3333
</PropertyGroup>
3434
<ItemGroup>
35-
<Reference Include="Handlebars, Version=1.0.0.0, Culture=neutral, PublicKeyToken=623b39d890c8829c, processorArchitecture=MSIL">
36-
<HintPath>..\packages\Handlebars.Net.1.8.0.Signed.1.8.0\lib\portable-net45+sl50+win+wpa81\Handlebars.dll</HintPath>
35+
<Reference Include="Handlebars, Version=2.0.4.0, Culture=neutral, PublicKeyToken=22225d0bf33cd661, processorArchitecture=MSIL">
36+
<HintPath>..\packages\Handlebars.Net.2.0.4\lib\net46\Handlebars.dll</HintPath>
3737
</Reference>
3838
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
3939
<HintPath>..\..\ClassLibrary\DataWarehouseAutomation\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -51,7 +51,6 @@
5151
<Reference Include="System.Xml" />
5252
</ItemGroup>
5353
<ItemGroup>
54-
<Compile Include="HandleBarsHelpers.cs" />
5554
<Compile Include="Program.cs" />
5655
<Compile Include="Properties\AssemblyInfo.cs" />
5756
</ItemGroup>

ClassLibrary/DataWarehouseAutomation/Example_Project/HandleBarsHelpers.cs

Lines changed: 0 additions & 140 deletions
This file was deleted.

ClassLibrary/DataWarehouseAutomation/Example_Project/Program.cs

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,66 +3,91 @@
33
using DataWarehouseAutomation;
44
using HandlebarsDotNet;
55
using Newtonsoft.Json;
6+
using Newtonsoft.Json.Linq;
67

78
namespace Example_Handlebars
89
{
910
class Program
1011
{
1112
static void Main(string[] args)
1213
{
13-
HandleBarsHelpers.RegisterHandleBarsHelpers();
14+
HandleBarsHelpers.RegisterHandleBarsHelpers();;
1415

15-
// Local variables
16+
// Local variables, for reuse
1617
string stringTemplate = "";
1718
string jsonInput = "";
1819
string result = "";
19-
DataObjectMappings deserialisedMapping = new DataObjectMappings();
20+
//DataObjectMappings deserialisedMapping = new DataObjectMappings();
21+
var deserialisedMapping = new JObject();
22+
var template = Handlebars.Compile("");
2023

2124
// Simple example template
22-
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleBasic.handlebars");
23-
var template = Handlebars.Compile(stringTemplate);
24-
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleBasic.json");
25-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
26-
result = template(deserialisedMapping);
27-
Console.WriteLine(result);
25+
try
26+
{
27+
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleBasic.handlebars");
28+
template = Handlebars.Compile(stringTemplate);
29+
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleBasic.json");
30+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
31+
deserialisedMapping = JObject.Parse(jsonInput);
32+
result = template(deserialisedMapping);
33+
Console.WriteLine(result);
34+
}
35+
catch (Exception ex)
36+
{
37+
Console.WriteLine($"An issue was encountered: {ex}");
38+
}
2839

2940
// Example using extensions
3041
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleBasicWithExtensions.handlebars");
3142
template = Handlebars.Compile(stringTemplate);
3243
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleBasicWithExtensions.json");
33-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
44+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
45+
deserialisedMapping = JObject.Parse(jsonInput);
3446
result = template(deserialisedMapping);
3547
Console.WriteLine(result);
3648

3749
// Example using more than one mapping at data item level
3850
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleMultipleDataItemMappings.handlebars");
3951
template = Handlebars.Compile(stringTemplate);
4052
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleMultipleDataItemMappings.json");
41-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
53+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
54+
deserialisedMapping = JObject.Parse(jsonInput);
4255
result = template(deserialisedMapping);
4356
Console.WriteLine(result);
4457

4558
// Example generating DDL statements
4659
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleSimpleDDL.handlebars");
4760
template = Handlebars.Compile(stringTemplate);
4861
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleSimpleDDL.json");
49-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
62+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
63+
deserialisedMapping = JObject.Parse(jsonInput);
5064
result = template(deserialisedMapping);
5165
Console.WriteLine(result);
5266

5367
// Example using OneOf / swapping a source for a query
5468
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleCalculation.handlebars");
5569
template = Handlebars.Compile(stringTemplate);
5670
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleCalculation.json");
57-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
71+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
72+
deserialisedMapping = JObject.Parse(jsonInput);
5873
result = template(deserialisedMapping);
5974
Console.WriteLine(result);
6075

6176
// Data Vault Satellite example
6277
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSatelliteView.handlebars");
6378
template = Handlebars.Compile(stringTemplate);
6479
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampeVDW_Sat_Customer_v161.json");
65-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
80+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
81+
deserialisedMapping = JObject.Parse(jsonInput);
82+
result = template(deserialisedMapping);
83+
Console.WriteLine(result);
84+
85+
//Free form example
86+
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Templates\TemplateSampleFreeForm.handlebars");
87+
template = Handlebars.Compile(stringTemplate);
88+
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\Sample_Metadata\sampleFreeForm.json");
89+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
90+
deserialisedMapping = JObject.Parse(jsonInput);
6691
result = template(deserialisedMapping);
6792
Console.WriteLine(result);
6893

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Handlebars.Net.1.8.0.Signed" version="1.8.0" targetFramework="net461" />
3+
<package id="Handlebars.Net" version="2.0.4" targetFramework="net461" />
44
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net461" />
55
<package id="Newtonsoft.Json.Schema" version="3.0.13" targetFramework="net461" />
66
</packages>

ClassLibrary/DataWarehouseAutomation/RunDwhAutomation/Program.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
using System.IO;
33
using HandlebarsDotNet;
44
using CommandLine;
5-
using Newtonsoft.Json;
6-
using Newtonsoft.Json.Linq;
75
using DataWarehouseAutomation;
6+
using Newtonsoft.Json.Linq;
87

98
namespace RunDwhAutomation
109
{

ClassLibrary/DataWarehouseAutomation/RunDwhAutomation/RunDwhAutomation.csproj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@
5757
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
5858
<HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
5959
</Reference>
60-
<Reference Include="Handlebars, Version=1.11.5.0, Culture=neutral, PublicKeyToken=22225d0bf33cd661, processorArchitecture=MSIL">
61-
<HintPath>..\packages\Handlebars.Net.1.11.5\lib\net452\Handlebars.dll</HintPath>
60+
<Reference Include="Handlebars, Version=2.0.4.0, Culture=neutral, PublicKeyToken=22225d0bf33cd661, processorArchitecture=MSIL">
61+
<HintPath>..\packages\Handlebars.Net.2.0.4\lib\net46\Handlebars.dll</HintPath>
6262
</Reference>
6363
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
6464
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -73,7 +73,6 @@
7373
<Reference Include="System.Xml" />
7474
</ItemGroup>
7575
<ItemGroup>
76-
<Compile Include="HandleBarsHelpers.cs" />
7776
<Compile Include="Program.cs" />
7877
<Compile Include="Properties\AssemblyInfo.cs" />
7978
<Compile Include="VdwInterfaceObjectModel.cs" />
@@ -102,12 +101,12 @@
102101
</BootstrapperPackage>
103102
</ItemGroup>
104103
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
105-
<Import Project="..\packages\Fody.6.0.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.0.0\build\Fody.targets')" />
106104
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
107105
<PropertyGroup>
108106
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
109107
</PropertyGroup>
110-
<Error Condition="!Exists('..\packages\Fody.6.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.0.0\build\Fody.targets'))" />
111108
<Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
109+
<Error Condition="!Exists('..\packages\Fody.6.3.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.3.0\build\Fody.targets'))" />
112110
</Target>
111+
<Import Project="..\packages\Fody.6.3.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.3.0\build\Fody.targets')" />
113112
</Project>

0 commit comments

Comments
 (0)