SegmentB, personKey,
personKeyFormatted and Sorting
This commit is contained in:
@ -11,10 +11,10 @@ public class ByDeterministicHashCode
|
||||
{
|
||||
long ticks;
|
||||
string json;
|
||||
string personKey;
|
||||
string[] segments;
|
||||
int? approximateYears;
|
||||
string groupDirectoryName;
|
||||
string personKeyFormatted;
|
||||
PersonBirthday[] collection;
|
||||
string personKeyJsonFileName;
|
||||
List<long> personKeys = new();
|
||||
@ -28,10 +28,10 @@ public class ByDeterministicHashCode
|
||||
Dictionary<string, Person> personKeyValuePairs = new();
|
||||
foreach (Person person in people)
|
||||
{
|
||||
personKey = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(person.Birthday);
|
||||
if (personKeyValuePairs.ContainsKey(personKey))
|
||||
personKeyFormatted = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(person.Birthday);
|
||||
if (personKeyValuePairs.ContainsKey(personKeyFormatted))
|
||||
break;
|
||||
personKeyValuePairs.Add(personKey, person);
|
||||
personKeyValuePairs.Add(personKeyFormatted, person);
|
||||
}
|
||||
string[] groupDirectories = Directory.GetDirectories(deterministicHashCodePeopleDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
foreach (string groupDirectory in groupDirectories)
|
||||
@ -65,14 +65,14 @@ public class ByDeterministicHashCode
|
||||
personKeyDirectories = Directory.GetDirectories(personDisplayDirectory, "*", SearchOption.TopDirectoryOnly);
|
||||
foreach (string personKeyDirectory in personKeyDirectories)
|
||||
{
|
||||
personKey = Path.GetFileName(personKeyDirectory);
|
||||
if (!DateTime.TryParseExact(personKey, "MM.dd.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime birthday))
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKey);
|
||||
personKeyFormatted = Path.GetFileName(personKeyDirectory);
|
||||
if (!DateTime.TryParseExact(personKeyFormatted, "MM.dd.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime birthday))
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKeyFormatted);
|
||||
else
|
||||
{
|
||||
personBirthday = new PersonBirthday(birthday);
|
||||
personKey = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(personBirthday);
|
||||
convertedPersonKeyDirectory = Path.Combine(personDisplayDirectory, personKey);
|
||||
personKeyFormatted = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(personBirthday);
|
||||
convertedPersonKeyDirectory = Path.Combine(personDisplayDirectory, personKeyFormatted);
|
||||
if (!Directory.Exists(convertedPersonKeyDirectory))
|
||||
Directory.Move(personKeyDirectory, convertedPersonKeyDirectory);
|
||||
}
|
||||
@ -84,17 +84,17 @@ public class ByDeterministicHashCode
|
||||
continue;
|
||||
foreach (string personKeyDirectory in personKeyDirectories)
|
||||
{
|
||||
personKey = Path.GetFileName(personKeyDirectory);
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKey);
|
||||
personKeyFormatted = Path.GetFileName(personKeyDirectory);
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKeyFormatted);
|
||||
if (personBirthday is null)
|
||||
continue;
|
||||
if (personKeyValuePairs.ContainsKey(personKey))
|
||||
if (personKeyValuePairs.ContainsKey(personKeyFormatted))
|
||||
{
|
||||
personKeyJsonDirectory = Path.Combine(personDisplayDirectory, personKey);
|
||||
personKeyJsonDirectory = Path.Combine(personDisplayDirectory, personKeyFormatted);
|
||||
if (!Directory.Exists(personKeyJsonDirectory))
|
||||
Directory.Move(personKeyDirectory, personKeyJsonDirectory);
|
||||
personKeyJsonFileName = Path.Combine(personKeyJsonDirectory, $"{personKey}.json");
|
||||
json = JsonSerializer.Serialize(personKeyValuePairs[personKey], new JsonSerializerOptions() { WriteIndented = true });
|
||||
personKeyJsonFileName = Path.Combine(personKeyJsonDirectory, $"{personKeyFormatted}.json");
|
||||
json = JsonSerializer.Serialize(personKeyValuePairs[personKeyFormatted], new JsonSerializerOptions() { WriteIndented = true });
|
||||
_ = Shared.Models.Stateless.Methods.IPath.WriteAllText(personKeyJsonFileName, json, updateDateWhenMatches: false, compareBeforeWrite: true, updateToWhenMatches: null);
|
||||
}
|
||||
collection = personBirthdays.OrderByDescending(l => l.Value).ToArray();
|
||||
@ -116,7 +116,7 @@ public class ByDeterministicHashCode
|
||||
ticks = incrementDate.Ticks;
|
||||
personBirthday = new(incrementDate);
|
||||
incrementDate = incrementDate.AddDays(1);
|
||||
personKey = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(personBirthday);
|
||||
personKeyFormatted = Shared.Models.Stateless.Methods.IPersonBirthday.GetFormatted(personBirthday);
|
||||
if (personKeys.Contains(ticks))
|
||||
continue;
|
||||
personKeys.Add(ticks);
|
||||
@ -212,13 +212,13 @@ public class ByDeterministicHashCode
|
||||
private static List<long> GetTicks(Dictionary<int, PersonBirthday[]> deterministicHashCodeUnknownFaceKeyValuePairs)
|
||||
{
|
||||
List<long> results = new();
|
||||
long ticks;
|
||||
long personKey;
|
||||
foreach (KeyValuePair<int, PersonBirthday[]> keyValuePair in deterministicHashCodeUnknownFaceKeyValuePairs)
|
||||
{
|
||||
foreach (PersonBirthday personBirthday in keyValuePair.Value)
|
||||
{
|
||||
ticks = personBirthday.Value.Ticks;
|
||||
results.Add(ticks);
|
||||
personKey = personBirthday.Value.Ticks;
|
||||
results.Add(personKey);
|
||||
}
|
||||
}
|
||||
results = results.Distinct().ToList();
|
||||
@ -227,15 +227,15 @@ public class ByDeterministicHashCode
|
||||
|
||||
private static void Set(List<(PersonBirthday PersonBirthday, double IdAndNormalizedPixelPercentage)> deterministicHashCodeCollection, List<long> deterministicHashCodePersonKeys, Dictionary<double, List<PersonBirthday>> deterministicHashCodeScope)
|
||||
{
|
||||
long ticks;
|
||||
long personKey;
|
||||
deterministicHashCodeCollection = (from l in deterministicHashCodeCollection orderby l.IdAndNormalizedPixelPercentage select l).ToList();
|
||||
foreach ((PersonBirthday personBirthday, double idAndNormalizedPixelPercentage) in deterministicHashCodeCollection)
|
||||
{
|
||||
if (!deterministicHashCodeScope.ContainsKey(idAndNormalizedPixelPercentage))
|
||||
deterministicHashCodeScope.Add(idAndNormalizedPixelPercentage, new());
|
||||
deterministicHashCodeScope[idAndNormalizedPixelPercentage].Add(personBirthday);
|
||||
ticks = personBirthday.Value.Ticks;
|
||||
deterministicHashCodePersonKeys.Add(ticks);
|
||||
personKey = personBirthday.Value.Ticks;
|
||||
deterministicHashCodePersonKeys.Add(personKey);
|
||||
}
|
||||
}
|
||||
|
||||
@ -281,20 +281,20 @@ public class ByDeterministicHashCode
|
||||
int? approximateYears = null;
|
||||
PersonBirthday? personBirthday;
|
||||
const string displayDirectoryName = Property.Models.Stateless.IResult.AllInOne;
|
||||
foreach (long ticks in deterministicHashCodeUnknownFacePersonKeys)
|
||||
foreach (long personKey in deterministicHashCodeUnknownFacePersonKeys)
|
||||
{
|
||||
if (!peopleKeyValuePairs.ContainsKey(ticks))
|
||||
if (!peopleKeyValuePairs.ContainsKey(personKey))
|
||||
{
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(ticks);
|
||||
peopleKeyValuePairs.Add(ticks, new(displayDirectoryName, approximateYears, new PersonBirthday[] { personBirthday }, ticks));
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKey);
|
||||
peopleKeyValuePairs.Add(personKey, new(displayDirectoryName, approximateYears, new PersonBirthday[] { personBirthday }, personKey));
|
||||
}
|
||||
}
|
||||
foreach (long ticks in deterministicHashCodePersonKeys)
|
||||
foreach (long personKey in deterministicHashCodePersonKeys)
|
||||
{
|
||||
if (!peopleKeyValuePairs.ContainsKey(ticks))
|
||||
if (!peopleKeyValuePairs.ContainsKey(personKey))
|
||||
{
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(ticks);
|
||||
peopleKeyValuePairs.Add(ticks, new(displayDirectoryName, approximateYears, new PersonBirthday[] { personBirthday }, ticks));
|
||||
personBirthday = Shared.Models.Stateless.Methods.IPersonBirthday.GetPersonBirthday(personKey);
|
||||
peopleKeyValuePairs.Add(personKey, new(displayDirectoryName, approximateYears, new PersonBirthday[] { personBirthday }, personKey));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user