示例#1
0
        /// <summary>
        /// 获取其他用户关联的菜单
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        public UserMenuViewModel GetUserMenuViewModel(int userID)
        {
            List <UserMenus> userMenu = context.GetOneUserMenu(userID);

            //其他用户关联的菜单
            UserMenus     userM        = new UserMenus();
            List <string> userMenuList = new List <string>();

            if (userMenu.Count > 0)
            {
                userM = userMenu.First();

                if (userM.Menus.Equals("all"))
                {
                    userMenuList.Add("all");
                }
                else
                {
                    userMenuList.AddRange(userM.Menus.ToUpper().Split('|'));
                }
            }

            UserMenuViewModel viewModel = new UserMenuViewModel();

            viewModel.userMenu = userMenuList.ToArray();

            return(viewModel);
        }
示例#2
0
        public IHttpActionResult UserMenu([FromBody] UserInfoBindingModel userInfoBindingModel)
        {
            try
            {
                // 织造产量录入APP
                var user = prdAppDb.peAppWvUsers.FirstOrDefault(a => a.code.Equals(userInfoBindingModel.code, StringComparison.CurrentCultureIgnoreCase) &&
                                                                a.password.Equals(userInfoBindingModel.password, StringComparison.CurrentCultureIgnoreCase));

                if (user != null)
                {
                    UserMenuViewModel model = GetUserMenuViewModelByCardNo(userInfoBindingModel.code);
                    if (model == null)
                    {
                        return(NotFound());
                    }
                    return(Json(model));
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public IHttpActionResult PostUserMenu(UserMenuViewModel userMenu)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = db.Users.Find(userMenu.UserName);

            if (user == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, "不存在的使用者!"));
            }

            var menus = db.Menus.Where(item => item.Id == userMenu.MenuId || item.ParentId == userMenu.MenuId);

            foreach (var item in menus)
            {
                user.Menus.Add(item);
            }

            try
            {
                db.SaveChanges();

                //寫入AccessLog
                MPAccessLog.WriteEntry(User.Identity.Name, AccessAction.Create, "UserMenu", JsonConvert.SerializeObject(new { user.UserName, Menus = menus.Select(m => m.Id + m.Text).ToArray() }));
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
            return(Ok());
        }
示例#4
0
        public void TestGetAdminUserMenu2()
        {
            UserMenuService   service   = new UserMenuService();
            UserMenuViewModel ViewModel = service.GetAdminMenuViewModel("aa");

            Console.WriteLine(UtilTest.GetJson(ViewModel));
        }
        /// <summary>
        /// 读取数据库的权限,返回到前台CheckBoxList
        /// </summary>
        /// <returns></returns>
        private UserMenuViewModel GetMenusInitialModel()
        {
            var model         = new UserMenuViewModel();
            var selectedMenus = new List <Menu>();

            if (TempData["userCode"] != null)
            {
                string _userCode = TempData["userCode"] as string;

                // 1、查询该用户的权限列表
                var userInfos = dbContext.peAppWvUserMenus.Where(um => um.usercode.Equals(_userCode))
                                .Join(dbContext.peAppWvMenus, um => um.menucode, m => m.code, (um, m) => new
                {
                    UserMenuId = um.Id,
                    MenuIndex  = m.Id,
                    MenuId     = um.menucode,
                    MenuName   = m.text
                });

                foreach (var userInfo in userInfos)
                {
                    Menu m = new Menu()
                    {
                        Id         = userInfo.MenuId,
                        Name       = userInfo.MenuName,
                        IsSelected = true,
                    };
                    selectedMenus.Add(m);
                }
            }
            model.AvailableMenus = this.GetAllMenus();
            // 2、将数据库的权限显示在CheckBoxList上
            model.SelectedMenus = selectedMenus;
            return(model);
        }
示例#6
0
        private void ButtonClickCustomer(object sender, RoutedEventArgs e)
        {
            UserMenuViewModel userVM      = new UserMenuViewModel();
            LoginWindow       loginWindow = new LoginWindow(userVM);

            loginWindow.Show();
        }
示例#7
0
        public void TestGetUserMenu()
        {
            UserMenuService   service   = new UserMenuService();
            int               userID    = 2;
            UserMenuViewModel ViewModel = service.GetUserMenuViewModel(userID);

            Console.WriteLine(UtilTest.GetJson(ViewModel));
        }
示例#8
0
        public void TestSetUserMenu()
        {
            UserMenuService   service   = new UserMenuService();
            int               userID    = 23;
            string            menuIDs   = "1P|3P|4P|4.1|4.2|4.3|4.4|5P|5.1|5.2|5.3|6P|6.1|6.2|6.3|6.4";
            UserMenuViewModel ViewModel = service.SetUserMenu(userID, menuIDs);

            Console.WriteLine(UtilTest.GetJson(ViewModel));
        }
示例#9
0
        public dynamic AddUserMenu([FromBody] UserMenuViewModel model)
        {
            var vm = new UserMenuManager();
            List <ExpandoObject> sugarQueryable = vm.GetMaxid("user_menu", "um_id", 1, 1);

            model.um_id = sugarQueryable.First().ObjToInt();
            //vm.Insert(model);
            return(Ok());
        }
示例#10
0
        /// <summary>
        /// 仅根据员工号,返回该员工的菜单ViewModel
        /// </summary>
        /// <param name="cardNo"></param>
        /// <returns></returns>
        public UserMenuViewModel GetUserMenuViewModelByCardNo(string cardNo)
        {
            var prdDbUsers = prdAppDb.peAppWvUsers.Where(a => a.code.Equals(cardNo, StringComparison.CurrentCultureIgnoreCase));

            var query =
                "SELECT m.Id ,m.code ,m.text ,m.activityname,m.dept,m.link FROM dbo.peAppWvMenu AS m WHERE m.code IN (SELECT a.menucode FROM dbo.peAppWvUserMenu AS a  WHERE a.usercode=@p0)";
            List <peAppWvMenu> peAppWvMenuQuery =
                prdAppDb.Database.SqlQuery <peAppWvMenu>(query, cardNo).ToList();
            var list = new List <ItemViewModel>();

            // 如果在prd数据库找到该员工号
            if (prdDbUsers.Any())
            {
                foreach (var p in peAppWvMenuQuery)
                {
                    var itemViewModel = new ItemViewModel
                    {
                        id    = p.Id,
                        code  = p.code,
                        text  = p.text,
                        dest1 = p.activityname,
                        dest2 = p.link
                    };
                    list.Add(itemViewModel);
                }
                var temp = new ItemViewModel
                {
                    text       = peAppWvMenuQuery.Select(a => a.dept).First().ToString(),
                    renderflat = "TYPE_index"
                };
                list.Add(temp);

                var userMenuViewModel = new UserMenuViewModel()
                {
                    code    = cardNo,
                    name    = prdDbUsers.First().name,
                    dept    = prdDbUsers.First().dept,
                    SubDept = prdDbUsers.First().SubDept,
                    menu    = list.OrderBy(a => a.id)
                };
                return(userMenuViewModel);
            }
            else
            {
                return(null);
            }
        }
示例#11
0
        /// <summary>
        /// 获取管理员所关联菜单
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public UserMenuViewModel GetAdminMenuViewModel(string userName)
        {
            List <UserSet>   users     = context.GetAllUserList();
            List <UserMenus> adminMenu = context.GetAdminMenuByUserName(userName);
            List <MenuInfo>  menuInfo  = context.GetMenuInfo();

            //管理员所关联菜单
            UserMenus        admin      = adminMenu.First();
            List <User2Menu> admin2Menu = new List <User2Menu>();

            if (admin.Menus.Equals("all"))
            {
                foreach (var menuIetm in menuInfo)
                {
                    User2Menu user2m = new User2Menu();
                    user2m.MenuID   = menuIetm.MenuID;
                    user2m.MenuName = menuIetm.MenuName;
                    user2m.isUsing  = true;
                    admin2Menu.Add(user2m);
                }
            }
            else
            {
                string[] adminMenuArray = admin.Menus.ToUpper().Split('|');
                foreach (var menuId in adminMenuArray)
                {
                    if (menuInfo.Exists(x => x.MenuID.Equals(menuId)))
                    {
                        User2Menu user2m = new User2Menu();
                        user2m.MenuName = menuInfo.Find(x => x.MenuID.Equals(menuId)).MenuName;
                        user2m.MenuID   = menuId;
                        user2m.isUsing  = true;
                        admin2Menu.Add(user2m);
                    }
                }
            }

            UserMenuViewModel viewModel = new UserMenuViewModel();

            viewModel.Users     = users;
            viewModel.adminMenu = admin2Menu;

            return(viewModel);
        }
示例#12
0
        public Result <UserMenuViewModel> GetUserMenuViewModel(string id)
        {
            SelectSpecification <AppUserEntity, UserMenuViewModel> userSpecification = new SelectSpecification <AppUserEntity, UserMenuViewModel>();

            userSpecification.AddFilter(x => x.Id == id);
            userSpecification.AddSelect(x => new UserMenuViewModel(
                                            x.Id,
                                            x.UserName));

            UserMenuViewModel userMenuView = _userRepository.SingleOrDefault(userSpecification);

            if (userMenuView == null)
            {
                _logger.LogError($"No User. UserId {id}");
                return(Result.Fail <UserMenuViewModel>("no_user", "No user"));
            }

            return(Result.Ok(userMenuView));
        }
示例#13
0
        public IHttpActionResult GetUserMenuByCardNo([FromUri] string nfcCardNo)
        {
            // 读NFC ID,然后到中控表查询对应的员工号
            var query = @"select top 1 'GET'+right('0000000'+convert(varchar(10),a.WeaverNo),7) as UserCardNo from 
[getnt103].Monitor_WV1.dbo.tweaver AS a WHERE a.NewCardNo=@p0
UNION ALL
select 'GET'+right('0000000'+convert(varchar(10),b.WeaverNo),7) from [getnt103].Monitor_WV2.dbo.tweaver AS b WHERE b.NewCardNo=@p0
UNION ALL
select 'GET'+right('0000000'+convert(varchar(10),c.WeaverNo),7) from [getnt103].Monitor_WV3.dbo.tweaver  AS c WHERE c.NewCardNo=@p0";

            try
            {
                string userCardNo          = null;
                var    rtnList             = pbRead.Database.SqlQuery <UserCardNoViewModel>(query, nfcCardNo.ToUpper()).ToList();
                var    userCardNoViewModel = rtnList.FirstOrDefault();
                if (userCardNoViewModel != null)
                {
                    // 获取对应的员工号
                    userCardNo = userCardNoViewModel.UserCardNo;
                }

                else
                {
                    userCardNo = prdAppDb.peAppWvUsers
                                 .Where(u => u.NfcCardNo.Equals(nfcCardNo))
                                 .Select(u => u.code).FirstOrDefault();
                }
                UserMenuViewModel model = GetUserMenuViewModelByCardNo(userCardNo);
                if (model == null)
                {
                    return(NotFound());
                }
                return(Json(model));
            }
            catch (Exception)
            {
                return(NotFound());
            }
        }
示例#14
0
        public UserMenuViewModel SetUserMenu(int userID, string menuIDs)
        {
            ResultState resultState = new ResultState();

            int result = context.SetUserMenu(userID, menuIDs.ToUpper());

            if (result > 0)
            {
                resultState.State   = 0;
                resultState.Details = "成功";
            }
            else
            {
                resultState.State   = 1;
                resultState.Details = "失败";
            }

            UserMenuViewModel viewModel = new UserMenuViewModel();

            viewModel.ResultState = resultState;

            return(viewModel);
        }
示例#15
0
 /// <summary>
 /// 画面が読み込まれた後に呼ばれます。
 /// </summary>
 /// <param name="sender">sender</param>
 /// <param name="e">e</param>
 private void ViewLoaded(object sender, RoutedEventArgs e)
 {
     this.viewModel = this.DataContext as UserMenuViewModel;
 }
示例#16
0
 /// <summary>
 ///     Initialize user menu.
 /// </summary>
 public UserMenu()
 {
     this._userMenuViewModel = new UserMenuViewModel();
     this.InitializeComponent();
     this.DataContext = this;
 }
示例#17
0
        public ActionResult UserMenu()
        {
            var model = new UserMenuViewModel(UserContext.Current.FirstName, UserContext.Current.LastName);

            return(DisplayFor(model));
        }
        public IActionResult GetMenu(string RoleName)
        {
            UserMenuViewModel userMenuView = _menuRepository.GetMenu(RoleName);

            return(Ok(userMenuView));
        }
示例#19
0
        /// <summary>
        /// ログインボタンが押されたときに呼ばれます。
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="e">e</param>
        private async void LoginButtonClick(object sender, RoutedEventArgs e)
        {
            this.btnLogin.IsEnabled = false;

            if (!this.ValidateLogin())
            {
                return;
            }

            try
            {
                var passwordHash = new HashCreater().CreateSHA256Hash(this.txtPassword.Password);
                this.viewModel.AccessToken = await this.Login(this.viewModel.UserId, passwordHash);

                if (string.IsNullOrEmpty(this.viewModel.AccessToken))
                {
                    MessageBox.Show("ID、パスワードもしくは両方が間違っています。");
                    return;
                }

                UserModel user = await this.GetUser(this.viewModel.UserId, this.viewModel.AccessToken);

                if (user == null)
                {
                    return;
                }

                Window childView = null;

                // 管理者か否かによってメニューを分岐
                if (user.IsAdmin)
                {
                    var childViewModel = new AdminMenuViewModel();

                    childView                  = new AdminMenuView();
                    childViewModel.UserId      = this.viewModel.UserId;
                    childViewModel.DisplayName = user.DisplayName;
                    childViewModel.AccessToken = this.viewModel.AccessToken;
                    childView.DataContext      = childViewModel;
                }
                else
                {
                    var childViewModel = new UserMenuViewModel();

                    childView                  = new UserMenuView();
                    childViewModel.UserId      = this.viewModel.UserId;
                    childViewModel.DisplayName = user.DisplayName;
                    childViewModel.AccessToken = this.viewModel.AccessToken;
                    childView.DataContext      = childViewModel;
                }

                childView.Owner = this;
                this.Hide();
                childView.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                this.viewModel.UserId     = string.Empty;
                this.txtPassword.Password = string.Empty;
                this.btnLogin.IsEnabled   = true;
                this.Show();
                this.txtUserId.Focus();
            }
        }