24 lines
1.2 KiB
C#
24 lines
1.2 KiB
C#
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
|
|
|
internal abstract class Sorting
|
|
{
|
|
|
|
internal static Models.Sorting Get(int faceDistancePermyriad, Models.FaceDistance faceDistanceEncoding, Models.FaceDistance faceDistanceLength)
|
|
{
|
|
Models.Sorting result;
|
|
if (faceDistanceLength.Id is null)
|
|
throw new NotSupportedException();
|
|
if (faceDistanceLength.Length is null)
|
|
throw new NotSupportedException();
|
|
if (faceDistanceLength.WholePercentages is null)
|
|
throw new NotSupportedException();
|
|
TimeSpan timeSpan = new(faceDistanceLength.DateTimeOriginalThenMinimumDateTime.Ticks - faceDistanceEncoding.DateTimeOriginalThenMinimumDateTime.Ticks);
|
|
bool older = timeSpan.TotalMilliseconds < 0;
|
|
int daysDelta = (int)Math.Round(Math.Abs(timeSpan.TotalDays), 0);
|
|
bool? canReMap = faceDistanceLength.MappingFromFilterPost?.CanReMap;
|
|
int distancePermyriad = (int)(faceDistanceLength.Length.Value * faceDistancePermyriad);
|
|
result = new(canReMap, daysDelta, distancePermyriad, faceDistanceLength.Id.Value, older, faceDistanceLength.WholePercentages.Value);
|
|
return result;
|
|
}
|
|
|
|
} |