60 lines
2.8 KiB
C#

using System.Text.Json.Serialization;
namespace View_by_Distance.PhotoPrism.Models;
public record Marker(
[property: JsonPropertyName("marker_uid")] string MarkerUid,
[property: JsonPropertyName("file_uid")] string FileUid,
[property: JsonPropertyName("marker_type")] string MarkerType,
[property: JsonPropertyName("marker_src")] string MarkerSrc,
[property: JsonPropertyName("marker_name")] string MarkerName,
[property: JsonPropertyName("marker_review")] string MarkerReview,
[property: JsonPropertyName("marker_invalid")] string MarkerInvalid,
[property: JsonPropertyName("subj_uid")] string SubjUid,
[property: JsonPropertyName("subj_src")] string SubjSrc,
[property: JsonPropertyName("face_id")] string FaceId,
[property: JsonPropertyName("face_dist")] string FaceDist,
[property: JsonPropertyName("x")] string X,
[property: JsonPropertyName("y")] string Y,
[property: JsonPropertyName("w")] string W,
[property: JsonPropertyName("h")] string H,
[property: JsonPropertyName("q")] string Q,
[property: JsonPropertyName("size")] string Size,
[property: JsonPropertyName("score")] string Score,
[property: JsonPropertyName("thumb")] string Thumb,
[property: JsonPropertyName("matched_at")] string MatchedAt,
[property: JsonPropertyName("created_at")] string CreatedAt,
[property: JsonPropertyName("updated_at")] string UpdatedAt)
{
internal static Shared.Models.Marker Map(Marker marker)
{
Shared.Models.Marker result;
(double x, double y, double w, double h, double score) = (double.Parse(marker.X), double.Parse(marker.Y), double.Parse(marker.W), double.Parse(marker.H), double.Parse(marker.Score));
result = new(
F_PhotoPrism.HexStringToString(marker.MarkerUid),
F_PhotoPrism.HexStringToString(marker.FileUid),
F_PhotoPrism.HexStringToString(marker.MarkerType),
F_PhotoPrism.HexStringToString(marker.MarkerSrc),
F_PhotoPrism.HexStringToString(marker.MarkerName),
F_PhotoPrism.HexStringToString(marker.MarkerReview),
F_PhotoPrism.HexStringToString(marker.MarkerInvalid),
F_PhotoPrism.HexStringToString(marker.SubjUid),
F_PhotoPrism.HexStringToString(marker.SubjSrc),
F_PhotoPrism.HexStringToString(marker.FaceId),
F_PhotoPrism.HexStringToString(marker.FaceDist),
x,
y,
w,
h,
F_PhotoPrism.HexStringToString(marker.Q),
F_PhotoPrism.HexStringToString(marker.Size),
score,
F_PhotoPrism.HexStringToString(marker.Thumb),
F_PhotoPrism.HexStringToString(marker.MatchedAt),
F_PhotoPrism.HexStringToString(marker.CreatedAt),
F_PhotoPrism.HexStringToString(marker.UpdatedAt));
return result;
}
}