Ejemplo n.º 1
0
        public IActionResult Add(string id)
        {
            var roles = new RoleMenuDto();

            if (id.IsEmpty())
            {
                return(View(roles));
            }
            else
            {
                var role = _roleServices.QueryableToEntity(c => c.RoleId == SqlFunc.ToInt64(id));
                var list = _rolemenuServices.QueryableToList(c => c.RoleId == SqlFunc.ToInt64(id));
                roles = new RoleMenuDto()
                {
                    RoleId   = role?.RoleId.ToString(),
                    RoleName = role?.RoleName,
                    RoleType = role?.RoleType,
                    Remark   = role?.Remark,
                    Children = list.Select(x => new RoleMenuItemDto()
                    {
                        MenuId      = x.MenuId.ToString(),
                        RoleId      = x.RoleId.ToString(),
                        WarehouseId = x.WarehouseId.ToString()
                    }).ToList()
                };
                this.ViewData["stores"] = _warehouseServices.Queryable().ToList().ToArray();
                return(View(roles));
            }
        }
Ejemplo n.º 2
0
        public IActionResult Add(string id)
        {
            var roles = new RoleMenuDto();

            if (id.IsEmpty())
            {
                return(View(roles));
            }
            else
            {
                var role = _roleServices.QueryableToEntity(c => c.RoleId == SqlFunc.ToInt64(id));
                var list = _rolemenuServices.QueryableToList(c => c.RoleId == SqlFunc.ToInt64(id));
                roles = new RoleMenuDto()
                {
                    RoleId   = role?.RoleId.ToString(),
                    RoleName = role?.RoleName,
                    RoleType = role?.RoleType,
                    Remark   = role?.Remark,
                    Children = list
                };
                return(View(roles));
            }
        }
Ejemplo n.º 3
0
        public DbResult <bool> Update(Sys_role role, long userId, string[] menuId)
        {
            var    list = _rolemenuServices.QueryableToList(c => c.RoleId == role.RoleId);
            string idsu = "";  //数据库中的Id;

            list.ForEach((m) =>
            {
                idsu += m.MenuId + ",";
            });
            var arr = idsu.TrimEnd(',').ToSplit(',');

            //menuId 页面上的菜单Id;
            role.ModifiedBy   = userId;
            role.ModifiedDate = DateTimeExt.DateTime;
            //role.RoleType = "#";
            string[] pageId = arr.Union(menuId).Except(menuId).ToArray(); //delete
            string[] dataId = menuId.Union(arr).Except(arr).ToArray();    //insert
            return(_repository.UseTran(() =>
            {
                _repository.Update(role);
                List <long> array = new List <long>();
                if (pageId.Any())
                {
                    foreach (var item in pageId)
                    {
                        array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId);
                    }
                    _rolemenuServices.Delete(array.ToArray());
                }
                if (dataId.Any())
                {
                    var roleList = new List <Sys_rolemenu>();
                    foreach (var item in dataId)
                    {
                        roleList.Add(new Sys_rolemenu
                        {
                            CreateBy = userId,
                            MenuId = item.ToInt64(),
                            RoleId = role.RoleId,
                            RoleMenuId = PubId.SnowflakeId
                        });
                    }
                    _rolemenuServices.Insert(roleList);
                }
            }));

            //if (arr.Count() > menuId.Count())
            //{
            //    //数据库中的数量大于页面传过来的数量就删除
            //    string[] except;
            //    if (menuId.Count() > arr.Count())
            //    {
            //        except = menuId.Except(arr).ToArray();
            //    }
            //    else
            //    {
            //        except = arr.Except(menuId).ToArray();
            //    }
            //    List<long> array = new List<long>();
            //    if (except.Any())
            //    {
            //        foreach (var item in except)
            //        {
            //            array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId);
            //        }
            //    }
            //    return _repository.UseTran(() =>
            //     {
            //         _repository.Update(role);
            //         _rolemenuServices.Delete(array.ToArray());
            //     });
            //}
            //else
            //{
            //    //update/add
            //    return _repository.UseTran(() =>
            //    {
            //        _repository.Update(role);
            //        foreach (var item in menuId)
            //        {
            //            var model = _rolemenuServices.QueryableToEntity(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64());
            //            if (model.IsNullT())
            //            {
            //                //add
            //                _rolemenuServices.Insert(new Sys_rolemenu
            //                {
            //                    CreateBy = userId,
            //                    MenuId = item.ToInt64(),
            //                    RoleId = role.RoleId,
            //                    RoleMenuId = PubId.SnowflakeId
            //                });
            //            }
            //            else
            //            {
            //                //update
            //                model.ModifiedBy = userId;
            //                model.ModifiedDate = DateTimeExt.DateTime;
            //                _rolemenuServices.UpdateEntity(model);
            //            }
            //        }
            //    });
            //}
        }