diff --git a/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj b/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj index 215fc5d..f3a27fc 100644 --- a/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj +++ b/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj @@ -54,6 +54,9 @@ + + D:\U8SOFT\U8M\UFSoft.U8.U8M.DAC.dll + diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs index 0641e45..b6abff0 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs @@ -1,19 +1,15 @@ using log4net; using System; +using System.Collections; using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; using UFIDA.U8.Framework.Api.ControlObject.Common; using UFIDA.U8.Framework.Api.ControlObject.Json; using UFIDA.U8.Framework.Api.ControlObject.Models; -using UFSoft.U8.Framework.BizBase; using UFSoft.U8.Framework.ContextSrv; -using UFSoft.U8.Framework.DBConnection; -using UFSoft.U8.Framework.LoginContext; using UFSoft.U8.U8M.BFDispatcher; using UFSoft.U8.U8M.Common; +using UFSoft.U8.U8M.DAC; using UFSoft.U8.U8M.DOSchema.SF; -using ThreadContext = UFSoft.U8.Framework.ContextSrv.ThreadContext; // ReSharper disable IdentifierTypo // ReSharper disable InconsistentNaming // ReSharper disable StringLiteralTypo @@ -22,6 +18,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { public class MoRoutingBill { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); private MoRoutingBillDs GetEmptyDs(string cCardNum) @@ -48,7 +45,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return ds; } - private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary input) { @@ -90,7 +86,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return (MoRoutingBillDs)be.DataObject; } - public BaseResult Save(string cCardNum, Dictionary input) { try @@ -123,5 +118,168 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } } + + public BaseResult Delete(string cCardNum, List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要删除的数据"); + + var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + var newInput = new List(); + + while (dataReader.Read()) + { + newInput.Add(int.Parse($"{dataReader[0]}")); + } + + return Delete(newInput); + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + } + } + + public BaseResult Delete(List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要删除的数据"); + + var ht = new Hashtable(); + + foreach (var input in inputs) + { + ht.Add(input, input); + } + + var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer()); + + return new BaseResult() { bSuccess = true, message = "删除成功", result = id }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + + } + + } + + public BaseResult Verify(string cCardNum, List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要审核的数据"); + + var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + var newInput = new List(); + + while (dataReader.Read()) + { + newInput.Add(int.Parse($"{dataReader[0]}")); + } + + return Verify(newInput); + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + } + } + + public BaseResult Verify(List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要审核的数据"); + + var ht = new Dictionary(); + + foreach (var input in inputs) + { + ht.Add(input, $"{input}"); + } + + var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer()); + + return new BaseResult() { bSuccess = true, message = "审核成功", result = id }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + + } + + } + + public BaseResult UnVerify(string cCardNum, List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要弃审的数据"); + + var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + var newInput = new List(); + + while (dataReader.Read()) + { + newInput.Add(int.Parse($"{dataReader[0]}")); + } + + return UnVerify(newInput); + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + } + } + + public BaseResult UnVerify(List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要弃审的数据"); + + var ht = new Dictionary(); + + foreach (var input in inputs) + { + ht.Add(input, $"{input}"); + } + + var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer()); + + return new BaseResult() { bSuccess = true, message = "弃审成功", result = id }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + + } + + } + } } diff --git a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj index 56b19fd..a20e22d 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj +++ b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj @@ -120,6 +120,10 @@ D:\U8SOFT\U8M\UFSoft.U8.U8M.Common.dll False + + D:\U8SOFT\U8M\UFSoft.U8.U8M.DAC.dll + False + D:\U8SOFT\U8M\UFSoft.U8.U8M.DOConvert.dll False diff --git a/UFIDA.U8.Framework.Api/App_Data/API_Meta.db b/UFIDA.U8.Framework.Api/App_Data/API_Meta.db index df2fdc2..bdbe688 100644 Binary files a/UFIDA.U8.Framework.Api/App_Data/API_Meta.db and b/UFIDA.U8.Framework.Api/App_Data/API_Meta.db differ diff --git a/UFIDA.U8.Framework.Api/App_Data/U8API.xml b/UFIDA.U8.Framework.Api/App_Data/U8API.xml index 5c78678..36c5003 100644 --- a/UFIDA.U8.Framework.Api/App_Data/U8API.xml +++ b/UFIDA.U8.Framework.Api/App_Data/U8API.xml @@ -573,13 +573,141 @@ 车间管理 - + - 新增单据 + 日志组件 + + + + + 新增报工 系统号 单据类型编码 - 报文数据 + 报文数据 + + + + + 新增订单报工 + + 系统号 + 报文数据 + + + + + 新增工序报工 + + 系统号 + 报文数据 + + + + + 新增转移报工 + + 系统号 + 报文数据 + + + + + 删除报工 + + 系统号 + 单据类型编码 + 报文数据 + + + + + 删除订单报工 + + 系统号 + 报文数据 + + + + + 删除工序报工 + + 系统号 + 报文数据 + + + + + 删除转移报工 + + 系统号 + 报文数据 + + + + + 审核报工 + + 系统号 + 单据类型编码 + 报文数据 + + + + + 审核订单报工 + + 系统号 + 报文数据 + + + + + 审核工序报工 + + 系统号 + 报文数据 + + + + + 审核转移报工 + + 系统号 + 报文数据 + + + + + 弃审报工 + + 系统号 + 单据类型编码 + 报文数据 + + + + + 弃审订单报工 + + 系统号 + 报文数据 + + + + + 弃审工序报工 + + 系统号 + 报文数据 + + + + + 弃审转移报工 + + 系统号 + 报文数据 @@ -590,6 +718,11 @@ + + + 报工单删除参数 + + 查询参数 diff --git a/UFIDA.U8.Framework.Api/Controllers/CommonController.cs b/UFIDA.U8.Framework.Api/Controllers/CommonController.cs index f40053b..f863401 100644 --- a/UFIDA.U8.Framework.Api/Controllers/CommonController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/CommonController.cs @@ -38,7 +38,7 @@ namespace UFIDA.U8.Framework.Api.Controllers { logInfo.Error(ex.Message, ex); - return new BaseResult { bSuccess = true, message = "加密失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "加密失败", result = ex.Message }; } } @@ -59,7 +59,7 @@ namespace UFIDA.U8.Framework.Api.Controllers { logInfo.Error(ex.Message, ex); - return new BaseResult { bSuccess = true, message = "解密失败", result =ex.Message }; + return new BaseResult { bSuccess = false, message = "解密失败", result =ex.Message }; } } @@ -80,7 +80,7 @@ namespace UFIDA.U8.Framework.Api.Controllers .Where(a => a.cAccountNo == input.cAccId) .FirstAsync(); - return new BaseResult { bSuccess = false, message = "查询成功", result = res }; + return new BaseResult { bSuccess = true, message = "查询成功", result = res }; } catch (Exception ex) { diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/MOController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/MOController.cs new file mode 100644 index 0000000..0882eb9 --- /dev/null +++ b/UFIDA.U8.Framework.Api/Controllers/U8/MOController.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; + +namespace UFIDA.U8.Framework.Api.Controllers.U8 +{ + /// + /// 生产订单 + /// + public class MOController : ApiController + { + + } +} diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs index 111ebbc..20f5896 100644 --- a/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs @@ -1,18 +1,16 @@ using log4net; using System; using System.Collections.Generic; -using System.Configuration; -using System.Linq; -using System.Net; -using System.Net.Http; using System.Threading.Tasks; using System.Web.Http; using Microsoft.Extensions.Caching.Memory; -using SqlSugar; -using UFIDA.U8.Framework.Api.Common.Unit.GM; using UFIDA.U8.Framework.Api.ControlObject.Models; using UFIDA.U8.Framework.Api.ControlObject.U8M; using UFIDA.U8.Framework.Api.Unit; +using UFIDA.U8.Framework.Api.Models; +// ReSharper disable InconsistentNaming +// ReSharper disable IdentifierTypo +// ReSharper disable FieldCanBeMadeReadOnly.Local namespace UFIDA.U8.Framework.Api.Controllers.U8 { @@ -21,24 +19,30 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// public class SFCController : ApiController { + /// + /// 日志组件 + /// protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); - private static MemoryCache _cache = new MemoryCache(new MemoryCacheOptions() { ExpirationScanFrequency = TimeSpan.FromMinutes(10) }); + private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) }); /// - /// 新增单据 + /// 新增报工 /// /// 系统号 /// 单据类型编码 - /// 报文数据 + /// 报文数据 /// [HttpPost] - [Route("api/U8/SFC/Save")] - public async Task> Save(string cAccId,string cCardNum, [FromBody] Dictionary input) + [Route("api/U8/SFC/MoRoutingBillSave")] + public async Task> MoRoutingBillSave(string cAccId,string cCardNum, [FromBody] Dictionary input) { try { - if (!_cache.TryGetValue($"U8M_Single", out BaseLogin baseLogin)) + if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") + throw new Exception("当前接口不支持此类型的单据"); + + if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) { baseLogin = new BaseLogin(); @@ -51,24 +55,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 baseLogin.Init(param); - _cache.Set("U8M_Single", baseLogin); - } - else - { - var param = await CommUnit.GetLoginParamter(cAccId); - - if (param == null) - { - throw new Exception("未能加载指定系统号的登录信息"); - } - - if (!baseLogin.CheckAccId(param.pAccId)) - { - baseLogin.ShutDown(); - baseLogin.Init(param); - } - _cache.Remove("U8M_Single"); - _cache.Set("U8M_Single", baseLogin); + _cache.Set($"U8M_{cAccId}", baseLogin); } var bf = new MoRoutingBill(); @@ -88,5 +75,339 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } + + /// + /// 新增订单报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC90/Save")] + [Route("api/U8/SFC/FC90/Save/{cAccId}")] + public async Task> FC90Save(string cAccId, [FromBody] Dictionary input) + { + return await MoRoutingBillSave(cAccId, "FC90", input); + } + + /// + /// 新增工序报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC91/Save")] + [Route("api/U8/SFC/FC91/Save/{cAccId}")] + public async Task> FC91Save(string cAccId, [FromBody] Dictionary input) + { + return await MoRoutingBillSave(cAccId, "FC91", input); + } + + /// + /// 新增转移报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC92/Save")] + [Route("api/U8/SFC/FC92/Save/{cAccId}")] + public async Task> FC92Save(string cAccId, [FromBody] Dictionary input) + { + return await MoRoutingBillSave(cAccId, "FC92", input); + } + + /// + /// 删除报工 + /// + /// 系统号 + /// 单据类型编码 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/MoRoutingBillDelete")] + public async Task> MoRoutingBillDelete(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) + { + try + { + if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") + throw new Exception("当前接口不支持此类型的单据"); + + if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) + { + baseLogin = new BaseLogin(); + + var param = await CommUnit.GetLoginParamter(cAccId); + + if (param == null) + { + throw new Exception("未能加载指定系统号的登录信息"); + } + + baseLogin.Init(param); + + _cache.Set($"U8M_{cAccId}", baseLogin); + } + + var bf = new MoRoutingBill(); + + if (input.cVouchCode != null && input.cVouchCode.Count > 0) + { + return bf.Delete(cCardNum, input.cVouchCode); + } + else + { + return bf.Delete(input.MID); + } + + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; + } + + + } + + + /// + /// 删除订单报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC90/Delete")] + [Route("api/U8/SFC/FC90/Delete/{cAccId}")] + public async Task> FC90Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillDelete(cAccId, "FC90", input); + } + + /// + /// 删除工序报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC91/Delete")] + [Route("api/U8/SFC/FC91/Delete/{cAccId}")] + public async Task> FC91Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillDelete(cAccId, "FC91", input); + } + + /// + /// 删除转移报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC92/Delete")] + [Route("api/U8/SFC/FC92/Delete/{cAccId}")] + public async Task> FC92Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillDelete(cAccId, "FC92", input); + } + + /// + /// 审核报工 + /// + /// 系统号 + /// 单据类型编码 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/MoRoutingBillVerify")] + public async Task> MoRoutingBillVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) + { + try + { + if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") + throw new Exception("当前接口不支持此类型的单据"); + + if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) + { + baseLogin = new BaseLogin(); + + var param = await CommUnit.GetLoginParamter(cAccId); + + if (param == null) + { + throw new Exception("未能加载指定系统号的登录信息"); + } + + baseLogin.Init(param); + + _cache.Set($"U8M_{cAccId}", baseLogin); + } + + var bf = new MoRoutingBill(); + + if (input.cVouchCode != null && input.cVouchCode.Count > 0) + { + return bf.Verify(cCardNum, input.cVouchCode); + } + else + { + return bf.Verify(input.MID); + } + + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; + } + + + } + + + /// + /// 审核订单报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC90/Verify")] + [Route("api/U8/SFC/FC90/Verify/{cAccId}")] + public async Task> FC90Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillVerify(cAccId, "FC90", input); + } + + /// + /// 审核工序报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC91/Verify")] + [Route("api/U8/SFC/FC91/Verify/{cAccId}")] + public async Task> FC91Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillVerify(cAccId, "FC91", input); + } + + /// + /// 审核转移报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC92/Verify")] + [Route("api/U8/SFC/FC92/Verify/{cAccId}")] + public async Task> FC92Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillVerify(cAccId, "FC92", input); + } + + /// + /// 弃审报工 + /// + /// 系统号 + /// 单据类型编码 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/MoRoutingBillUnVerify")] + public async Task> MoRoutingBillUnVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) + { + try + { + if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") + throw new Exception("当前接口不支持此类型的单据"); + + if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) + { + baseLogin = new BaseLogin(); + + var param = await CommUnit.GetLoginParamter(cAccId); + + if (param == null) + { + throw new Exception("未能加载指定系统号的登录信息"); + } + + baseLogin.Init(param); + + _cache.Set($"U8M_{cAccId}", baseLogin); + } + + var bf = new MoRoutingBill(); + + if (input.cVouchCode != null && input.cVouchCode.Count > 0) + { + return bf.UnVerify(cCardNum, input.cVouchCode); + } + else + { + return bf.UnVerify(input.MID); + } + + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; + } + + + } + + + /// + /// 弃审订单报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC90/UnVerify")] + [Route("api/U8/SFC/FC90/UnVerify/{cAccId}")] + public async Task> FC90UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillVerify(cAccId, "FC90", input); + } + + /// + /// 弃审工序报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC91/UnVerify")] + [Route("api/U8/SFC/FC91/UnVerify/{cAccId}")] + public async Task> FC91UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillUnVerify(cAccId, "FC91", input); + } + + /// + /// 弃审转移报工 + /// + /// 系统号 + /// 报文数据 + /// + [HttpPost] + [Route("api/U8/SFC/FC92/UnVerify")] + [Route("api/U8/SFC/FC92/UnVerify/{cAccId}")] + public async Task> FC92UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) + { + return await MoRoutingBillUnVerify(cAccId, "FC92", input); + } + } } diff --git a/UFIDA.U8.Framework.Api/Models/SFCInput.cs b/UFIDA.U8.Framework.Api/Models/SFCInput.cs new file mode 100644 index 0000000..9a10172 --- /dev/null +++ b/UFIDA.U8.Framework.Api/Models/SFCInput.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace UFIDA.U8.Framework.Api.Models +{ + public class SFCInput + { + } + + /// + /// 报工单删除参数 + /// + public class DeleteMoRoutingBillInput + { + public List cVouchCode { get; set; } + public List MID { get; set; } + } +} \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj index 406cf35..f5aa8b4 100644 --- a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj +++ b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj @@ -401,10 +401,12 @@ + Global.asax +