namespace View_by_Distance.Shared.Models; public record LocationContainer(DateOnly? CreationDateOnly, ExifDirectory? ExifDirectory, object? Encoding, FaceFile? FaceFile, FilePath FilePath, int? LengthPermyriad, FilePath? LengthSource, PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName? PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName, int? WholePercentages) { public static LocationContainer Get(LocationContainer locationContainer, object? encoding) { LocationContainer result; result = new(CreationDateOnly: locationContainer.CreationDateOnly, ExifDirectory: locationContainer.ExifDirectory, Encoding: encoding, FaceFile: locationContainer.FaceFile, FilePath: locationContainer.FilePath, LengthPermyriad: locationContainer.LengthPermyriad, LengthSource: locationContainer.LengthSource, PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName: locationContainer.PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName, WholePercentages: locationContainer.WholePercentages); return result; } public static LocationContainer Get(LocationContainer source, LocationContainer locationContainer, int lengthPermyriad, bool keepExifDirectory, bool keepEncoding) { LocationContainer result; result = new(CreationDateOnly: locationContainer.CreationDateOnly, ExifDirectory: keepExifDirectory ? locationContainer.ExifDirectory : null, Encoding: keepEncoding ? locationContainer.Encoding : null, FaceFile: locationContainer.FaceFile, FilePath: locationContainer.FilePath, LengthPermyriad: lengthPermyriad, LengthSource: source.FilePath, PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName: locationContainer.PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName, WholePercentages: locationContainer.WholePercentages); return result; } }