RobotApp/RobotApp.Client/Services/UiEdge.cs
Đăng Nguyễn 5c1851e92f update
2025-12-31 14:03:47 +07:00

75 lines
2.2 KiB
C#

using RobotApp.VDA5050.InstantAction;
using RobotApp.VDA5050.Order;
using System.Text.Json.Serialization;
namespace RobotApp.Client.Services;
// ======================================================
// ORDER MESSAGE
// ======================================================
public class OrderMessage
{
public uint HeaderId { get; set; }
public string Timestamp { get; set; } = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
public string Version { get; set; } = "2.1.0";
public string Manufacturer { get; set; } = "PhenikaaX";
public string SerialNumber { get; set; } = "T800-003";
public string OrderId { get; set; } = "";
public int OrderUpdateId { get; set; }
public string? ZoneSetId { get; set; }
public List<Node> Nodes { get; set; } = [];
public List<Edge> Edges { get; set; } = [];
public OrderMsg ToSchemaObject()
{
return new OrderMsg
{
HeaderId = (uint)HeaderId++,
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
Version = Version,
Manufacturer = Manufacturer,
SerialNumber = SerialNumber,
OrderId = OrderId= Guid.NewGuid().ToString(),
OrderUpdateId = OrderUpdateId,
ZoneSetId = string.IsNullOrWhiteSpace(ZoneSetId)
? null
: ZoneSetId,
Nodes = [..Nodes],
Edges = [..Edges],
};
}
public void Import(OrderMsg order)
{
HeaderId = order.HeaderId;
Timestamp = order.Timestamp;
Version = order.Version;
Manufacturer = order.Manufacturer;
SerialNumber = order.SerialNumber;
OrderId = order.OrderId;
ZoneSetId = order.ZoneSetId;
OrderUpdateId = order.OrderUpdateId;
Nodes = [.. order.Nodes];
Edges = [.. order.Edges];
}
}
// ======================================================
// UI ACTION PARAM
// ======================================================
public class UiActionParameter : ActionParameter
{
[JsonIgnore]
public string ValueString
{
get => Value?.ToString() ?? "";
set => Value = value;
}
}