Bug fix for

if (lines[k][0] == '1')
This commit is contained in:
Mike Phares 2023-09-09 16:15:34 -07:00
parent 213ebe7d31
commit f99802b7f4

View File

@ -30,6 +30,11 @@ internal static partial class HelperGenealogicalDataCommunication
char Sex,
char First);
private record Collections(ReadOnlyDictionary<long, long> IdToPersonKey,
ReadOnlyDictionary<long, string> IdToName,
ReadOnlyDictionary<long, string> IdToGivenName,
ReadOnlyCollection<PersonExport> PersonExportCollection);
private record PersonExport(long Id,
ReadOnlyCollection<string> Lines,
string PersonKeyFormatted,
@ -283,6 +288,8 @@ internal static partial class HelperGenealogicalDataCommunication
{
for (int k = j; k < lines.Count; k++)
{
if (lines[k][0] == '1')
break;
seven = lines[k][..7];
if (seven != "3 CONT ")
break;
@ -335,6 +342,8 @@ internal static partial class HelperGenealogicalDataCommunication
{
for (int k = j; k < lines.Count; k++)
{
if (lines[k][0] == '1')
break;
seven = lines[k][..7];
if (seven != "3 CONT ")
break;
@ -372,6 +381,8 @@ internal static partial class HelperGenealogicalDataCommunication
{
for (int k = j; k < lines.Count; k++)
{
if (lines[k][0] == '1')
break;
seven = lines[k][..7];
if (seven != "3 CONT ")
break;
@ -708,8 +719,9 @@ internal static partial class HelperGenealogicalDataCommunication
return new(results);
}
private static (ReadOnlyDictionary<long, long>, ReadOnlyDictionary<long, string>, ReadOnlyDictionary<long, string>, ReadOnlyCollection<PersonExport>) GetCollections(AppSettings appSettings, ReadOnlyDictionary<long, Person> people)
private static Collections GetCollections(AppSettings appSettings, ReadOnlyDictionary<long, Person> people)
{
Collections result;
long personKey;
char[] ageCollection;
Dictionary<long, string> idToName = new();
@ -734,7 +746,8 @@ internal static partial class HelperGenealogicalDataCommunication
idToGivenName.Add(keyValuePair.Key, string.IsNullOrEmpty(keyValuePair.Value.Name.Given) ? WindowsFileSystem().Replace(keyValuePair.Value.Name.ForwardSlashFull, "_") : WindowsFileSystem().Replace(keyValuePair.Value.Name.Given, "_"));
collection.Add(new(keyValuePair.Key, new(keyValuePair.Value.Lines), keyValuePair.Value.Birth.Note, ageCollection, dateTime, personKey));
}
return (new(idToPersonKey), new(idToName), new(idToGivenName), new(collection));
result = new(new(idToPersonKey), new(idToName), new(idToGivenName), new(collection));
return result;
}
private static List<Family> GetFamilyCollection(ReadOnlyCollection<ReadOnlyCollection<string>> familyGroupLines, ReadOnlyDictionary<long, Person> people, ReadOnlyDictionary<long, long> idToPersonKey, ReadOnlyDictionary<long, string> idToName, ReadOnlyDictionary<long, string> idToGivenName)
@ -1041,16 +1054,16 @@ internal static partial class HelperGenealogicalDataCommunication
logger.LogInformation("{old} {days} day(s) => {new}", 638258293638438812, 4, new DateTime(638258293638438812).AddDays(4.0001).Ticks);
GenealogicalDataCommunicationCollections genealogicalDataCommunicationCollections = GetGenealogicalDataCommunicationCollections(input);
ReadOnlyDictionary<long, Person> people = GetPeople(input, genealogicalDataCommunicationCollections);
(ReadOnlyDictionary<long, long> idToPersonKey, ReadOnlyDictionary<long, string> idToName, ReadOnlyDictionary<long, string> idToGivenName, ReadOnlyCollection<PersonExport> personExportCollection) = GetCollections(appSettings, people);
if (idToPersonKey.Count != people.Count || idToPersonKey.Count != idToName.Count || idToPersonKey.Count != idToGivenName.Count)
Collections collections = GetCollections(appSettings, people);
if (collections.IdToPersonKey.Count != people.Count || collections.IdToPersonKey.Count != collections.IdToName.Count || collections.IdToPersonKey.Count != collections.IdToGivenName.Count)
throw new NotSupportedException();
List<Family> familyCollection = GetFamilyCollection(genealogicalDataCommunicationCollections.FamilyGroupLines, people, idToPersonKey, idToName, idToGivenName);
List<Family> familyCollection = GetFamilyCollection(genealogicalDataCommunicationCollections.FamilyGroupLines, people, collections.IdToPersonKey, collections.IdToName, collections.IdToGivenName);
WriteJsonFiles(appSettings, input, genealogicalDataCommunicationCollections, people, familyCollection);
WriteGenealogicalDataCommunicationCollections(logger, input, genealogicalDataCommunicationCollections, people);
if (input.Destination is not null)
ExportFamilies(appSettings, input, familyCollection);
if (input.Destination is not null)
Export(input, ticks, idToName, personExportCollection);
Export(input, ticks, collections.IdToName, collections.PersonExportCollection);
if (string.IsNullOrEmpty(input.GenealogicalDataCommunicationFile))
logger.LogInformation("{file} is null?", input.GenealogicalDataCommunicationDirectory);
}