using System.Text.Json; using System.Text.Json.Nodes; using OMS.NET.DbClass; namespace OMS.NET.Common { public class LayerData { public string? TemplateId { get; set; } public long LayerId { get; set; } public bool HasChange { get; set; } = false; public string Type { get; set; } public JsonNode? Members { get; set; } public JsonNode? Structure { get; set; } public int Phase { get; set; } = 1; public LayerData(long layerId, string type) { LayerId = layerId; Type = type; } public LayerData(string? templateId, MapLayer layer) { TemplateId = templateId; LayerId = layer.Id; Type = layer.Type; Members = (layer.Type == "order") ? JsonNode.Parse(layer.Members) : JsonNode.Parse(Util.Base64ToJson(layer.Members)); Structure = string.IsNullOrEmpty(layer.Structure) ? null : JsonNode.Parse(Util.Base64ToJson(layer.Structure)); Phase = layer.Phase; } public void AppendElement(long itemId, string ItemType) { if (this.Type == "order") { GlobalArea.Log.Error($"order图层不能添加{ItemType}元素"); return; } if (this.Members![itemId.ToString()] == null) { this.Members![itemId.ToString()] = ItemType; this.Structure!.AsArray().Add(itemId); this.HasChange = true; //上传图层到数据库 MapLayer mapLayer = ConvertToMapLayer(); MapLayer.Update(mapLayer); } } public MapLayer ConvertToMapLayer() { return new MapLayer() { Id = this.LayerId, Type = this.Type, Members = (this.Type == "order") ? this.Members!.ToString() : Util.JsonToBase64(this.Members!.ToString()), Structure = (this.Structure == null) ? "" : Util.JsonToBase64(this.Structure!.ToString()), Phase = this.Phase }; } } }