图层排序

dev
nxiaoxiao 1 year ago
parent 2666922c4e
commit cb0103b988

@ -107,6 +107,29 @@ namespace OMS.NET.Common
}
}
public void AdjustOrderLayer(long layerAId, long layerBId, string type)
{
if (Type == "order")
{
JsonArray array = Members!.AsArray();
int indexA = array.FindElementIndex(layerAId);
int indexB = array.FindElementIndex(layerBId);
if (type == "up")
{
array.RemoveAt(indexA);
array.Insert(indexB, layerAId);
}
if (type == "down")
{
array.RemoveAt(indexA);
indexB = array.FindElementIndex(layerBId);
array.Insert(indexB + 1, layerAId);
}
UpdateToDb();
}
}
public MapLayer ConvertToMapLayer()
{
return new MapLayer()

@ -380,21 +380,13 @@ namespace OMS.NET
}
}
// public static LayerData? GetLayerDataByLayerId(long layerId)
// {
// lock (_LayerDataListLock)
// {
// try
// {
// return _LayerDataList.Where(x => x.LayerId == layerId).First();
// }
// catch
// {
// Log.Warn("通过图层id未获取到图层数据");
// return null;
// }
// }
// }
public static LayerData GetOrderLayerData()
{
lock (_LayerDataListLock)
{
return _LayerDataList.Where(x => x.Type == "order").First()!;
}
}
public static dynamic AdjustElementOrder(long elementAId, long elementBId, string templateA, string templateB, string method)
{

@ -0,0 +1,50 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using OMS.NET.Common;
namespace OMS.NET.Instructs
{
public class UpdateLayerOrderInstruct : Instruct
{
public UpdateLayerOrderInstruct()
{
Type = "broadcast";
Class = "updateLayerOrder";
}
public override Task Handler(string wsid)
{
return Task.Run(() =>
{
if (!GlobalArea.LoginCheckByID(wsid)) return;//登录检查不通过则直接退出
if (Data?.GetType() != typeof(JsonElement)) return;//Data 非空和JsonElement类型检查
string conveyor = GlobalArea.GetLoginEmailByID(wsid);
try
{
long active = Data.GetProperty("active").GetInt64();
long passive = Data.GetProperty("passive").GetInt64();
string type = Data.GetProperty("type").GetString();
LayerData order = GlobalArea.GetOrderLayerData();
order.AdjustOrderLayer(active, passive, type);
ResponseOrBroadcastInstructs.Add(new Instruct()
{
IsBroadcast = true,
Type = "broadcast",
Class = "updateLayerOrder",
Conveyor = conveyor,
Time = GlobalArea.GetCurrentTime(),
Data = new
{
member = order.Members
}
});
}
catch (Exception ex)
{
GlobalArea.Log.Warn($"处理{Class}广播指令出错:" + ex.Message);
}
});
}
}
}
Loading…
Cancel
Save