public ActionResult editItem(Menu_AddEditDTO editOne) { if (!ModelState.IsValid) { throw new PushToUserException(MVCHelper.GetValidMsgStr(ModelState)); } MenuService.EditOne(editOne, LoginUserId); return(Json(new AjaxResult { Status = "success", SendData = new { Result = "success" } })); }
public void EditOne(Menu_AddEditDTO editOne, string updater) { using (MiniSenDbContext dbContext = new MiniSenDbContext()) { CommonService <Menu> commonService = new CommonService <Menu>(dbContext); bool isExist = commonService.AnyByIdNoMarkDeleted(editOne.Id); if (!isExist) { throw new PushToUserException("Current menu item is not exist"); } bool hasExist = commonService.WhereNoMarkDeleted().Where(d => 0 == d.DelFlag && d.Type != editOne.Type && d.Id == editOne.Id).Any(); if (hasExist) { throw new PushToUserException($"the type of Menu item is not allow to change"); } hasExist = commonService.WhereNoMarkDeleted().Where(d => 0 == d.DelFlag && d.Name.Equals(editOne.Name) && d.Id != editOne.Id).Any(); if (hasExist) { throw new PushToUserException($"A menu item with the same name '{editOne.Name}' already exists"); } if (!string.IsNullOrEmpty(editOne.PagePath)) { hasExist = commonService.WhereNoMarkDeleted().Where(d => d.PagePath.Equals(editOne.PagePath) && d.Id != editOne.Id).Any(); if (hasExist) { throw new PushToUserException($"A menu item with the same page path '{editOne.PagePath}' already exists"); } } Menu updateOne = CoffeeMapper <Menu_AddEditDTO, Menu> .AutoMap(editOne, (_out, _in) => { _out.Updater = updater; _out.UpdateTime = DateTime.Now; }); dbContext.Update <Menu>(d => new { d.Name, d.PagePath, d.ParentId, d.Icon, d.Type, d.RemarkInfo, d.SortNumber, d.Updater, d.UpdateTime }, updateOne) .Where(d => d.Id.Equals(updateOne.Id)).Done(); } }
public string AddNewOne(Menu_AddEditDTO addOne, string creater) { using (MiniSenDbContext dbContext = new MiniSenDbContext()) { CommonService <Menu> commonService = new CommonService <Menu>(dbContext); bool hasExist = commonService.WhereNoMarkDeleted().Where(d => 0 == d.DelFlag && d.Name.Equals(addOne.Name)).Any(); if (hasExist) { throw new PushToUserException($"A menu item with the same name '{addOne.Name}' already exists"); } if (!string.IsNullOrEmpty(addOne.PagePath)) { hasExist = commonService.WhereNoMarkDeleted().Where(d => d.PagePath.Equals(addOne.PagePath)).Any(); if (hasExist) { throw new PushToUserException($"A menu item with the same page path '{addOne.PagePath}' already exists"); } } try { dbContext.DBTransaction.Begin(); Menu newOne = CoffeeMapper <Menu_AddEditDTO, Menu> .AutoMap(addOne, (_out, _in) => { _out.Id = Utils.GetGuidStr(); _out.Creater = creater; }); string newMenuId = commonService.Insert(newOne); //菜单项添加对应的权限项记录 if (2 == addOne.Type) { Permission menuPerm = new Permission { Id = Utils.GetGuidStr(), Name = $"menu-({addOne.Name})", PermissionType = 2, MenuId = newMenuId, DelFlag = 0, Creater = creater }; dbContext.Add(menuPerm); } dbContext.DBTransaction.Commit(); return(newMenuId); } catch (Exception ex) { dbContext.DBTransaction.Rollback(); throw ex; } } }