public ActionResult Add(AdminUserAddNewModel model) { if (!ModelState.IsValid) { return(Json(new AjaxResult() { Status = "error", ErrorMsg = MVCHelper.GetValidMesg(ModelState) })); } var user = AdminUserService.GetByPhoneNum(model.PhoneNum); if (user != null) { return(Json(new AjaxResult() { Status = "error", ErrorMsg = "该手机号已被注册" })); } //发现在service里面也判断了一次手机是否注册,感觉越早判断越好,service那个就没必要了 //TODO:这里应该用事务 long adminUserId = AdminUserService.AddAdminUser(model.Name, model.PhoneNum, model.PassWord, model.Email, model.CityId); RoleService.AddRoleIds(adminUserId, model.RoleIds); return(Json(new AjaxResult() { Status = "ok" })); }
public void TestHasPerm() { try { PermissionService permService = new PermissionService(); string permName1 = Guid.NewGuid().ToString(); long permId1 = permService.AddPermission(permName1, permName1); string permName2 = Guid.NewGuid().ToString(); long permId2 = permService.AddPermission(permName2, permName2); RoleService roleService = new RoleService(); string roleName = Guid.NewGuid().ToString(); long roleId = roleService.AddNew(roleName); string userPhone = "136138"; long userId = new AdminUserService().AddAdminUser("aaa", userPhone, "123", "*****@*****.**", null); roleService.AddRoleIds(userId, new long[] { roleId }); permService.AddPermIds(roleId, new long[] { permId1 }); Assert.IsTrue(service.HasPermission(userId, permName1)); Assert.IsFalse(service.HasPermission(userId, permName2)); service.MarkDeleted(userId); } catch (DbEntityValidationException ex) { foreach (var item in ex.EntityValidationErrors.SelectMany(err => err.ValidationErrors)) { Console.WriteLine(item.ErrorMessage); } } }
public ActionResult Edit(long Id) { long userId = (long)AdminHelper.GetUserId(HttpContext); var user = AdminUserService.GetById(userId); if (user.CityId == null) { //TODO如果“总部不能***”的操作很多,也可以定义成一个AuthorizeFilter //最好用FilterAttribute的方式标注,这样对其他的不涉及这个问题的地方效率高 //立即实现 return(View("ERROR", (object)"总部不能进行房源管理")); } var regions = RegionService.GetAll((long)user.CityId); var roomTypes = IdNameService.GetAll("户型"); var status = IdNameService.GetAll("房屋状态"); var decorateStatus = IdNameService.GetAll("装修状态"); var types = IdNameService.GetAll("出租类别"); var attachments = AttachmentService.GetAll(); var house = HouseService.GetById(Id); HouseEditGetModel model = new HouseEditGetModel(); model.Attachments = attachments; model.DecorateStatus = decorateStatus; model.Regions = regions; model.RoomTypes = roomTypes; model.Status = status; model.Types = types; model.House = house; return(View(model)); }
public async Task AddToRoleAsyncShould_ReturnsTrueWhen_UserIsNotInRole() { const string Role = "Manager"; //Arrange var admin = UserCreator.Create(); var user = UserCreator.Create(); await Db.Users.AddRangeAsync(admin, user); await Db.SaveChangesAsync(); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); userManagerMock.Setup(u => u.IsInRoleAsync(user, Role)).Returns(Task.FromResult(false)); var activityService = new Mock <IAdminActivityService>(); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, activityService.Object); //Act var result = await service.AddToRoleAsync(admin.Id, user.Id, Role); //Assert result.Should().BeTrue(); activityService.Verify(a => a.WriteInfoAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), AdminActivityType.AddedToRole), Times.Once); }
public ActionResult Login(LoginModel model) { if (!ModelState.IsValid) { return(Json(new AjaxResult { Status = "error", ErrorMsg = MVCHelper.GetValidMesg(ModelState) })); } if (model.VerifyCode != (string)TempData["verifyCode"]) { return(Json(new AjaxResult { Status = "error", ErrorMsg = "验证码错误" })); } bool result = AdminUserService.CheckLogin(model.PhoneNum, model.Password); if (result) { //将userId存放到session中 Session["LoginUserId"] = AdminUserService.GetByPhoneNum(model.PhoneNum).Id; return(Json(new AjaxResult { Status = "ok" })); } else { return(Json(new AjaxResult { Status = "error", ErrorMsg = "用户名或者密码错误" })); } }
public async Task UnlockAsyncShould_SetLockEndPropToNullWhen_ThereIsUserWithNotNullLockEndProp() { string userId = Guid.NewGuid().ToString(); string adminId = Guid.NewGuid().ToString(); //Arrange var user = this.CreateUser(userId, LockDays); await Db.Users.AddAsync(user); await Db.SaveChangesAsync(); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, null); //Act bool expected = true; //bool actual = await service.UnlockAsync(adminId, userId);///// //Assert //Assert.Equal(expected, actual); //expected, actual//////// Assert.True(user.LockoutEnd == null); }
public async Task LockAsyncShould_SetLockEndPropWhen_UserIsNotLockedAnd_CorrectLockEndValueIsPassed() { string userId = Guid.NewGuid().ToString(); string adminId = Guid.NewGuid().ToString(); //Arrange var user = this.CreateUser(userId, lockDaysFor: null); await Db.Users.AddAsync(user); await Db.SaveChangesAsync(); DateTime timeThatLockEnds = DateTime.UtcNow.AddDays(LockDays); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, null); //Act bool expected = true; //bool actual = await service.LockAsync(adminId, userId, LockDays);// var expectedTime = timeThatLockEnds.Date; var actualTime = user.LockoutEnd.Value.UtcDateTime.Date; //Assert // Assert.Equal(expected, actual); //expected, actual// Assert.Equal(expectedTime, actualTime); }
public ActionResult AddHouse() { long?id = AdminHelper.AdminUserId(HttpContext); long?cityId = AdminUserService.GetById(id.Value).CityId; if (cityId == null) { return(View("ERROR", "总部不能进行房源管理")); } var regions = RegionService.GetCityAll(cityId.Value).ToList(); regions.Insert(0, new RegionDTO() { Id = 0, Name = "请选择" }); var roomTypes = IdNameService.GetAll("户型"); var statuses = IdNameService.GetAll("房屋状态"); var decorateStatuses = IdNameService.GetAll("装修状态"); var attachments = AttachmentService.GetAll(); var types = IdNameService.GetAll("房屋类别"); HouseAddViewModel model = new HouseAddViewModel(); model.Regions = regions; model.RoomTypes = roomTypes; model.Statuses = statuses; model.DecorateStatuses = decorateStatuses; model.Attachments = attachments; model.Types = types; return(View(model)); }
public ActionResult CheckLoginPhoneNum(string phoneNum) { try { var data = AdminUserService.GetByPhoneNum(phoneNum); if (data != null) { return(Json(new AjaxResult <object> { code = 1, msg = "此手机号已存在!" })); } return(Json(new AjaxResult <object> { code = 0 })); } catch (Exception ex) { return(Json(new AjaxResult <object> { code = 1, msg = ex.Message })); } }
public ActionResult Add() { long adminUserId = (long)Session["LoginUserId"]; long?cityId = AdminUserService.GetById(adminUserId).CityId; if (cityId == null) { return(View("Error", (object)"总部人员不能管理房源")); } var regions = RegionService.GetAll(cityId.Value); var roomTypes = IdNameService.GetAll("户型"); var statuses = IdNameService.GetAll("房屋状态"); var decorationStatuses = IdNameService.GetAll("装修状态"); var types = IdNameService.GetAll("房屋类别"); var attachments = AttachmentService.GetAll(); HouseAddViewModel model = new HouseAddViewModel() { Regions = regions, RoomTypes = roomTypes, Statuses = statuses, DecorateStatues = decorationStatuses, Types = types, Attachments = attachments }; return(View(model)); }
public ActionResult Add(HouseAddPostModel model) { long adminUserId = (long)Session["LoginUserId"]; long?cityId = AdminUserService.GetById(adminUserId).CityId; if (cityId == null) { return(View("Error", (object)"总部人员不能管理房源")); } var houseDTO = new HouseAddNewDTO(); houseDTO.Address = model.HouseAddress; houseDTO.AttachmentIds = model.AttachmentIds; houseDTO.CheckInDateTime = model.CheckInDate; houseDTO.CommunityId = model.CommunityId; houseDTO.DecorateStatusId = model.DecorateStatusId; houseDTO.Description = model.Description; houseDTO.Direction = model.Direction; houseDTO.FloorIndex = model.FloorIndex; houseDTO.TotalFloorCount = model.TotalIndex; houseDTO.LookableDateTime = model.LookableDatetime; houseDTO.MonthRent = model.MonthRent; houseDTO.OwnerName = model.OwnerName; houseDTO.OwnerPhoneNum = model.OwnerPhoneNum; houseDTO.RoomTypeId = model.RoomTypeId; houseDTO.StatusId = model.StatusId; houseDTO.TotalFloorCount = model.TotalIndex; houseDTO.TypeId = model.TypeId; houseDTO.Area = model.HouseArea; HouseService.AddNew(houseDTO); return(Json(new AjaxResult() { Status = "ok" })); }
public ActionResult Edit(long id) { long adminUserId = (long)Session["LoginUserId"]; long?cityId = AdminUserService.GetById(adminUserId).CityId; if (cityId == null) { return(View("Error", (object)"总部人员不能管理房源")); } var house = HouseService.GetById(id); var regions = RegionService.GetAll(cityId.Value); var roomTypes = IdNameService.GetAll("户型"); var statuses = IdNameService.GetAll("房屋状态"); var decorationStatuses = IdNameService.GetAll("装修状态"); var types = IdNameService.GetAll("房屋类别"); var attachments = AttachmentService.GetAll(); var model = new HouseEditViewModel(); model.Attachments = attachments; model.DecorateStatues = decorationStatuses; model.House = house; model.Regions = regions; model.RoomTypes = roomTypes; model.Statuses = statuses; model.Types = types; return(View(model)); }
public void Invoke_SaveChanges_When_Followee_Exists() { //Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var repoMock = new Mock <IGenericRepository <User> >(); var user = new User() { Id = "123" }; var userCollection = new List <User> { user }; repoMock.Setup(r => r.All).Returns(userCollection.AsQueryable()); unitOfWorkMock.Setup(u => u.Users).Returns(repoMock.Object); var sut = new AdminUserService(unitOfWorkMock.Object); //Act sut.DeleteByUserId(user.Id); //Assert unitOfWorkMock.Verify(v => v.SaveChanges(), Times.Once); }
public ActionResult Console() { int userCount = AdminUserService.GetAll().Count(); int roleCount = RoleService.GetAll().Count(); long id = (long)AdminHelper.AdminUserId(HttpContext).Value; var user = AdminUserService.GetById(id); long fullHouseCount = 0; long joinHouseCount = 0; GetMainConsole console = new GetMainConsole(); if (user.CityId == null) { console.FullHouseCount = fullHouseCount; console.JoinHouseCount = joinHouseCount; console.RoleCount = roleCount; console.UserCount = userCount; return(View(console)); } fullHouseCount = HouseService.GetTotalCout(user.CityId.Value, 8); joinHouseCount = HouseService.GetTotalCout(user.CityId.Value, 9); console.FullHouseCount = fullHouseCount; console.JoinHouseCount = joinHouseCount; console.RoleCount = roleCount; console.UserCount = userCount; return(View(console)); }
public async Task Fire_ValidUserIsPersonnel_Succes() { string USER_ID = Guid.NewGuid().ToString(); string QUALIFICATION_ID = Guid.NewGuid().ToString(); string ROLE_DOCTOR_ID = Guid.NewGuid().ToString(); string ROLE_PERSONNEL_ID = Guid.NewGuid().ToString(); await dbContext.Roles.AddRangeAsync( new IdentityRole(Roles.DOCTOR) { Id = ROLE_DOCTOR_ID, NormalizedName = Roles.DOCTOR.ToUpperInvariant() }, new IdentityRole(Roles.PERSONNEL) { Id = ROLE_PERSONNEL_ID, NormalizedName = Roles.PERSONNEL.ToUpperInvariant() } ); await dbContext.Qualification.AddAsync(new Qualification(Roles.DOCTOR) { Id = QUALIFICATION_ID }); await dbContext.SaveChangesAsync(); await dbContext.Users.AddAsync(new User("TestName", "TestUserName", "*****@*****.**", DateTime.Now) { Id = USER_ID, QualificationId = QUALIFICATION_ID }); await dbContext.SaveChangesAsync(); await dbContext.UserRoles.AddAsync(new IdentityUserRole <string>() { UserId = USER_ID, RoleId = ROLE_PERSONNEL_ID }); await dbContext.SaveChangesAsync(); var service = new AdminUserService(dbContext, userManager, roleManager, signInManager, new Mock <IServerNewsService>().Object); await service.FireAsync(USER_ID); Assert.IsNull((await dbContext.Users.FindAsync(USER_ID)).QualificationId); }
public ActionResult ManyDeleted(string idsStr) { try { var ids = idsStr.Substring(0, idsStr.LastIndexOf(',')).Split(','); foreach (var id in ids) { AdminUserService.MarkDeleted(long.Parse(id)); } return(Json(new AjaxResult <object> { code = 0, msg = "删除成功" })); } catch (Exception ex) { Log.ErrorFormat("批量删除失败:{0}", ex.Message); return(Json(new AjaxResult <object> { code = 1, msg = "删除失败" })); } }
public async Task UnassignedPersonnel_Some_ReturnAll() { string USER_ID_1 = Guid.NewGuid().ToString(); string USER_ID_2 = Guid.NewGuid().ToString(); string USER_ID_3 = Guid.NewGuid().ToString(); await dbContext.Users.AddRangeAsync( new User("TestName1", "TestUserName1", "*****@*****.**", DateTime.Now) { QualificationId = QUALIFICATION_ID, Id = USER_ID_1 }, new User("TestName2", "TestUserName2", "*****@*****.**", DateTime.Now) { QualificationId = QUALIFICATION_ID, Id = USER_ID_2 }, new User("TestName3", "TestUserName3", "*****@*****.**", DateTime.Now) { QualificationId = QUALIFICATION_ID, Id = USER_ID_3 } ); await dbContext.UserRoles.AddRangeAsync( new IdentityUserRole <string>() { UserId = USER_ID_1, RoleId = ROLE_ID }, new IdentityUserRole <string>() { UserId = USER_ID_2, RoleId = ROLE_ID }, new IdentityUserRole <string>() { UserId = USER_ID_3, RoleId = ROLE_ID } ); await dbContext.SaveChangesAsync(); var service = new AdminUserService(dbContext, userManager, roleManager, signInManager, new Mock <IServerNewsService>().Object); Dictionary <string, string> collection = await service.UnassignedPersonnelAsync(); Assert.IsNotNull(collection); Assert.AreEqual(3, collection.Count); }
public async Task AllAsyncShouldReturnAllUsers() { // Arange var dbContext = Testing.CreateDatabaseContext(); var mapper = Testing.CreateMapper(); await dbContext .Users .AddRangeAsync(new User { Id = "1" }, new User { Id = "2" }, new User { Id = "3" }); await dbContext.SaveChangesAsync(); var adminUserService = new AdminUserService(dbContext, mapper); // Act var result = await adminUserService.AllAsync(); // Assert result .Should() .Match(r => r.ElementAt(0).Id == "1" && r.ElementAt(1).Id == "2" && r.ElementAt(2).Id == "3") .And .HaveCount(3); }
public async Task UnlockAsyncShould_NotMakeChangesWhen_UserIdIsNotCorrect() { string createdUserId = Guid.NewGuid().ToString(); string unlockingUserId = Guid.NewGuid().ToString(); string adminId = Guid.NewGuid().ToString(); //Arrange var user = this.CreateUser(createdUserId, lockDaysFor: LockDays); await Db.Users.AddAsync(user); await Db.SaveChangesAsync(); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, null); //Act bool expected = false; //bool actual = await service.UnlockAsync(adminId, unlockingUserId);/// //Assert //Assert.Equal(expected, actual); //expected, actual/// }
public async Task FindAsyncShouldReturnCorrectResultSearchCount() { // Arrange var db = TestInit.InitializeInmemoryDatabase(); var user1 = new User() { Id = "1", FirstName = "user1f", Surname = "user1s", Email = "*****@*****.**" }; var user2 = new User() { Id = "2", FirstName = "user2f", Surname = "user2s", Email = "*****@*****.**" }; var user3 = new User() { Id = "3", FirstName = "user3f", Surname = "user3s", Email = "*****@*****.**" }; db.AddRange(user1, user2, user3); await db.SaveChangesAsync(); var adminUserService = new AdminUserService(db); // Act var result = await adminUserService.AllAsync("user2"); // Assert Assert.True(result.Count() == 1); }
public async Task LockAsyncShould_ReturnsFalseWhen_UserIdIsNotCorrect() { //Arrange string createdUserId = Guid.NewGuid().ToString(); string lockingUserId = Guid.NewGuid().ToString(); string adminId = Guid.NewGuid().ToString(); var user = this.CreateUser(createdUserId, lockDaysFor: null); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, null); //Act bool expected = false; //bool actual = await service.LockAsync(adminId, lockingUserId, LockDays);// //Assert //Assert.Equal(expected, actual); //expected, actual Assert.True(user.LockoutEnd == null); }
public async Task All_One_AllDataMapped() { string USER_ID = Guid.NewGuid().ToString(); string QUALIFICATION_ID = Guid.NewGuid().ToString(); await dbContext.Qualification.AddAsync(new Qualification("TestQualification") { Id = QUALIFICATION_ID }); await dbContext.Users.AddAsync(new User("TestName1", "TestUserName1", "*****@*****.**", DateTime.Now) { Id = USER_ID, QualificationId = QUALIFICATION_ID }); await dbContext.SaveChangesAsync(); var service = new AdminUserService(dbContext, userManager, roleManager, signInManager, new Mock <IServerNewsService>().Object); IEnumerable <UserConciseViewModel> results = await service.AllAsync(new ClaimsPrincipal()); Assert.IsNotNull(results); Assert.AreEqual(1, results.ToList().Count); UserConciseViewModel foundModel = results.First(); User foundUser = dbContext.Users.Include(u => u.Qualification).First(u => u.Id == USER_ID); Assert.AreEqual(foundUser.FullName, foundModel.FullName); Assert.AreEqual(foundUser.Email, foundModel.Email); Assert.AreEqual(foundUser.Id, foundModel.Id); Assert.AreEqual(foundUser.TwoFactorEnabled, foundModel.Is2FAEnabled); Assert.AreEqual(foundUser.Qualification.Name, foundModel.Qualification); }
public async Task RemoveFromRoleAsyncShould_ReturnsFalseWhen_UserIsNotInRole() { const string Role = "Manager"; //Arrange var admin = UserCreator.Create(); var user = UserCreator.Create(); await Db.Users.AddRangeAsync(admin, user); await Db.SaveChangesAsync(); var userManagerMock = UserManagerMock.New; userManagerMock.Setup(u => u.FindByIdAsync(user.Id)).Returns(Task.FromResult(user)); userManagerMock.Setup(u => u.IsInRoleAsync(user, Role)).Returns(Task.FromResult(false)); //TODO: rewrite this test (now there is no need for userManager) var service = new AdminUserService(Db, null); //Act var result = await service.RemoveFromRoleAsync(admin.Id, user.Id, Role); //Assert result.Should().Be(false); }
/// <summary> /// 批量删除 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button2_Click(object sender, EventArgs e) { string ids = selInfo(); int num = 0; if (ids.Length == 0) { Jscript.Alert("请选择要删除的记录!", this.Page); return; } string[] arr = ids.TrimEnd(',').Split(','); for (int i = 0; i < arr.Length; i++) { if (AdminUserService.Delete(Convert.ToInt32(arr[i])) > 0) { num++; } } ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "", "alert('成功删除" + num + "条记录!');", true); DataSet ds = AdminUserService.GetList(""); if (ds.Tables[0].Rows.Count > 0) { this.repInfo.DataSource = ds; repInfo.DataBind(); } }
public ActionResult Delete(long id) { AdminUserService.MarkDeleted(id); return(Json(new AjaxResult { Status = "ok" })); }
public async Task CategoryById() { // Arrange var db = this.GetDatabase(); var firstUser = new User { Id = "first", Name = "First" }; var secondUser = new User { Id = "second", Name = "Second" }; var thirdUser = new User { Id = "third", Name = "Third" }; db.AddRange(firstUser, secondUser, thirdUser); await db.SaveChangesAsync(); var adminUserService = new AdminUserService(db); // Act var result = await adminUserService.AllAsync(); // Assert result .Should() .HaveCount(3); }
public ActionResult Add(HouseAddNewDTO house) { long userId = (long)AdminHelper.GetUserId(HttpContext); var user = AdminUserService.GetById(userId); if (user.CityId == null) { //TODO如果“总部不能***”的操作很多,也可以定义成一个AuthorizeFilter //最好用FilterAttribute的方式标注,这样对其他的不涉及这个问题的地方效率高 //立即实现 return(View("ERROR", (object)"总部不能进行房源管理")); } var houseId = HouseService.AddNew(house); if (houseId > 0) { //生成房源查看的html文件 CreateStaticPages(houseId); return(Json(new AjaxResult() { Status = "ok" })); } return(Json(new AjaxResult() { Status = "error", ErrorMsg = "添加失败" })); }
public async Task MakeDoctor_ValidUser_Success() { string userId = Guid.NewGuid().ToString(); string qualificationId = Guid.NewGuid().ToString(); string roleId = Guid.NewGuid().ToString(); var service = new AdminUserService(dbContext, userManager, roleManager, signInManager, new Mock <IServerNewsService>().Object); await dbContext.Users.AddAsync(new User("TestName1", "TestUserName1", "*****@*****.**", DateTime.Now) { Id = userId }); await dbContext.Qualification.AddAsync(new Qualification("TestQualification") { Id = qualificationId }); await dbContext.Roles.AddAsync(new IdentityRole(Roles.DOCTOR) { Id = roleId }); await dbContext.SaveChangesAsync(); await service.MakeDoctorAsync(new AddDoctorModel() { HasStandardWorkTime = true, DoctorId = userId, QualificationId = qualificationId }); Assert.IsNotNull(dbContext.Users.Find(userId).QualificationId); Assert.AreEqual(qualificationId, dbContext.Users.Find(userId).QualificationId); Assert.IsTrue(dbContext.UserRoles.Any(ur => ur.RoleId == roleId && ur.UserId == userId)); }
public ActionResult Edit(AdminUserEditModel AdminUser) { if (!ModelState.IsValid) { return(Json(new AjaxResult { Status = "error", Msg = Web.Common.WebCommonHelper.GetValidMsg(ModelState) })); } if (string.IsNullOrEmpty(AdminUser.Password)) { AdminUserService.UpdateAdminUser(AdminUser.Id, AdminUser.Name, AdminUser.PhoneNum, AdminUser.Email, AdminUser.CityId); } else { AdminUserService.UpdateAdminUser(AdminUser.Id, AdminUser.Name, AdminUser.PhoneNum, AdminUser.Password, AdminUser.Email, AdminUser.CityId); } RoleService.UpdateRoleIds(AdminUser.Id, AdminUser.RoleIds); return(Json(new AjaxResult() { Status = "ok" })); }
public ActionResult Edit(AdminUserEditModel model) { //修改的时候密码为空表示不修改,这样的话属性验证过不了,直接去掉这个了 //if (!ModelState.IsValid) //{ // return Json(new AjaxResult() { Status = "error", ErrorMsg = MVCHelper.GetValidMesg(ModelState) }); //} var user = AdminUserService.GetByPhoneNum(model.PhoneNum); if (user == null) { return(Json(new AjaxResult() { Status = "error", ErrorMsg = "该手机号不存在" })); } //TODO:这里应该用事务 AdminUserService.UpdateAdminUser(user.Id, model.Name, model.PhoneNum, model.PassWord, model.Email, model.CityId); RoleService.UpdateRoleIds(user.Id, model.RoleIds); return(Json(new AjaxResult() { Status = "ok" })); }