using System.Drawing; namespace View_by_Distance.Shared.Models; public record LocationContainer(DateOnly CreationDateOnly, ExifDirectory? ExifDirectory, int? DirectoryNumber, string? DisplayDirectoryName, object? Encoding, FaceFile? FaceFile, FilePath FilePath, bool FromDistanceContent, int Id, int? LengthPermyriad, FilePath? LengthSource, long? PersonKey, RectangleF? Rectangle, int WholePercentages) { public static LocationContainer Get(LocationContainer locationContainer, object? encoding, bool keepExifDirectory) { LocationContainer result; result = new(CreationDateOnly: locationContainer.CreationDateOnly, ExifDirectory: keepExifDirectory ? locationContainer.ExifDirectory : null, DirectoryNumber: locationContainer.DirectoryNumber, DisplayDirectoryName: locationContainer.DisplayDirectoryName, Encoding: encoding, FaceFile: locationContainer.FaceFile, FilePath: locationContainer.FilePath, FromDistanceContent: locationContainer.FromDistanceContent, Id: locationContainer.Id, LengthPermyriad: locationContainer.LengthPermyriad, LengthSource: locationContainer.LengthSource, PersonKey: locationContainer.PersonKey, Rectangle: locationContainer.Rectangle, 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, DirectoryNumber: locationContainer.DirectoryNumber, DisplayDirectoryName: locationContainer.DisplayDirectoryName, Encoding: keepEncoding ? locationContainer.Encoding : null, FaceFile: locationContainer.FaceFile, FilePath: locationContainer.FilePath, FromDistanceContent: locationContainer.FromDistanceContent, Id: locationContainer.Id, LengthPermyriad: lengthPermyriad, LengthSource: source.FilePath, PersonKey: locationContainer.PersonKey, Rectangle: locationContainer.Rectangle, WholePercentages: locationContainer.WholePercentages); return result; } }