diff --git a/Common/LayerData.cs b/Common/LayerData.cs index 8b49fe9..240e163 100644 --- a/Common/LayerData.cs +++ b/Common/LayerData.cs @@ -70,7 +70,7 @@ namespace OMS.NET.Common UpdateToDb(); } - private void UpdateToDb() + public void UpdateToDb() { //上传图层到数据库 MapLayer mapLayer = ConvertToMapLayer(); diff --git a/GlobalArea.cs b/GlobalArea.cs index d708fee..ceb6311 100644 --- a/GlobalArea.cs +++ b/GlobalArea.cs @@ -536,6 +536,14 @@ namespace OMS.NET } } + public static bool IsLayerNameRepeat(string name) + { + lock (_LayerDataListLock) + { + return _LayerDataList.Any(x => x.Name == name); + } + } + private static string CreateGroupLayerTemplateId() { lock (_LayerDataListLock) diff --git a/Instructs/RenameLayerInstruct.cs b/Instructs/RenameLayerInstruct.cs index 178c788..0aae831 100644 --- a/Instructs/RenameLayerInstruct.cs +++ b/Instructs/RenameLayerInstruct.cs @@ -1,4 +1,5 @@ using System.Text.Json; +using OMS.NET.Common; namespace OMS.NET.Instructs { @@ -18,8 +19,30 @@ namespace OMS.NET.Instructs if (Data?.GetType() != typeof(JsonElement)) return;//Data 非空和JsonElement类型检查 try { - //string conveyor = GlobalArea.GetLoginEmailByID(wsid); + + long id = Data.GetProperty("id").GetInt64(); + string name = Data.GetProperty("name").GetString(); + if (GlobalArea.IsLayerNameRepeat(name)) throw new Exception("存在名称重复"); + LayerData layerData = GlobalArea.GetLayerDataByLayerId(id) ?? throw new Exception($"未找到MapLayer {id}"); + layerData.Structure!.AsArray().RemoveAt(0); + layerData.Structure!.AsArray().Insert(0, name); + layerData.UpdateToDb(); + + string conveyor = GlobalArea.GetLoginEmailByID(wsid); string time = GlobalArea.GetCurrentTime(); + ResponseOrBroadcastInstructs.Add(new Instruct() + { + IsBroadcast = true, + Type = "broadcast", + Class = "renameLayer", + Conveyor = conveyor, + Time = time, + Data = new + { + id = id, + name = name, + } + }); } catch (Exception ex) {