SegmentB, personKey,

personKeyFormatted and Sorting
This commit is contained in:
2022-09-01 01:18:08 -07:00
parent d4c950e8e3
commit 73de1070b8
17 changed files with 847 additions and 573 deletions

View File

@ -0,0 +1,50 @@
namespace View_by_Distance.Shared.Models.Stateless.Methods;
internal abstract class Sorting
{
internal static Models.Sorting Get(int[] collection)
{
if (collection.Length != 5)
throw new Exception();
Models.Sorting result;
int id = collection[3];
int distance = collection[1];
int confidence = collection[2];
int faceEncoding = collection[0];
int normalizedPixelPercentage = collection[4];
result = new(confidence, distance, faceEncoding, id, normalizedPixelPercentage);
return result;
}
internal static List<int[]> GetFaceNumbers(List<Models.Sorting> collection)
{
List<int[]> results = new();
List<int> faceNumbers;
collection = (from l in collection orderby l.FaceEncoding is not null, l.Distance, l.Confidence descending, l.Id, l.NormalizedPixelPercentage select l).ToList();
foreach (Models.Sorting sorting in collection)
{
faceNumbers = new();
if (sorting.FaceEncoding is null)
faceNumbers.Add(Stateless.ILocation.Factor);
else
faceNumbers.Add(Stateless.ILocation.Factor * 2);
if (sorting.Distance is null)
faceNumbers.Add(Stateless.ILocation.Factor);
else
faceNumbers.Add((int)(Math.Round(sorting.Distance.Value, Stateless.ILocation.Digits) * Stateless.ILocation.Factor));
if (sorting.Confidence is null)
faceNumbers.Add(Stateless.ILocation.Factor);
else
faceNumbers.Add((int)(Math.Round(sorting.Confidence.Value, Stateless.ILocation.Digits) * Stateless.ILocation.Factor));
faceNumbers.Add(sorting.Id);
if (sorting.NormalizedPixelPercentage is null)
faceNumbers.Add(Stateless.ILocation.Factor);
else
faceNumbers.Add(sorting.NormalizedPixelPercentage.Value);
results.Add(faceNumbers.ToArray());
}
return results;
}
}