Exemplo n.º 1
0
 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();
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
 }
Exemplo n.º 6
0
        /// <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("出现程序错误,请联系管理员!");
            }
        }
Exemplo n.º 7
0
        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));
            }
        }
Exemplo n.º 8
0
        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());
                }
            }
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
 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;
     }
 }
Exemplo n.º 12
0
 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;
     }
 }
Exemplo n.º 13
0
 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);
 }