using System.Text.Json; using System.Text.Json.Serialization; namespace View_by_Distance.Shared.Models; public class Navigate : Properties.INavigate { protected List _Levels; protected string _SourceDirectory; protected string _DirectoryRelativePath; protected string _EncodedSourceDirectory; protected FaceFileSystem[] _FaceFileSystemCollection; protected DirectoryFileSystem[] _DirectoryFileSystemCollection; public List Levels => _Levels; public string SourceDirectory => _SourceDirectory; public string DirectoryRelativePath => _DirectoryRelativePath; public string EncodedSourceDirectory => _EncodedSourceDirectory; public FaceFileSystem[] FaceFileSystemCollection => _FaceFileSystemCollection; public DirectoryFileSystem[] DirectoryFileSystemCollection => _DirectoryFileSystemCollection; [JsonConstructor] public Navigate(List levels, string sourceDirectory, string directoryRelativePath, string encodedSourceDirectory, FaceFileSystem[] faceFileSystemCollection, DirectoryFileSystem[] directoryFileSystemCollection) { _Levels = levels; _SourceDirectory = sourceDirectory; _DirectoryRelativePath = directoryRelativePath; _EncodedSourceDirectory = encodedSourceDirectory; _FaceFileSystemCollection = faceFileSystemCollection; _DirectoryFileSystemCollection = directoryFileSystemCollection; } public override string ToString() { string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true }); return result; } }