56 lines
2.3 KiB
C#
56 lines
2.3 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public record ExifDirectory(AviDirectory[] AviDirectories,
|
|
object? Encoding,
|
|
ExifDirectoryBase[] ExifBaseDirectories,
|
|
FileMetadataDirectory[] FileMetadataDirectories,
|
|
FilePath FilePath,
|
|
GifHeaderDirectory[] GifHeaderDirectories,
|
|
GpsDirectory[] GpsDirectories,
|
|
int? Height,
|
|
JpegDirectory[] JpegDirectories,
|
|
MakernoteDirectory[] MakernoteDirectories,
|
|
PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName? PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName,
|
|
PhotoshopDirectory[] PhotoshopDirectories,
|
|
PngDirectory[] PngDirectories,
|
|
QuickTimeMovieHeaderDirectory[] QuickTimeMovieHeaderDirectories,
|
|
QuickTimeTrackHeaderDirectory[] QuickTimeTrackHeaderDirectories,
|
|
WebPDirectory[] WebPDirectories,
|
|
int? Width)
|
|
{
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, ExifDirectorySourceGenerationContext.Default.ExifDirectory);
|
|
return result;
|
|
}
|
|
|
|
public static ExifDirectory Get(object encoding, ExifDirectory e) =>
|
|
new(e.AviDirectories,
|
|
encoding,
|
|
e.ExifBaseDirectories,
|
|
e.FileMetadataDirectories,
|
|
e.FilePath,
|
|
e.GifHeaderDirectories,
|
|
e.GpsDirectories,
|
|
e.Height,
|
|
e.JpegDirectories,
|
|
e.MakernoteDirectories,
|
|
e.PersonKeyFormattedAndKeyTicksAndDisplayDirectoryName,
|
|
e.PhotoshopDirectories,
|
|
e.PngDirectories,
|
|
e.QuickTimeMovieHeaderDirectories,
|
|
e.QuickTimeTrackHeaderDirectories,
|
|
e.WebPDirectories,
|
|
e.Width);
|
|
|
|
}
|
|
|
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
|
[JsonSerializable(typeof(ExifDirectory))]
|
|
public partial class ExifDirectorySourceGenerationContext : JsonSerializerContext
|
|
{
|
|
} |