123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- using NEIntelligentControl2.Models.Messages;
- using NEIntelligentControl2.Models.Station;
- using SVGViewer.Models.Info;
- using SVGViewer.Models.Svg;
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Threading;
- namespace NEIntelligentControl2.Service.Station
- {
- /// <summary>
- /// 场站信息维护
- /// </summary>
- public class StationManager
- {
- private List<StationInfo> _StationInfos; // 场站信息
- private WEBHelper _WEBHelper;
- private string _Url;
- private Dictionary<string, StationInfo> _Stations;
- private List<StationInfo> _BoostStationInfos;
- private List<ShapeInfo> _BoostStationShapes;
- private Dictionary<string, ShapeInfo> _CustomizeShapesDic;
- public StationManager(WEBHelper web)
- {
- _WEBHelper = web;
- try
- {
- #if (DEBUG)
- _Url = ConfigurationManager.AppSettings["ServicePathDebug"];
- #else
- _Url = ConfigurationManager.AppSettings["ServicePath"];
- #endif
- }
- catch (Exception ex)
- {
- Console.WriteLine("读取配置文件[ServicePath]出错!", ex);
- }
- }
- /// <summary>
- /// 获取场站信息
- /// </summary>
- /// <returns>场站信息</returns>
- public List<StationInfo> GetStationInfos()
- {
- try
- {
- if (_StationInfos == null || _StationInfos.Count <= 0)
- {
- _StationInfos = _WEBHelper.HttpGetJSON<List<StationInfo>>($"{_Url}/api/station/info");
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine("读取场站信息出错!", ex);
- }
- return _StationInfos;
- }
- /// <summary>
- /// 获取单场站信息
- /// </summary>
- /// <param name="stationId">场站ID</param>
- /// <returns></returns>
- internal StationInfo GetStatonInfo(string stationId)
- {
- try
- {
- if (_Stations == null)
- {
- _Stations = _StationInfos?.ToDictionary(s => s.Id, s => s);
- }
- }
- catch { }
- if (_Stations == null || !_Stations.ContainsKey(stationId)) return null;
- return _Stations[stationId];
- }
- /// <summary>
- /// 获取升压站图形信息
- /// </summary>
- internal List<ShapeInfo> GetBoostStationShapes()
- {
- if (_BoostStationShapes == null)
- {
- InitBoostStationInfos();
- }
- return _BoostStationShapes;
- }
- /// <summary>
- /// 获取升压站场站信息
- /// </summary>
- /// <returns></returns>
- internal List<StationInfo> GetBoostStationInfos()
- {
- if (_BoostStationInfos == null)
- {
- InitBoostStationInfos();
- }
- return _BoostStationInfos;
- }
- /// <summary>
- /// 移除升压站
- /// </summary>
- /// <exception cref="NotImplementedException"></exception>
- internal string RemoveBoostStation(ShapeInfo shape)
- {
- try
- {
- var v = _WEBHelper.HttpGetString($"{_Url}/api/boost_station/remove?id={shape.Id}");
- return v;
- }
- catch(Exception e)
- {
- return e.Message;
- }
- }
- /// <summary>
- /// 移除二次图
- /// </summary>
- /// <param name="arg1">二次图信息</param>
- internal string RemoveSubStation(ShapeInfo arg1)
- {
- try
- {
- var v = _WEBHelper.HttpGetString($"{_Url}/api/boost_station/substation/remove?id={arg1.Id}");
- return v;
- }
- catch (Exception e)
- {
- return e.Message;
- }
- }
- private void InitBoostStationInfos()
- {
- try
- {
- var ls = _WEBHelper.HttpGetJSON<List<ShapeInfo>>($"{_Url}/api/boost_station/");
- _BoostStationShapes = ls;
- var sis = from shape in ls select new StationInfo() { Name = shape.Name, Id = shape.Id };
- _BoostStationInfos = sis.ToList();
- _BoostStationInfos.Insert(0, new StationInfo() { Name = "全部", Id = "ALL" });
- }
- catch
- {
- _BoostStationInfos = new List<StationInfo>();
- _BoostStationShapes = new List<ShapeInfo>();
- }
- }
- /// <summary>
- /// 根据ID获取升压站信息
- /// </summary>
- /// <exception cref="NotImplementedException"></exception>
- internal async Task<ShapeInfo> GetNewStationInfo(string id)
- {
- return await Task.Run(getShapeInfo);
- ShapeInfo getShapeInfo()
- {
- try
- {
- var si = _WEBHelper.HttpGetJSON<ShapeInfo>($"{_Url}/api/boost_station/booststation?id={id}");
- return si;
- }
- catch { }
- return null;
- }
- }
- /// <summary>
- /// 获取二次图信息
- /// </summary>
- /// <param name="subId">二次图ID</param>
- /// <returns></returns>
- internal async Task<ShapeInfo> GetSubBoostStation(string subId)
- {
- return await Task.Run(getShapeInfo);
- ShapeInfo getShapeInfo()
- {
- try
- {
- var si = _WEBHelper.HttpGetJSON<ShapeInfo>($"{_Url}/api/boost_station/substation?id={subId}");
- return si;
- }
- catch { }
- return null;
- }
- }
- /// <summary>
- /// 获取所有二次图
- /// </summary>
- /// <returns></returns>
- internal async Task<List<ShapeInfo>> GetSubStations()
- {
- return await Task.Run(getShapeInfo);
- List<ShapeInfo> getShapeInfo()
- {
- try
- {
- var si = _WEBHelper.HttpGetJSON<List<ShapeInfo>>($"{_Url}/api/boost_station/substation/all");
- return si;
- }
- catch { }
- return null;
- }
- }
- /// <summary>
- /// 获取自定义控件
- /// </summary>
- internal List<ShapeInfo> GetCustomizeShapes()
- {
- try
- {
- var ls = _WEBHelper.HttpGetJSON<List<ShapeInfo>>($"{_Url}/api/boost_station/customize");
- _CustomizeShapesDic = ls?.ToDictionary(c => c.Id, c => c);
- return ls;
- }
- catch { }
- return new List<ShapeInfo>();
- }
- internal Dictionary<string,ShapeInfo> GetCustomizeShapesDic()
- {
- if (_CustomizeShapesDic == null)
- {
- _CustomizeShapesDic = GetCustomizeShapes()?.ToDictionary(c => c.Id, c => c);
- }
- return _CustomizeShapesDic;
- }
- /// <summary>
- /// 添加升压站
- /// </summary>
- /// <param name="info">图形信息</param>
- internal string AddOrUpdateStation(ShapeInfo info, Windows.BoostStation.BoostStationEditType editType)
- {
- try
- {
- switch (editType)
- {
- case Windows.BoostStation.BoostStationEditType.BoostStationEdit: // 升压站编辑
- return _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/update", info);
- case Windows.BoostStation.BoostStationEditType.BoostStationAdd: // 升压站添加
- return _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/add", info);
- case Windows.BoostStation.BoostStationEditType.SubStationAdd: // 二次图添加
- return _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/substation/add", info);
- case Windows.BoostStation.BoostStationEditType.SubStationEdit: // 二次图编辑
- return _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/substation/update", info);
- default:return "操作类型错误!";
- }
- }
- catch (Exception e)
- {
- return e.Message;
- }
- }
- /// <summary>
- /// 添加或移除自定义控件
- /// </summary>
- /// <param name="info">图形信息</param>
- /// <param name="isadd">是否添加</param>
- internal string AddOrRemoveCustomizeShape(ShapeInfo info, string type)
- {
- try
- {
- string v = "";
- switch (type)
- {
- case "add":
- v = _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/customize/add", info);
- break;
- case "remove":
- v = _WEBHelper.HttpGetString($"{_Url}/api/boost_station/customize/remove?id={info.Id}");
- break;
- case "edit":
- v = _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/customize/update", info);
- break;
- default:return v;
- }
- return v;
- }
- catch (Exception e)
- {
- return e.Message;
- }
- }
- /// <summary>
- /// 将导出的svg发送到服务器
- /// </summary>
- /// <param name="svg">svg字符串</param>
- /// <param name="info">svg信息</param>
- /// <returns></returns>
- /// <exception cref="NotImplementedException"></exception>
- internal string OutputSvgInfo(object svg, SvgInfo info)
- {
- try
- {
- var s = _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/svg", svg);
- if (s != "success")
- {
- return s;
- }
- s = _WEBHelper.HttpPostBodyString($"{_Url}/api/boost_station/svginfo", info);
- return s;
- }
- catch (Exception e)
- {
- return $"导出svg出现错误:{e.Message}";
- }
- }
- }
- }
|