Пример #1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            bll         = AppContext.GetLocationBll();
            areaService = new AreaService(bll);
            aarService  = new AreaAuthorizationRecordService(bll);

            ITagRoleService service = new TagRoleService();

            _roles = service.GetList();

            var tree = areaService.GetTree();

            TopoTreeView1.LoadData(tree, false, true);
            TopoTreeView1.ExpandLevel(2);


            DataGrid1.ItemsSource = _roles;

            CardRole selectedRole = _roles.Find(i => i.Id == roleId);

            if (selectedRole != null)
            {
                selectedRole.IsChecked = true;
                DataGrid1.SelectedItem = selectedRole;
                //CheckRoleAreas(selectedRole.Id);
            }
        }
        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();
            }
        }
Пример #3
0
 public List <int> GetCardRoleAccessAreas(int role)
 {
     try
     {
         var        bll        = AppContext.GetLocationBll();
         var        aarService = new AreaAuthorizationRecordService(bll);
         var        list1      = aarService.GetAccessListByRole(role + "");
         List <int> areas      = new List <int>();
         foreach (var item in list1)
         {
             if (item.Area != null)
             {
                 areas.Add(item.Area.Id);
             }
         }
         if (areas.Count == 0)
         {
             return(null);
         }
         return(areas);
     }
     catch (System.Exception ex)
     {
         Log.Error(tag, "GetCardRoleAccessAreas", ex.ToString());
         return(null);
     }
 }
Пример #4
0
        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);
        }