Beispiel #1
0
        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"
            }));
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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 = "用户名或者密码错误"
                }));
            }
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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
         }));
     }
 }
Beispiel #10
0
        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));
        }
Beispiel #11
0
        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"
            }));
        }
Beispiel #12
0
        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);
        }
Beispiel #14
0
        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));
        }
Beispiel #15
0
        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);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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///
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        /// <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();
            }
        }
Beispiel #25
0
 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);
        }
Beispiel #27
0
        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 = "添加失败"
            }));
        }
Beispiel #28
0
        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));
        }
Beispiel #29
0
        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"
            }));
        }
Beispiel #30
0
        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"
            }));
        }