public void UnassignRole(FunctionItem function, Role role = null) { if (function == null) throw new ArgumentNullException("function"); Expression<Func<RoleFunction, bool>> specExpression; if (role == null) specExpression = ur => ur.FunctionItemId == function.Id; else specExpression = ur => ur.FunctionItemId == function.Id && ur.RoleId == role.Id; var roleFunction = _roleFunctionRepository.GetFiltered(specExpression).FirstOrDefault(); if (roleFunction != null) { _roleFunctionRepository.Remove(roleFunction); } }
public RoleFunction AssignRole(FunctionItem function, Role role) { if (function == null) throw new ArgumentNullException("function"); if (role == null) throw new ArgumentNullException("role"); var roleFunction = _roleFunctionRepository.GetFiltered(p => p.FunctionItemId == function.Id) .FirstOrDefault(); if (roleFunction == null) { roleFunction = new RoleFunction(function.Id, role.Id); _roleFunctionRepository.Add(roleFunction); } else { //roleFunction.SetRoleId(role.Id); _roleFunctionRepository.Modify(roleFunction); } return roleFunction; }
private FunctionItemDTO GenerateFunctionItem(FunctionItem functionItem) { var functionItemDataObject = new FunctionItemDTO { Id = functionItem.Id, CreateDate = functionItem.CreateDate, Description = functionItem.Description, ImageUrl = functionItem.ImageUrl, IsButton = functionItem.IsButton, IsLeaf = functionItem.IsLeaf, IsValid = functionItem.IsValid, Name = functionItem.Name, NaviUrl = functionItem.NaviUrl, ParentItemId = functionItem.ParentItemId, Sort = functionItem.Sort, SubFunctionItems = new List<FunctionItemDTO>(), }; var temp = _unitOfWork.CreateSet<FunctionItem>() .Where(p => p.ParentItemId == functionItem.Id) .ToList() .OrderBy(p => p.Sort); foreach (var subItem in temp) { functionItemDataObject.SubFunctionItems.Add(GenerateFunctionItem(subItem)); } return functionItemDataObject; }