public ResponseBase Delete(long id) { ResponseBase response; using (var unitOfWork = _unitOfWorkFactory.Create()) { try { var button = new MenuButtonModel(unitOfWork.MenuButtonRepository.GetByID(id)); var children = GetChildButtons(button); if (children != null) { foreach (var child in children) { unitOfWork.MenuButtonRepository.Delete(child.Id); } } unitOfWork.Save(); response = new ResponseBase() { IsSucceed = true, Message = Modules.Resources.Logic.MenuButtonDeleteSuccess }; } catch (Exception e) { _logger.LogToFile(_logger.CreateErrorMessage(e)); response = new ResponseBase() { IsSucceed = false, Message = Modules.Resources.Logic.MenuButtonDeleteFailed }; } } return response; }
public MenuButtonViewModel(MenuPresenterViewModel parent, MenuButtonModel model) { _parent = parent; Model = model; ClickCommand = new Command(OnClickCommand); LoadResources(); }
public async Task <IActionResult> SetMenuButton([FromForm] MenuButtonModel menuButtonModel) { var result = new Result { code = (int)StatusCodeEnum.Success, msg = StatusCodeEnum.Success.GetEnumText() }; Guid mid = Guid.Empty; if (!Guid.TryParse(menuButtonModel.MenuId, out mid)) { result.code = (int)StatusCodeEnum.HttpMehtodError; result.msg = StatusCodeEnum.HttpMehtodError.GetEnumText(); return(Json(result)); } if (string.IsNullOrWhiteSpace(menuButtonModel.ButtonIds)) { result.code = (int)StatusCodeEnum.HttpMehtodError; result.msg = StatusCodeEnum.HttpMehtodError.GetEnumText(); return(Json(result)); } var setResult = await _menuServices.SetMenuButtonAsync(menuButtonModel); if (setResult.code != 0) { return(Json(setResult)); } return(Json(result)); }
public async Task <Result> SetMenuButtonAsync(MenuButtonModel menuButton) { var result = new Result(); if (menuButton == null) { result.code = (int)StatusCodeEnum.ParameterError; result.msg = StatusCodeEnum.ParameterError.GetEnumText(); return(result); } var menuButtonList = new List <MenuButton>(); foreach (var buttonid in menuButton.ButtonIds.Split(',')) { menuButtonList.Add(new MenuButton { MenuId = Guid.Parse(menuButton.MenuId), ButtonId = Guid.Parse(buttonid) }); } int isSet = await _menuRepository.SetMenuButtonAsync(menuButtonList); if (isSet == 0) { result.code = (int)StatusCodeEnum.Accepted; result.msg = StatusCodeEnum.Accepted.GetEnumText(); } return(result); }
public ActionResult Add(MenuButtonModel model) { if (ModelState.IsValid) { var response = _menuButtonService.Insert(model); return Json(new { success = true, message = response }, JsonRequestBehavior.AllowGet); } else return Json(new { success = false }, JsonRequestBehavior.AllowGet); }
/// <summary> /// 添加(批量添加) /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Creat(MenuButtonModel model) { try { var menuId = Guid.Parse(model.MenuIds); var buttonIds = model.ButtonIds.Split(','); var menu = menuDal.Find(menuId); if (menu == null) { throw new Exception("无法识别菜单ID"); } else { var isScussce = dal.DelByMenuId(menuId); if (!isScussce) { throw new Exception("出现程序错误,请联系管理员!"); } } foreach (var bid in buttonIds) { var buttonId = Guid.Parse(bid); if (buttonId != Guid.Empty) { var menuButton = new MenuButton { Id = Guid.NewGuid(), MenuId = menuId, ButtonId = buttonId }; var result = dal.Create(menuButton); if (result == null) { throw new Exception("循环添加出现程序错误,请联系管理员!"); } } } return(true); } catch (Exception ex) { throw new Exception("出现程序错误,请联系管理员!"); } }
public ActionResult MenuButton(MenuButtonModel model) { var result = new Result(); try { if (string.IsNullOrEmpty(model.MenuIds)) { result.Msg = "菜单Id不能为空"; return(Json(result)); } if (model.MenuIds.Split(',').Count() > 1) { result.Msg = "不支持批量分配菜单"; return(Json(result)); } if (string.IsNullOrEmpty(model.ButtonIds)) { result.Msg = "按钮Id不能为空"; return(Json(result)); } var isSuccess = new MenuButtonBLL().Creat(model); if (isSuccess) { result.Msg = "分配成功!"; result.Success = true; } else { result.Msg = "分配失败!"; } return(Json(result)); } catch (Exception ex) { result.Msg = string.Format("分配失败!{0}", ex.Message); return(Json(result)); } }
private void UpdateButtons(MenuButtonModel parentButton, IUnitOfWork _unitOfWork) { var oldButton = _unitOfWork.MenuButtonRepository.Get(x => x.Id == parentButton.Id).FirstOrDefault(); if (oldButton != null) { var oldChildButtons = GetChildButtons(new MenuButtonModel(oldButton)); var oldChildButtonsIds = oldChildButtons.Select(x => x.Id); var newButtons = GetLocalChildButtons(parentButton); var newButtonsIds = newButtons.Select(x => x.Id); var buttonsToInsert = newButtons.Where(x => x.Id == 0); foreach (var btn in buttonsToInsert) { _unitOfWork.MenuButtonRepository.Insert(btn.ToEntity()); } var buttonsToDeleteIds = oldChildButtonsIds.Except(newButtonsIds); var buttonsToDelete = oldChildButtons.Where(x => buttonsToDeleteIds.Contains(x.Id)); foreach (var btn in buttonsToDelete) { _unitOfWork.MenuButtonRepository.Delete(btn.Id); } var buttonsToUpdateIds = oldChildButtonsIds.Union(newButtonsIds); var buttonsToUpdate = newButtons.Where(x => buttonsToUpdateIds.Contains(x.Id) && x.Id!=0); foreach (var btn in buttonsToUpdate) { _unitOfWork.MenuButtonRepository.Update(btn.ToEntity()); } } }
private List<MenuButtonModel> GetLocalChildButtons(MenuButtonModel parentButton) { List<MenuButtonModel> Buttons = new List<MenuButtonModel>(); Stack<MenuButtonModel> BranchButtons = new Stack<MenuButtonModel>(); var rootButton = parentButton; BranchButtons.Push(rootButton); while (BranchButtons.Count > 0) { var button = BranchButtons.Pop(); Buttons.Add(button); var childrenNodes = button.Children; // unitOfWork.MenuButtonRepository.Get(x => x.ParentId == button.Id); if (childrenNodes != null && childrenNodes.Any()) { foreach (var node in childrenNodes) { node.ParentId = button.Id; BranchButtons.Push(node); } } } return Buttons; }
private List<MenuButtonModel> GetChildButtons(MenuButtonModel parentButton) { List<MenuButtonModel> Buttons = new List<MenuButtonModel>(); Stack<MenuButtonModel> BranchButtons = new Stack<MenuButtonModel>(); var rootButton = parentButton; BranchButtons.Push(rootButton); while (BranchButtons.Count > 0) { using (var unitOfWork = _unitOfWorkFactory.Create()) { var button = BranchButtons.Pop(); Buttons.Add(button); var childrenNodes = unitOfWork.MenuButtonRepository.Get(x => x.ParentId == button.Id); if (childrenNodes.Any()) { foreach (var node in childrenNodes) { BranchButtons.Push(new MenuButtonModel(node)); } } } } return Buttons; }
public ResponseBase Update(MenuButtonModel menuButton) { ResponseBase response; using (var unitOfWork = _unitOfWorkFactory.Create()) { try { if (menuButton != null) { UpdateButtons(menuButton,unitOfWork); } unitOfWork.Save(); response = new ResponseBase() { IsSucceed = true, Message = Modules.Resources.Logic.MenuButtonUpdateSuccess }; } catch (Exception e) { _logger.LogToFile(_logger.CreateErrorMessage(e)); response = new ResponseBase() { IsSucceed = false, Message = Modules.Resources.Logic.MenuButtonUpdateFailed }; } return response; } }
public ResponseBase Insert(MenuButtonModel menuButton) { ResponseBase response; using (var unitOfWork = _unitOfWorkFactory.Create()) { try { if (menuButton != null) { unitOfWork.MenuButtonRepository.Insert(menuButton.ToEntity()); } unitOfWork.Save(); response = new ResponseBase() { IsSucceed = true, Message = Modules.Resources.Logic.MenuButtonInsertSuccess }; } catch (Exception e) { _logger.LogToFile(_logger.CreateErrorMessage(e)); response = new ResponseBase() { IsSucceed = false, Message = Modules.Resources.Logic.MenuButtonInsertFailed }; } return response; } }
public MenuButtonModel GetById(int id) { MenuButtonModel menuButtonModel = null; using (var unitOfWork = _unitOfWorkFactory.Create()) { try { var entity = unitOfWork.MenuButtonRepository.GetByID(id); if (entity != null) { menuButtonModel = new MenuButtonModel(entity); } unitOfWork.Save(); } catch (Exception e) { _logger.LogToFile(_logger.CreateErrorMessage(e)); } } return menuButtonModel; }
public ActionResult Update(MenuButtonModel model) { if (ModelState.IsValid) { var response = _menuButtonService.Update(model); return Json(new { success = response.IsSucceed, data = response.Message }, JsonRequestBehavior.AllowGet); } else return Json(new { success = false}, JsonRequestBehavior.AllowGet); }