Esempio n. 1
0
        public void DeleteRoleInfo(RoleInfo roleInfo)
        {
            if (roleInfo.RoleID.ToString() == basicRoleString || roleInfo.RoleID.ToString()== saleRoleString)   //当要删除的用户是“基础人员”以及“留学顾问”时,直接返回
                return;

            RoleInfo originRole = context.RolesInfo.Where(r => r.RoleID == roleInfo.RoleID).SingleOrDefault();  //根据RoleID查找到就的RoleInfo
            context.RolesInfo.Remove(originRole);

            //修改符合该角色的User中UserRole信息
            UserInfoEntity newUser;
            IEnumerable<UserInfoEntity> users = context.UsersInfo.Where(u => u.UserRole == roleInfo.RoleID).Select(u => u);
            foreach (UserInfoEntity user in users)
            {
                newUser = user;
                newUser.UserRole = new Guid(basicRoleString);
                context.Entry(user).CurrentValues.SetValues(newUser);
            }

            //修改符合该角色的User中的UserSecondRole信息
            users = context.UsersInfo.Where(u => u.UserSecondRole == roleInfo.RoleID).Select(u => u);
            foreach (UserInfoEntity user in users)
            {
                newUser = user;
                newUser.UserRole = new Guid(basicRoleString);
                context.Entry(user).CurrentValues.SetValues(newUser);
            }

            context.SaveChanges();
        }
Esempio n. 2
0
 public ActionResult Edit(RoleInfo roleInfo)
 {
     if (ModelState.IsValid)
     {
         repository.SaveRoleInfo(roleInfo);
         TempData["message"] = string.Format("{0} has been saved", roleInfo.RoleName);
         return RedirectToAction("List");
     }
     else
     {
        return View(roleInfo);
     }
 }
Esempio n. 3
0
        public void SaveRoleInfo(RoleInfo roleInfo)
        {
            if (roleInfo.RoleID == Guid.Empty)  //如果传入的Guid全为0,则为添加一新Guid
                roleInfo.RoleID = Guid.NewGuid();

            RoleInfo originRole = context.RolesInfo.Where(r => r.RoleID == roleInfo.RoleID).SingleOrDefault();

            if (originRole == null)
                context.RolesInfo.Add(roleInfo);
            else
            {   //传入的Guid有效,则为更新
                context.Entry(originRole).CurrentValues.SetValues(roleInfo);
            }
            context.SaveChanges();
        }
Esempio n. 4
0
        public void Cannot_Delete_Invalid_Products()
        {
            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            RoleInfo[] roles = new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo { RoleID = Guid.NewGuid(), RoleName = "R1" },
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"}
            };

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作——用一个不存在的ID进行删除
            controller.Delete(Guid.NewGuid());

            //断言
            mock.Verify(m => m.DeleteRoleInfo(It.IsAny<RoleInfo>()),Times.Never());
        }
Esempio n. 5
0
        public void Cannot_Edit_Nonexistent_Product()
        {
            //布置
            //——创建模仿存储库
            RoleInfo[] roles = new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R2",RoleEN="REN2"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"}
            };

            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作
            RoleInfo r1 = controller.Edit(Guid.NewGuid()).Model as RoleInfo;

            //断言
            Assert.IsNull(r1);
        }
Esempio n. 6
0
        public void Cannot_Save_Invalid_Changes()
        {
            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //布置——创建一个产品
            RoleInfo role = new RoleInfo { RoleID = Guid.NewGuid(), RoleName = "测试顾问" };

            //布置——把一个错误添加到模型状态
            controller.ModelState.AddModelError("error", "error");

            //动作——试着保存这个产品
            ActionResult result = controller.Edit(role);

            //断言——检查,调用了存储库
            mock.Verify(m => m.SaveRoleInfo(It.IsAny<RoleInfo>()),Times.Never());

            //断言——检查方法的结果类型
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Esempio n. 7
0
        public void Can_Save_Valid_Changes()
        {
            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //布置——创建一个产品
            RoleInfo role = new RoleInfo {RoleID=Guid.NewGuid(), RoleName = "测试顾问" };

            //动作——试着保存这个产品
            ActionResult result = controller.Edit(role);

            //断言——检查,调用了存储库
            mock.Verify(m => m.SaveRoleInfo(role));

            //断言——检查方法的结果类型
            Assert.IsNotInstanceOfType(result, typeof(ViewResult));
        }
Esempio n. 8
0
        public void Can_Edit_Role()
        {
            //布置
            //——创建模仿存储库
            RoleInfo[] roles =  new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R2",RoleEN="REN2"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R4",RoleEN="REN4"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R5",RoleEN="REN5"},
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R6",RoleEN="REN6"}
            };

            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());  //使用Setup更改RolesInfo的结果,不适用DI,而是用后续的Return返回结果

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作
            RoleInfo r1 = controller.Edit(roles[1].RoleID).Model as RoleInfo;
            RoleInfo r2 = controller.Edit(roles[2].RoleID).Model as RoleInfo;
            RoleInfo r3 = controller.Edit(roles[3].RoleID).Model as RoleInfo;

            //断言
            Assert.AreEqual(r1.RoleName, "R2");
            Assert.AreEqual(r2.RoleName, "R3");
            Assert.AreEqual(r3.RoleName, "R4");
        }
Esempio n. 9
0
        public void Can_Delete_Valid_Roles()
        {
            //布置——创建一个角色
            RoleInfo role = new RoleInfo { RoleID = Guid.NewGuid(), RoleName = "R1" };

            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            RoleInfo[] roles = new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                role,
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"}
            };
            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作——删除产品
            controller.Delete(role.RoleID);

            //断言
            mock.Verify(m => m.DeleteRoleInfo(role));
        }
Esempio n. 10
0
 public JsonResult Edit(RoleInfo ajaxData)
 {
     repository.SaveRoleInfo(ajaxData);
     return Json(new { SaveResult = true });
 }