| using Microsoft.AspNetCore.Authorization; | 
| using Microsoft.AspNetCore.DataProtection.KeyManagement; | 
| using Microsoft.AspNetCore.Http; | 
| using Microsoft.AspNetCore.Mvc; | 
| using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; | 
| using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | 
| using Quartz.Util; | 
| using SqlSugar; | 
| using System.ComponentModel; | 
| using System.Reflection; | 
| using WIDESEAWCS_Common; | 
| using WIDESEAWCS_Core; | 
| using WIDESEAWCS_Core.BaseController; | 
| using WIDESEAWCS_Core.Enums; | 
| using WIDESEAWCS_Core.Helper; | 
| using WIDESEAWCS_DTO.BasicInfo; | 
| using WIDESEAWCS_Model.Models; | 
| using WIDESEAWCS_QuartzJob.Models; | 
| using WIDESEAWCS_QuartzJob.Repository; | 
| using WIDESEAWCS_QuartzJob.Service; | 
|   | 
| namespace WIDESEAWCS_Server.Controllers.BasicInfo | 
| { | 
|     [Route("api/Router")] | 
|     [ApiController] | 
|     public class RouterController : ApiBaseController<IRouterService, Dt_Router> | 
|     { | 
|         private readonly IDeviceInfoRepository _deviceInfoRepository; | 
|         private readonly IDeviceProtocolRepository _deviceProtocolRepository; | 
|         public RouterController(IRouterService service, IDeviceInfoRepository deviceInfoRepository, IDeviceProtocolRepository deviceProtocolRepository) : base(service) | 
|         { | 
|             _deviceInfoRepository = deviceInfoRepository; | 
|             _deviceProtocolRepository = deviceProtocolRepository; | 
|         } | 
|   | 
|         [HttpPost, Route("QueryRoutes"), AllowAnonymous] | 
|         public List<Dt_Router> QueryRoutes(string startPosi, string endPosi) | 
|         { | 
|             return Service.QueryNextRoutes(startPosi, endPosi); | 
|         } | 
|   | 
|         [HttpPost, Route("QueryAllPositions"), AllowAnonymous] | 
|         public List<string> QueryAllPositions(string deviceCode) | 
|         { | 
|             return Service.QueryAllPositions(deviceCode); | 
|         } | 
|   | 
|         [HttpPost, Route("GetAllWholeRouters"), AllowAnonymous] | 
|         public WebResponseContent GetAllWholeRouters() | 
|         { | 
|             WebResponseContent content = new(); | 
|             try | 
|             { | 
|                 List<dynamic> dynamics = Service.GetAllWholeRouters(); | 
|   | 
|                 content = WebResponseContent.Instance.OK(data: dynamics); | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content = WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|             return content;        } | 
|   | 
|         //[HttpPost, Route("GetBaseRouterInfo"), AllowAnonymous] | 
|         //public WebResponseContent GetBaseRouterInfo() | 
|         //{ | 
|         //    try | 
|         //    { | 
|         //        #region 获取路由类型 | 
|         //        List<object> routerTypes = new List<object>(); | 
|         //        Type routerType = typeof(RouterInOutType); | 
|         //        List<int> routerIndexs = Enum.GetValues(typeof(RouterInOutType)).Cast<int>().ToList(); | 
|         //        int routerIndex = 0; | 
|         //        foreach (var item in routerIndexs) | 
|         //        { | 
|         //            FieldInfo? fieldInfo = routerType.GetField(((RouterInOutType)item).ToString()); | 
|         //            DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); | 
|         //            if (description != null) | 
|         //            { | 
|         //                routerTypes.Add(new { key = item.ToString(), value = description.Description }); | 
|         //            } | 
|         //            else | 
|         //            { | 
|         //                routerTypes.Add(new { key = item.ToString(), value = item.ToString() }); | 
|         //            } | 
|         //            routerIndex++; | 
|         //        } | 
|         //        #endregion | 
|   | 
|         //        #region 获取设备编号 | 
|         //        object deviceCodes = _deviceProtocolRepository.QueryData(x => true).GroupBy(x => x.DeviceChildCode).Select(x => new { key = x.Key, value = x.Key }).ToList(); | 
|   | 
|         //        object areaInfos = Enum.GetNames(typeof(AreaInfo)).Select(x => new { key = x, value = x }).ToList(); | 
|   | 
|   | 
|         //        #endregion | 
|   | 
|         //        return WebResponseContent.Instance.OK(data: new { routerTypes, deviceCodes, areaInfos }); | 
|         //    } | 
|         //    catch (Exception ex) | 
|         //    { | 
|         //        return WebResponseContent.Instance.Error(ex.Message); | 
|         //    } | 
|   | 
|         //} | 
|   | 
|         [HttpPost, Route("AddRouters"), AllowAnonymous] | 
|         public WebResponseContent AddRouters([FromBody] List<RoutersAddDTO> routersAddDTOs, int routerType) | 
|         { | 
|             return Service.AddRouters(routersAddDTOs, routerType); | 
|         } | 
|     } | 
| } |