/// <summary> /// 删除菜单按钮功能项 /// </summary> /// <param name="menuButtonFunction"></param> /// <returns></returns> public async Task <OperateStatus> DeleteMenuButtonFunction(SystemMenuButtonFunction menuButtonFunction) { OperateStatus operateStatus = new OperateStatus(); if (await _menuButtonFunctionRepository.DeleteMenuButtonFunction(menuButtonFunction)) { operateStatus.ResultSign = ResultSign.Successful; operateStatus.Message = Chs.Successful; } return(operateStatus); }
/// <summary> /// 保存功能项信息 /// </summary> /// <param name="rotes"></param> /// <returns></returns> public async Task <OperateStatus> SaveFunction(IList <MvcRote> rotes) { OperateStatus operateStatus = new OperateStatus(); IList <SystemFunction> insertFunctions = new List <SystemFunction>(); IList <SystemFunction> deleteFunctions = new List <SystemFunction>(); IList <SystemFunction> updateFunctions = new List <SystemFunction>(); if (rotes.Any()) { try { //获取该系统的功能项信息 IList <SystemFunction> functions = (await _functionRepository.GetSystemFunctionsByAppCode(new IdInput <string>(rotes[0].AppCode))).ToList(); //新增功能项信息 foreach (var rote in rotes) { //判断该功能项是否已存在 SystemFunction function = functions.Where(w => w.IsPage == rote.IsPage && w.Area == rote.Area && w.Controller == rote.Controller && w.Action == rote.Action && w.AppCode == rote.AppCode).FirstOrDefault(); //若存在则不进行操作 if (function == null) { SystemFunction insertFunction = rote.MapTo <SystemFunction>(); insertFunction.FunctionId = CombUtil.NewComb(); insertFunctions.Add(insertFunction); } else { //如果描述不一样则进行修改 if (function.Description != rote.Description || function.ByDeveloperCode != rote.ByDeveloperCode || function.ByDeveloperTime != rote.ByDeveloperTime) { function.ByDeveloperCode = rote.ByDeveloperCode; function.ByDeveloperTime = rote.ByDeveloperTime; function.Description = rote.Description; updateFunctions.Add(function); } } } //需要删除的功能项信息 foreach (var function in functions) { //判断该功能项是否已存在 MvcRote rote = rotes.Where(w => w.IsPage == function.IsPage && w.Area == function.Area && w.Controller == function.Controller && w.Action == function.Action && w.AppCode == function.AppCode).FirstOrDefault(); //若存在则不进行操作 if (rote == null) { deleteFunctions.Add(function); } } //删除 if (deleteFunctions.Any()) { //需要进行删除的字符串 foreach (var delete in deleteFunctions) { //删除关联项信息 await _menuButtonFunctionRepository.DeleteMenuButtonFunction(new SystemMenuButtonFunction() { FunctionId = delete.FunctionId }); //删除功能项信息 if ((await DeleteAsync(delete)).ResultSign == ResultSign.Successful) { operateStatus.ResultSign = ResultSign.Successful; } } } //更新 if (updateFunctions.Any()) { foreach (var update in updateFunctions) { if ((await UpdateAsync(update)).ResultSign == ResultSign.Successful) { operateStatus.ResultSign = ResultSign.Successful; } } } //新增 if (insertFunctions.Any() && await _functionRepository.BulkInsertAsync(insertFunctions) > 0) { operateStatus.ResultSign = ResultSign.Successful; } if (operateStatus.ResultSign == ResultSign.Successful) { operateStatus.Message = Chs.Successful; } } catch (Exception ex) { operateStatus.ResultSign = ResultSign.Error; operateStatus.Message = ex.Message; } } else { operateStatus.ResultSign = ResultSign.Successful; operateStatus.Message = Chs.Successful; } return(operateStatus); }