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 Nodes { get; set; } = []; public List 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; } }