private void Window_Loaded(object sender, RoutedEventArgs e) { Bll bll = AppContext.GetLocationBll(); areaService = new AreaService(bll); aarService = new AreaAuthorizationRecordService(bll); aaService = new AreaAuthorizationService(bll); if (_role != null) { var list1 = aarService.GetListByRole(_role.Id + ""); var aaIds = new List <int>(); foreach (var item in list1) { aaIds.Add(item.AuthorizationId); } DataGrid2.ItemsSource = list1; var list2 = aaService.GetList(aaIds); DataGrid1.ItemsSource = list2; var areaIds = new List <int>(); foreach (var item in list2) { areaIds.Add(item.AreaId); } var tree = areaService.GetTree(); //var nodes=tree.GetAllChildren(null); //foreach (var item in nodes) //{ // if (areaIds.Contains(item.Id)) // { // item.IsChecked = true; // } //} TopoTreeView1.LoadData(tree); foreach (var item in areaIds) { var node = TopoTreeView1.GetAreaNode(item); if (node != null) { node.Foreground = Brushes.Blue; } } TopoTreeView1.ExpandLevel(2); //TopoTreeView1.SelectedObjectChanged += TopoTreeView1_SelectedObjectChanged; TopoTreeView1.SelectFirst(); } else { var tree = areaService.GetTree(); TopoTreeView1.LoadData(tree); TopoTreeView1.ExpandLevel(2); TopoTreeView1.SelectedObjectChanged += TopoTreeView1_SelectedObjectChanged; TopoTreeView1.SelectFirst(); } }
public bool SetCardRoleAccessAreas(int roleId, List <int> areaIds) { try { var bll = AppContext.GetLocationBll(); var aarService = new AreaAuthorizationRecordService(bll); var aaService = new AreaAuthorizationService(bll); var roleService = new TagRoleService(bll); var role = roleService.GetEntity(roleId + ""); var aarList = aarService.GetListByRole(roleId + ""); List <int> removeList = new List <int>(); List <int> newList = new List <int>(); for (int i = 0; i < aarList.Count; i++) { var aar = aarList[i]; if (aar.AccessType == AreaAccessType.能进入) //设置的是可以进入的权限,同时要把不能进入的权限都删了 { //removeList.Add(aarList[i].Id); var r = aarService.Delete(aar.Id + ""); aarList.RemoveAt(i); i--; } } List <int> areasIds = new List <int>(); foreach (var item in aarList) { if (item.Area != null) { areasIds.Add(item.Area.Id); } } foreach (var item in areaIds) { if (areasIds.Contains(item)) { areasIds.Remove(item); } else { newList.Add(item); } } removeList.AddRange(areasIds); foreach (var areaId in removeList) { var aar = aarList.FirstOrDefault(i => i.Area != null && i.Area.Id == areaId); if (aar != null) { var r = aarService.Delete(aar.Id + ""); } else { } } foreach (var areaId in newList) { var list = aaService.GetListByArea(areaId + ""); if (list.Count == 0)//新增的区域没有对应的权限设置数据 { var aaNew = AreaAuthorization.New(); aaNew.AreaId = areaId; //根节点 aaNew.AccessType = AreaAccessType.可以进出; //可进入的权限 aaNew.RangeType = AreaRangeType.Single; string areaType = "区域"; aaNew.Name = string.Format("权限[" + areaType + "]"); aaNew.Description = string.Format("权限:可以进入" + areaType + "。"); var aaNewR = aaService.Post(aaNew); list.Add(aaNewR);//后续挪动到aaService里面。 } var aa = list.FirstOrDefault(i => i.AccessType == AreaAccessType.可以进出); if (aa != null) { var aar = new AreaAuthorizationRecord(aa, role); var r = aarService.Post(aar); } else { Log.Error("SetCardRoleAccessAreas", "为找到区域对应的权限数据:" + areaId); } } RefreshData(); } catch (Exception ex) { Log.Error(tag, "SetCardRoleAccessAreas", ex.ToString()); return(false); } return(true); }