Skip to content

Commit 632843a

Browse files
committed
Solved bug #11, where the query item was not properly picked up.
1 parent 6045c00 commit 632843a

File tree

7 files changed

+108
-27
lines changed

7 files changed

+108
-27
lines changed

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/DataItemMapping.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace DataWarehouseAutomation
99
public class DataItemMapping
1010
{
1111
[JsonProperty]
12-
public List<DataItem> sourceDataItems { get; set; }
12+
public List<dynamic> sourceDataItems { get; set; }
1313

1414
[JsonProperty]
1515
public DataItem targetDataItem { get; set; }

ClassLibrary/DataWarehouseAutomation/DataWarehouseAutomation/DataObjectMapping.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class DataObjectMapping
2525
/// The source object of the mapping.
2626
/// </summary>
2727
[JsonProperty("sourceDataObjects")]
28-
public List<DataObject> sourceDataObjects { get; set; }
28+
public List<dynamic> sourceDataObjects { get; set; }
2929

3030
/// <summary>
3131
/// The target object of the mapping.

Examples/DV_Handlebars/Example_Handlebars.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@
5757
</ItemGroup>
5858
<ItemGroup>
5959
<None Include="App.config" />
60+
<None Include="sampleCalculation.json" />
6061
<None Include="sampleMultipleDataItemMappings.json" />
6162
<None Include="sampleBasicWithExtensions.json" />
6263
<None Include="sampleSimpleDDL.json" />
64+
<None Include="TemplateSampleCalculation.Handlebars" />
6365
<None Include="TemplateSampleMultipleDataItemMappings.Handlebars" />
6466
<None Include="TemplateSampleBasicWithExtensions.Handlebars" />
6567
<None Include="TemplateSampleSimpleDDL.Handlebars" />

Examples/DV_Handlebars/Program.cs

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,42 @@ static void Main(string[] args)
1616
string result = "";
1717
DataObjectMappings deserialisedMapping = new DataObjectMappings();
1818

19-
// Simple example template
20-
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleBasic.handlebars");
21-
var template = Handlebars.Compile(stringTemplate);
22-
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleBasic.json");
23-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
24-
result = template(deserialisedMapping);
25-
Console.WriteLine(result);
19+
//// Simple example template
20+
//stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleBasic.handlebars");
21+
//var template = Handlebars.Compile(stringTemplate);
22+
//jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleBasic.json");
23+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
24+
//result = template(deserialisedMapping);
25+
//Console.WriteLine(result);
2626

27-
// Example using extensions
28-
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleBasicWithExtensions.handlebars");
29-
template = Handlebars.Compile(stringTemplate);
30-
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleBasicWithExtensions.json");
31-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
32-
result = template(deserialisedMapping);
33-
Console.WriteLine(result);
27+
//// Example using extensions
28+
//stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleBasicWithExtensions.handlebars");
29+
//template = Handlebars.Compile(stringTemplate);
30+
//jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleBasicWithExtensions.json");
31+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
32+
//result = template(deserialisedMapping);
33+
//Console.WriteLine(result);
3434

35-
// Example using more than one mapping at data item level
36-
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleMultipleDataItemMappings.handlebars");
37-
template = Handlebars.Compile(stringTemplate);
38-
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleMultipleDataItemMappings.json");
39-
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
40-
result = template(deserialisedMapping);
41-
Console.WriteLine(result);
35+
//// Example using more than one mapping at data item level
36+
//stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleMultipleDataItemMappings.handlebars");
37+
//template = Handlebars.Compile(stringTemplate);
38+
//jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleMultipleDataItemMappings.json");
39+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
40+
//result = template(deserialisedMapping);
41+
//Console.WriteLine(result);
42+
43+
//// Example generating DDL statements
44+
//stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleSimpleDDL.handlebars");
45+
//template = Handlebars.Compile(stringTemplate);
46+
//jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleSimpleDDL.json");
47+
//deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
48+
//result = template(deserialisedMapping);
49+
//Console.WriteLine(result);
4250

43-
// Example generating DDL statements
44-
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleSimpleDDL.handlebars");
45-
template = Handlebars.Compile(stringTemplate);
46-
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleSimpleDDL.json");
51+
// Example using OneOf / swapping a source for a query
52+
stringTemplate = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\TemplateSampleCalculation.handlebars");
53+
var template = Handlebars.Compile(stringTemplate);
54+
jsonInput = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"..\..\sampleCalculation.json");
4755
deserialisedMapping = JsonConvert.DeserializeObject<DataObjectMappings>(jsonInput);
4856
result = template(deserialisedMapping);
4957
Console.WriteLine(result);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--Example using a query as a source rather than an attribute.
2+
{{#each dataObjectMappings }}
3+
4+
--Working on {{mappingName}}.
5+
6+
SELECT {{sourceDataObjects.0.dataQueryCode}}
7+
{{#each dataItemMappings}}
8+
{{sourceDataItems.0.name}}{{sourceDataItems.0.dataQueryCode}} as {{targetDataItem.name}}{{#unless @last}},{{/unless}}
9+
{{/each}}
10+
FROM {{targetDataObject.name}}
11+
12+
{{/each}}
13+
Binary file not shown.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
"dataObjectMappings": [
3+
{
4+
"mappingName": "Mapping1",
5+
"sourceDataObjects": [
6+
{
7+
"name": "SourceTable"
8+
}
9+
],
10+
"targetDataObject": {
11+
"name": "TargetTable"
12+
},
13+
"dataItemMappings": [
14+
{
15+
"sourceDataItems": [
16+
{
17+
"dataQueryCode": "SELECT 10/2"
18+
}
19+
],
20+
"targetDataItem": {
21+
"name": "TargetColumn"
22+
}
23+
},
24+
{
25+
"sourceDataItems": [
26+
{
27+
"name": "Column2Source"
28+
}
29+
],
30+
"targetDataItem": {
31+
"name": "Columns2Target"
32+
}
33+
},
34+
{
35+
"sourceDataItems": [
36+
{
37+
"name": "Column3Source"
38+
}
39+
],
40+
"targetDataItem": {
41+
"name": "Columns3Target"
42+
}
43+
}
44+
]
45+
},
46+
{
47+
"mappingName": "Mapping2",
48+
"sourceDataObjects": [
49+
{
50+
"dataQueryCode": "MAX(amount) AS amount"
51+
}
52+
],
53+
"targetDataObject": {
54+
"name": "TargetTable"
55+
}
56+
}
57+
]
58+
}

0 commit comments

Comments
 (0)