Skip to content

Commit 839e24e

Browse files
committed
Finalising - part 1
1 parent 9474048 commit 839e24e

File tree

8 files changed

+65
-38
lines changed

8 files changed

+65
-38
lines changed

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample Templates", "Sample
4747
Sample_Templates\TemplateSampleFreeForm.Handlebars = Sample_Templates\TemplateSampleFreeForm.Handlebars
4848
Sample_Templates\TemplateSampleMultipleDataItemMappings.Handlebars = Sample_Templates\TemplateSampleMultipleDataItemMappings.Handlebars
4949
Sample_Templates\TemplateSampleSimpleDDL.Handlebars = Sample_Templates\TemplateSampleSimpleDDL.Handlebars
50+
Sample_Templates\TemplateSampleSourceQuery.Handlebars = Sample_Templates\TemplateSampleSourceQuery.Handlebars
5051
Sample_Templates\TemplateSatelliteView.Handlebars = Sample_Templates\TemplateSatelliteView.Handlebars
5152
EndProjectSection
5253
EndProject

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/HandleBarsHelpers.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,7 @@ public static void RegisterHandleBarsHelpers()
218218
{
219219
var expression = args[0];
220220

221-
var bla = "";
222-
223-
if (!String.IsNullOrEmpty(expression.ToString()) && args[0] is System.Text.Json.JsonElement value)
221+
if (!String.IsNullOrEmpty(expression.ToString()) && args[0] is JsonElement value)
224222
{
225223
expression = value.GetString();
226224
}

ClassLibrary/DataWarehouseAutomation/Example_Project/Program.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ static void Main(string[] args)
1515
var sampleTemplateDirectory = AppDomain.CurrentDomain.BaseDirectory+@"..\..\..\..\Sample_Templates\";
1616
var sampleMetadataDirectory = AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\..\Sample_Metadata\";
1717

18-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasic.handlebars", sampleMetadataDirectory + @"sampleBasic.json");
19-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasicWithExtensions.handlebars", sampleMetadataDirectory + @"sampleBasicWithExtensions.json");
20-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleMultipleDataItemMappings.handlebars", sampleMetadataDirectory + @"sampleMultipleDataItemMappings.json");
21-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSimpleDDL.handlebars", sampleMetadataDirectory + @"sampleSimpleDDL.json");
22-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCalculation.handlebars", sampleMetadataDirectory + @"sampleCalculation.json");
23-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSatelliteView.handlebars", sampleMetadataDirectory + @"sampleVDW_Sat_Customer_v161.json");
24-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleFreeForm.handlebars", sampleMetadataDirectory + @"sampleFreeForm.json");
25-
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCustomFunctions.handlebars", sampleMetadataDirectory + @"sampleCustomFunctions.json");
18+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasic.handlebars", sampleMetadataDirectory + @"sampleBasic.json");
19+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleBasicWithExtensions.handlebars", sampleMetadataDirectory + @"sampleBasicWithExtensions.json");
20+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleMultipleDataItemMappings.handlebars", sampleMetadataDirectory + @"sampleMultipleDataItemMappings.json");
21+
DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSourceQuery.handlebars", sampleMetadataDirectory + @"sampleSourceQuery.json");
22+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleSimpleDDL.handlebars", sampleMetadataDirectory + @"sampleSimpleDDL.json");
23+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCalculation.handlebars", sampleMetadataDirectory + @"sampleCalculation.json");
24+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSatelliteView.handlebars", sampleMetadataDirectory + @"sampleVDW_Sat_Customer_v161.json");
25+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleFreeForm.handlebars", sampleMetadataDirectory + @"sampleFreeForm.json");
26+
//DisplayPatternResult(sampleTemplateDirectory + @"TemplateSampleCustomFunctions.handlebars", sampleMetadataDirectory + @"sampleCustomFunctions.json");
2627

2728
Console.ReadKey();
2829
}
@@ -38,12 +39,12 @@ private static void DisplayPatternResult(string patternFile, string jsonMetadata
3839
// Fetch the content of the Json files
3940
string jsonInput = File.ReadAllText(jsonMetadataFile);
4041

41-
//ar deserialisedMapping = JsonConvert.DeserializeObject<ExpandoObject>(jsonInput, new ExpandoObjectConverter()); -- This is the old Newtonsoft expando object approach
42-
//var deserialisedMapping = System.Text.Json.JsonSerializer.Deserialize<ExpandoObject>(jsonInput);
42+
//ar deserializedMapping = JsonConvert.DeserializeObject<ExpandoObject>(jsonInput, new ExpandoObjectConverter()); -- This is the old Newtonsoft expando object approach
43+
//var deserializedMapping = System.Text.Json.JsonSerializer.Deserialize<ExpandoObject>(jsonInput);
4344

44-
JsonNode deserialisedMapping = System.Text.Json.JsonSerializer.Deserialize<JsonNode>(jsonInput);
45+
JsonNode deserializedMapping = System.Text.Json.JsonSerializer.Deserialize<JsonNode>(jsonInput);
4546

46-
var result = template(deserialisedMapping);
47+
var result = template(deserializedMapping);
4748
Console.WriteLine(result);
4849
Console.ReadKey();
4950
}

ClassLibrary/DataWarehouseAutomation/RunDwhAutomation/Program.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,10 @@ private static void RunAutomation(Options options, string inputFileName, string
164164
var stringTemplate = File.ReadAllText(options.pattern);
165165
var template = Handlebars.Compile(stringTemplate);
166166

167-
//var deserialisedMapping = JsonConvert.DeserializeObject<VdwDataObjectMappings>(jsonInput);
168-
var deserialisedMapping = JObject.Parse(jsonInput);
167+
//var deserializedMapping = JsonConvert.DeserializeObject<VdwDataObjectMappings>(jsonInput);
168+
var deserializedMapping = JObject.Parse(jsonInput);
169169

170-
var result = template(deserialisedMapping);
170+
var result = template(deserializedMapping);
171171

172172
if (options.verbose)
173173
{
@@ -178,10 +178,10 @@ private static void RunAutomation(Options options, string inputFileName, string
178178
{
179179
if (outputFileName == "")
180180
{
181-
//outputFileName = deserialisedMapping.dataObjectMappings[0].mappingName; // you could read this from the free form mapping file, too
181+
//outputFileName = deserializedMapping.dataObjectMappings[0].mappingName; // you could read this from the free form mapping file, too
182182
try
183183
{
184-
outputFileName = (string) deserialisedMapping["dataObjectMappings"][0]["mappingName"];
184+
outputFileName = (string) deserializedMapping["dataObjectMappings"][0]["mappingName"];
185185
}
186186
catch
187187
{

ClassLibrary/DataWarehouseAutomation/Sample_Metadata/sampleSourceQuery.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
{
22
"dataObjectMappings": [
33
{
4-
"mappingName": "Mapping1",
4+
"mappingName": "MyDataObjectMapping",
55
"sourceDataObjects": [
66
{
7-
"dataQueryCode": "SELECT GETDATE()",
7+
"name": "ExampleSourceDataObject"
8+
},
9+
{
10+
"dataQueryCode": "SELECT GETDATE() AS CURRENTDATE",
811
"dataQueryConnection": {
9-
"dataConnectionString": "TestConnectionString"
12+
"dataConnectionString": "ExampleConnectionString"
1013
},
1114
"dataQueryClassification": [
1215
{
1316
"id": 1,
14-
"classification": "Example"
17+
"classification": "Example Query"
1518
}
1619
]
1720
}

ClassLibrary/DataWarehouseAutomation/Sample_Templates/TemplateSampleMultipleDataItemMappings.Handlebars

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,3 @@ The same applies at Data Item Mapping level, where the following Data Item mappi
2020
{{/each}}
2121

2222
{{/each}}
23-
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
--Example using a data object as a query source rather than a table/file.
2+
--Usage in a CTE context with multiple sources mapping to a single target
3+
{{#each dataObjectMappings }}
4+
5+
{{#if mappingName}}
6+
--Working on {{mappingName}}.
7+
{{else}}
8+
--No mapping name is defined.
9+
{{/if}}
10+
11+
WITH
12+
{{#each sourceDataObjects}}{{@index}} AS
13+
( {{#if dataQueryCode}}-- This is the data query as a source object
14+
{{dataQueryCode}}{{else}}
15+
-- This is the item, with brackets added using a custom extension
16+
SELECT * FROM {{stringwrap name "[" "]"}}{{/if}}
17+
){{#unless @last}},{{/unless}}
18+
{{/each}}
19+
{{#each sourceDataObjects}}SELECT {{#each ../dataItemMappings}}{{#each sourceDataItems}}{{#if dataQueryCode}}{{dataQueryCode}} AS {{../targetDataItem.name}}{{else}}
20+
{{stringwrap name "[" "]"}} AS {{../targetDataItem.name}}
21+
{{/if}}{{/each}}{{#unless @last}},{{/unless}}{{/each}}FROM {{@index}}
22+
{{#unless @last}}UNION{{/unless}}
23+
{{/each}}
24+
INTO {{targetDataObject.name}}
25+
{{/each}}

ClassLibrary/DataWarehouseAutomation/Test_Project/Program.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ static void Main(string[] args)
1313
var sampleTemplateDirectory = AppDomain.CurrentDomain.BaseDirectory + @"..\..\..\..\Sample_Metadata\";
1414

1515
List<string> fileList = new List<string>();
16-
fileList.Add(sampleTemplateDirectory + @"sampleBasic.json"); // Most basic test
17-
fileList.Add(sampleTemplateDirectory + @"sampleBasicWithExtensions.json");
18-
fileList.Add(sampleTemplateDirectory + @"sampleMultipleDataItemMappings.json");
16+
//fileList.Add(sampleTemplateDirectory + @"sampleBasic.json"); // Most basic test
17+
//fileList.Add(sampleTemplateDirectory + @"sampleBasicWithExtensions.json");
18+
//fileList.Add(sampleTemplateDirectory + @"sampleMultipleDataItemMappings.json");
1919
fileList.Add(sampleTemplateDirectory + @"sampleSourceQuery.json"); // Simple test using a query as source
20-
fileList.Add(sampleTemplateDirectory + @"sampleCalculation.json"); // Simple test using one of the column mappings as calculation
21-
fileList.Add(sampleTemplateDirectory + @"sampleSimpleDDL.json"); // Simple test using one of the column mappings as calculation
22-
fileList.Add(sampleTemplateDirectory + @"sampleTEAM_Hub.json"); // Validating a Json generated by TEAM / VDW
23-
fileList.Add(sampleTemplateDirectory + @"sampleTEAM_Hub_v161.json"); // Validating a Json generated by TEAM / VDW
24-
fileList.Add(sampleTemplateDirectory + @"sampleTEAM_LSAT.json"); // Validating a Json generated by TEAM / VDW
25-
fileList.Add(sampleTemplateDirectory + @"sampleVDW_Hub.json"); // Validating a Json generated by TEAM / VDW
26-
fileList.Add(sampleTemplateDirectory + @"sampleVDW_StagingArea.json"); // Validating a Json generated by TEAM / VDW
27-
fileList.Add(sampleTemplateDirectory + @"sampleVDW_HubWithLookup.json"); // Validating a Json generated by TEAM / VDW
28-
fileList.Add(sampleTemplateDirectory + @"sampleTEAMv16.json"); // Validating a Json generated by TEAM / VDW
29-
fileList.Add(sampleTemplateDirectory + @"sampleJsonStagingWithPsaDetails.json"); // Validating a Json generated by TEAM / VDW
20+
//fileList.Add(sampleTemplateDirectory + @"sampleCalculation.json"); // Simple test using one of the column mappings as calculation
21+
//fileList.Add(sampleTemplateDirectory + @"sampleSimpleDDL.json"); // Simple test using one of the column mappings as calculation
22+
//fileList.Add(sampleTemplateDirectory + @"sampleTEAM_Hub.json"); // Validating a Json generated by TEAM / VDW
23+
//fileList.Add(sampleTemplateDirectory + @"sampleTEAM_Hub_v161.json"); // Validating a Json generated by TEAM / VDW
24+
//fileList.Add(sampleTemplateDirectory + @"sampleTEAM_LSAT.json"); // Validating a Json generated by TEAM / VDW
25+
//fileList.Add(sampleTemplateDirectory + @"sampleVDW_Hub.json"); // Validating a Json generated by TEAM / VDW
26+
//fileList.Add(sampleTemplateDirectory + @"sampleVDW_StagingArea.json"); // Validating a Json generated by TEAM / VDW
27+
//fileList.Add(sampleTemplateDirectory + @"sampleVDW_HubWithLookup.json"); // Validating a Json generated by TEAM / VDW
28+
//fileList.Add(sampleTemplateDirectory + @"sampleTEAMv16.json"); // Validating a Json generated by TEAM / VDW
29+
//fileList.Add(sampleTemplateDirectory + @"sampleJsonStagingWithPsaDetails.json"); // Validating a Json generated by TEAM / VDW
3030

3131
foreach (string jsonFile in fileList)
3232
{

0 commit comments

Comments
 (0)