@using System.Text.Json
@DataPreview
@code { private DataPreviewType DataType; private string DataPreview = ""; private RobotVDA5050StateDto RobotState = new(); public void UpdateState(RobotVDA5050StateDto robotstate) { RobotState = robotstate; DataTypeChanged(); StateHasChanged(); } private void DataTypeChanged() { switch (DataType) { case DataPreviewType.Visualization: DataPreview = JsonSerializer.Serialize(RobotState.Visualization, JsonOptionExtends.Read); break; case DataPreviewType.Node: DataPreview = JsonSerializer.Serialize(RobotState.State.NodeStates, JsonOptionExtends.Read); break; case DataPreviewType.Edge: DataPreview = JsonSerializer.Serialize(RobotState.State.EdgeStates, JsonOptionExtends.Read); break; case DataPreviewType.Order: DataPreview = JsonSerializer.Serialize(GetOrderState(RobotState), JsonOptionExtends.Read); break; case DataPreviewType.Action: DataPreview = JsonSerializer.Serialize(RobotState.State.ActionStates, JsonOptionExtends.Read); break; case DataPreviewType.Infomation: DataPreview = JsonSerializer.Serialize(RobotState.State.Information, JsonOptionExtends.Read); break; case DataPreviewType.Battery: DataPreview = JsonSerializer.Serialize(RobotState.State.BatteryState, JsonOptionExtends.Read); break; case DataPreviewType.Error: DataPreview = JsonSerializer.Serialize(RobotState.State.Errors, JsonOptionExtends.Read); break; }; StateHasChanged(); } private OrderState GetOrderState(RobotVDA5050StateDto state) { return new() { OrderId = state.State.OrderId, OrderUpdateId = state.State.OrderUpdateId, ZoneSetId = state.State.ZoneSetId, LastNodeId = state.State.LastNodeId, LastNodeSequenceId = state.State.LastNodeSequenceId, Driving = state.State.Driving, Paused = state.State.Paused, NewBaseRequest = state.State.NewBaseRequest, DistanceSinceLastNode = state.State.DistanceSinceLastNode, OperatingMode = state.State.OperatingMode, IsCanceled = state.OrderState.IsCanceled, IsCompleted = state.OrderState.IsCompleted, IsError = state.OrderState.IsError, IsProcessing = state.OrderState.IsProcessing, }; } public enum DataPreviewType { Visualization, Node, Edge, Order, Action, Infomation, Battery, Error } public class OrderState { public string OrderId { get; set; } = ""; public int OrderUpdateId { get; set; } public string ZoneSetId { get; set; } = ""; public string LastNodeId { get; set; } = ""; public int LastNodeSequenceId { get; set; } public bool Driving { get; set; } public bool Paused { get; set; } public bool NewBaseRequest { get; set; } public double DistanceSinceLastNode { get; set; } public string OperatingMode { get; set; } = ""; public bool IsError { get; set; } public bool IsCompleted { get; set; } public bool IsProcessing { get; set; } public bool IsCanceled { get; set; } } }