// GET: UserModels public ActionResult Index() { UserBinder userBinder = new UserBinder(); ICollection <UserModel> userModel = userBinder.Bind(db.User.ToList()); return(View(userModel)); }
public ActionResult Registration([Bind(Include = "Password,RePassword,UserName")] UserModel userModel) { if (ModelState.IsValid) { UserModel dbUser = userModel.GetUserByUsername(userModel.UserName); if (dbUser.UserName != null) { return(HttpNotFound("Username is already used")); } if (!String.Equals(userModel.Password, userModel.RePassword)) { return(HttpNotFound("Passwords are not same")); } Session["UserName"] = dbUser.UserName; UserBinder userBinder = new UserBinder(); userModel.UserTypeId = UserTypeCodes.User; User user = userBinder.Bind(userModel); db.User.Add(user); db.SaveChanges(); return(RedirectToAction("Index", "Home")); } return(View(userModel)); }
public void ShouldBindUser() { // Arrange string email = "*****@*****.**"; string password = "******"; Mock<IEncryptor> encryptor = new Mock<IEncryptor>(); encryptor.Setup(x => x.Encrypt(It.IsAny<string>())).Returns<string>(s => s); IUser user = MockUsers.CreateMockUser(MockUsers.CreateMockUserCredentials(email, password)); Mock<IUserRepository> repository = new Mock<IUserRepository>(); repository.Setup(r => r.CreateUser(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<IUserCredentials>())).Returns(user); UserBinder binder = new UserBinder(repository.Object, encryptor.Object); ModelBindingContext ctx = BinderHelpers.CreateModelBindingContext("user", new Dictionary<string, string> { { "Email", email }, { "Password", password } }); // Act IUser u = binder.BindModel(null, ctx) as IUser; // Assert Assert.AreNotEqual(null, u); Assert.AreEqual(true, ctx.ModelState.IsValid); Assert.AreEqual(email, u.Credentials.Email); Assert.AreEqual(password, u.Credentials.Password); encryptor.Verify(x => x.Encrypt(password)); }
public IActionResult Login([FromBody] UserBinder userParameters) { var user = _userService.Authenticate(userParameters.Email, userParameters.Password); if (user == null) { return(BadRequest(new { message = "Error: Incorrect password or email" })); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.UTF8.GetBytes(_appSettings.Secret); var tokenDescription = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(30), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescription); var tokenString = tokenHandler.WriteToken(token); return(Ok(new { user.Id, user.Email, user.FirstName, user.LastName, Token = tokenString })); }
public UserModel GetUserByUsername(string userName) { User dbUser = db.User.Where(u => u.UserName == userName).FirstOrDefault(); UserBinder binder = new UserBinder(); UserModel userModel = binder.Bind(dbUser); return(userModel); }
public ActionResult Create([Bind(Include = "Id,Password,UserName,UserTypeId")] UserModel userModel) { if (ModelState.IsValid) { UserBinder userBinder = new UserBinder(); User user = userBinder.Bind(userModel); db.User.Add(user); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(userModel)); }
public IActionResult Register([FromBody] UserBinder userParameters) { var user = _mapper.Map <User>(userParameters); try { var subject = "Register in Survey App"; var first_last_name = $"{userParameters.FirstName} {userParameters.LastName}"; var text = $"Hello {userParameters.FirstName} {userParameters.LastName}, Thank you for register in Survey App. Login and go to Survey List to look at your Surveys."; new EmailClient().SendSMTPEmails(userParameters.Email, subject, text, first_last_name); _userService.Create(user, userParameters.Password); return(Ok(new { message = "Your account has been created!" })); } catch (AppException exception) { return(BadRequest(new { message = exception.Message })); } }