@@ -935,7 +935,7 @@ private void writeCsvConstructor(StreamWriter sw, string context) {
935
935
sw . WriteLine ( " /// <summary>" ) ;
936
936
sw . WriteLine ( $ " /// Constructor for { ClassName } read from CSV file") ;
937
937
sw . WriteLine ( " /// </summary>" ) ;
938
- sw . WriteLine ( $ " private { ClassName } (int key, CsvReader csvReader){{") ;
938
+ sw . WriteLine ( $ " private { ClassName } (int key, CsvReader csvReader, DataStoreCSV< { ClassName } > dataStore ){{") ;
939
939
sw . WriteLine ( " Key = key;" ) ;
940
940
//var isVarNeeded = true;
941
941
//var isVarNullableNeeded = true;
@@ -961,11 +961,19 @@ MemberTypeEnum.ParentMultipleChildrenDictionary or
961
961
if ( mi . IsNullable ) {
962
962
sw . WriteLine ( $ " var { mi . LowerMemberName } Key = csvReader.ReadIntNull();") ;
963
963
sw . WriteLine ( $ " if ({ mi . LowerMemberName } Key.HasValue) {{") ;
964
- sw . WriteLine ( $ " { mi . MemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
964
+ if ( mi . IsSelfReferencing ) {
965
+ sw . WriteLine ( $ " { mi . MemberName } = dataStore.GetItem({ mi . LowerMemberName } Key.Value)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
966
+ } else {
967
+ sw . WriteLine ( $ " { mi . MemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
968
+ }
965
969
sw . WriteLine ( " }" ) ;
966
970
} else {
967
971
sw . WriteLine ( $ " var { mi . LowerMemberName } Key = csvReader.ReadInt();") ;
968
- sw . WriteLine ( $ " { mi . MemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ; //if (isVarNeeded) {
972
+ if ( mi . IsSelfReferencing ) {
973
+ sw . WriteLine ( $ " { mi . MemberName } = dataStore.GetItem({ mi . LowerMemberName } Key)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
974
+ } else {
975
+ sw . WriteLine ( $ " { mi . MemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key)?? { mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
976
+ }
969
977
}
970
978
} else {
971
979
//enum, simple data type
@@ -1002,8 +1010,8 @@ MemberTypeEnum.ParentMultipleChildrenDictionary or
1002
1010
sw . WriteLine ( " /// <summary>" ) ;
1003
1011
sw . WriteLine ( $ " /// New { ClassName } read from CSV file") ;
1004
1012
sw . WriteLine ( " /// </summary>" ) ;
1005
- sw . WriteLine ( $ " internal static { ClassName } Create(int key, CsvReader csvReader) {{") ;
1006
- sw . WriteLine ( $ " return new { ClassName } (key, csvReader);") ;
1013
+ sw . WriteLine ( $ " internal static { ClassName } Create(int key, CsvReader csvReader, DataStoreCSV< { ClassName } > dataStore ) {{") ;
1014
+ sw . WriteLine ( $ " return new { ClassName } (key, csvReader, dataStore );") ;
1007
1015
sw . WriteLine ( " }" ) ;
1008
1016
}
1009
1017
@@ -1372,7 +1380,7 @@ private void writeUpdateCsv(StreamWriter sw, string context) {
1372
1380
sw . WriteLine ( " /// <summary>" ) ;
1373
1381
sw . WriteLine ( $ " /// Updates this { ClassName } with values from CSV file") ;
1374
1382
sw . WriteLine ( " /// </summary>" ) ;
1375
- sw . WriteLine ( $ " internal static void Update({ ClassName } { LowerClassName } , CsvReader csvReader){{") ;
1383
+ sw . WriteLine ( $ " internal static void Update({ ClassName } { LowerClassName } , CsvReader csvReader, DataStoreCSV< { ClassName } > dataStore ){{") ;
1376
1384
1377
1385
sw . WriteLine ( " //read first all property values into local variables" ) ;
1378
1386
var isFirst = true ;
@@ -1398,11 +1406,19 @@ private void writeUpdateCsv(StreamWriter sw, string context) {
1398
1406
sw . WriteLine ( $ " if ({ mi . LowerMemberName } Key is null) {{") ;
1399
1407
sw . WriteLine ( $ " { mi . LowerMemberName } = null;") ;
1400
1408
sw . WriteLine ( " } else {" ) ;
1401
- sw . WriteLine ( $ " { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1409
+ if ( mi . IsSelfReferencing ) {
1410
+ sw . WriteLine ( $ " { mi . LowerMemberName } = dataStore.GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1411
+ } else {
1412
+ sw . WriteLine ( $ " { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1413
+ }
1402
1414
sw . WriteLine ( " }" ) ;
1403
1415
1404
1416
} else {
1405
- sw . WriteLine ( $ " var { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1417
+ if ( mi . IsSelfReferencing ) {
1418
+ sw . WriteLine ( $ " var { mi . LowerMemberName } = dataStore.GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1419
+ } else {
1420
+ sw . WriteLine ( $ " var { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1421
+ }
1406
1422
}
1407
1423
1408
1424
} else {
@@ -1425,10 +1441,18 @@ private void writeUpdateCsv(StreamWriter sw, string context) {
1425
1441
sw . WriteLine ( $ " if ({ mi . LowerMemberName } Key is null) {{") ;
1426
1442
sw . WriteLine ( $ " { mi . LowerMemberName } = null;") ;
1427
1443
sw . WriteLine ( " } else {" ) ;
1428
- sw . WriteLine ( $ " { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1444
+ if ( mi . IsSelfReferencing ) {
1445
+ sw . WriteLine ( $ " { mi . LowerMemberName } = dataStore.GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1446
+ } else {
1447
+ sw . WriteLine ( $ " { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem({ mi . LowerMemberName } Key.Value)??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1448
+ }
1429
1449
sw . WriteLine ( " }" ) ;
1430
1450
} else {
1431
- sw . WriteLine ( $ " var { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1451
+ if ( mi . IsSelfReferencing ) {
1452
+ sw . WriteLine ( $ " var { mi . LowerMemberName } = dataStore.GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1453
+ } else {
1454
+ sw . WriteLine ( $ " var { mi . LowerMemberName } = { context } .Data._{ mi . ParentClassInfo ! . PluralName } .GetItem(csvReader.ReadInt())??{ mi . TypeStringNotNullable } .No{ mi . TypeStringNotNullable } ;") ;
1455
+ }
1432
1456
}
1433
1457
1434
1458
} else if ( mi . MemberType < MemberTypeEnum . LinkToParent ) {
0 commit comments