Skip to content

Commit 9b3c185

Browse files
committed
Update Program.cs
1 parent c39c5cc commit 9b3c185

File tree

1 file changed

+30
-23
lines changed
  • DataWarehouseAutomation/SchemaJsonConverter

1 file changed

+30
-23
lines changed

DataWarehouseAutomation/SchemaJsonConverter/Program.cs

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,18 @@
2424
"sample_TEAM_Attribute_Mapping.json"
2525
};
2626

27+
#region GUIDs
28+
// GUID for object, item, connection, classification, businessKeyDefinition, dataObjectMapping, dataItemMapping, mappinglist
29+
Dictionary<string, Guid> dataObjectGuids = new Dictionary<string, Guid>();
30+
Dictionary<string, Guid> dataItemGuids = new Dictionary<string, Guid>();
31+
Dictionary<string, Guid> connectionGuids = new Dictionary<string, Guid>();
32+
Dictionary<string, Guid> classificationGuids = new Dictionary<string, Guid>();
33+
Dictionary<string, Guid> dataObjectMappingGuids = new Dictionary<string, Guid>();
34+
Dictionary<string, Guid> businessKeyDefinitionGuids = new Dictionary<string, Guid>();
35+
Dictionary<string, Guid> dataItemMappingGuids = new Dictionary<string, Guid>();
36+
37+
#endregion
38+
2739
foreach (string file in Directory.EnumerateFiles(inputMetadataDirectory, "*.json", SearchOption.TopDirectoryOnly))
2840
{
2941
if (!exceptionList.Contains(Path.GetFileName(file)))
@@ -36,18 +48,6 @@
3648
// Create a JSON object, which can be modified at runtime.
3749
var jsonObject = JsonNode.Parse(jsonFile).AsObject();
3850

39-
#region GUIDs
40-
// GUID for object, item, connection, classification, businessKeyDefinition, dataObjectMapping, dataItemMapping, mappinglist
41-
Dictionary<string, Guid> dataObjectGuids = new Dictionary<string, Guid>();
42-
Dictionary<string, Guid> dataItemGuids = new Dictionary<string, Guid>();
43-
Dictionary<string, Guid> connectionGuids = new Dictionary<string, Guid>();
44-
Dictionary<string, Guid> classificationGuids = new Dictionary<string, Guid>();
45-
Dictionary<string, Guid> dataObjectMappingGuids = new Dictionary<string, Guid>();
46-
Dictionary<string, Guid> businessKeyDefinitionGuids = new Dictionary<string, Guid>();
47-
Dictionary<string, Guid> dataItemMappingGuids = new Dictionary<string, Guid>();
48-
49-
#endregion
50-
5151
#region Generation Specific Data Object
5252

5353
if (jsonObject["generationSpecificMetadata"] != null)
@@ -404,8 +404,7 @@
404404
var jsonObjectTargetDataItem = JsonNode.Parse(jsonNodeTargetDataItem.ToJsonString()).AsObject();
405405
AddGuid(jsonObjectTargetDataItem, dataItemGuids, "name");
406406
jsonObjectDataItemMapping["targetDataItem"] = jsonObjectTargetDataItem;
407-
408-
407+
409408
foreach (var sourceDataItemJsonObject in sourceDataItemList)
410409
{
411410
jsonObjectDataItemMapping["sourceDataItems"]![sourceDataItemList.IndexOf(sourceDataItemJsonObject)] = sourceDataItemJsonObject;
@@ -448,7 +447,8 @@
448447
{
449448
var dataMappingJsonObject = JsonNode.Parse(dataItemMapping.ToJsonString()).AsObject();
450449

451-
var dataItemList = new List<JsonObject>();
450+
// Source data items.
451+
var sourceDataItemList = new List<JsonObject>();
452452
foreach (var dataItem in dataItemMapping!["sourceDataItems"]?.AsArray())
453453
{
454454
// Source data item.
@@ -505,20 +505,31 @@
505505
dataItemJsonObject.Remove("isHardCodedValue");
506506
}
507507

508-
dataItemList.Add(dataItemJsonObject);
508+
sourceDataItemList.Add(dataItemJsonObject);
509509

510-
foreach (var sourceDataItemJsonObject in dataItemList)
510+
foreach (var sourceDataItemJsonObject in sourceDataItemList)
511511
{
512-
dataMappingJsonObject["sourceDataItems"]![dataItemList.IndexOf(sourceDataItemJsonObject)] = sourceDataItemJsonObject;
512+
dataMappingJsonObject["sourceDataItems"]![sourceDataItemList.IndexOf(sourceDataItemJsonObject)] = sourceDataItemJsonObject;
513513
}
514514

515+
// Target data item
516+
var jsonNodeTargetDataItem = dataMappingJsonObject["targetDataItem"];
517+
var jsonObjectTargetDataItem = JsonNode.Parse(jsonNodeTargetDataItem.ToJsonString()).AsObject();
518+
AddGuid(jsonObjectTargetDataItem, dataItemGuids, "name");
519+
dataMappingJsonObject["targetDataItem"] = jsonObjectTargetDataItem;
520+
515521
dataItemMappingList.Add(dataMappingJsonObject);
516522
}
517523
}
518524

519525
// Ensure each item has a GUID
520526
AddGuid(businessKeyComponentMappingJsonObject, businessKeyDefinitionGuids);
521527

528+
// Ensdure that each business key definition has a name.
529+
var businessKeyDefinitionName = $"{jsonObjectDataObjectMapping["name"]} for {businessKeyComponentMappingJsonObject["surrogateKey"]}";
530+
531+
businessKeyComponentMappingJsonObject.Add("name", businessKeyDefinitionName);
532+
522533
foreach (var dataItemMappingJsonObject in dataItemMappingList)
523534
{
524535
businessKeyComponentMappingJsonObject["businessKeyComponentMapping"]![dataItemMappingList.IndexOf(dataItemMappingJsonObject)] = dataItemMappingJsonObject;
@@ -532,8 +543,6 @@
532543
{
533544
jsonObjectDataObjectMapping["businessKeyDefinitions"]![businessKeyDefinitions.IndexOf(businessKeyComponent)] = businessKeyComponent;
534545
}
535-
536-
537546
}
538547
}
539548
catch (Exception ex)
@@ -627,8 +636,6 @@
627636
AddGuid(jsonObjectDataObjectMapping, dataObjectMappingGuids, "name");
628637

629638
dataObjectMappingJsonArray.Add(jsonObjectDataObjectMapping);
630-
631-
632639
}
633640

634641
// Put the data object mappings back into the main object.
@@ -657,7 +664,7 @@
657664
}
658665
finally
659666
{
660-
667+
// To do.
661668
}
662669

663670
// Save the file to disk.

0 commit comments

Comments
 (0)