public ResponseUserAccount AthenticateUser(LoginUser loginUser) { if (UserDB.UserAccounts.Any(U => U.Email.Equals(loginUser.Email))) { string Password = passwordEncryption.EncryptPassword(loginUser.Password); if (UserDB.UserAccounts.FirstOrDefault(u => u.Email == loginUser.Email).Password.Equals(Password)) { ResponseUserAccount User = UserDB.UserAccounts.Where(u => u.Email == loginUser.Email). Select(u => new ResponseUserAccount { UserID = u.UserId, FirstName = u.FirstName, LastName = u.LastName, Email = u.Email, }).ToList().First(); return(User); } else { throw new UserAccountException(UserAccountException.ExceptionType.WRONG_PASSWORD, "wrong password"); } } else { throw new UserAccountException(UserAccountException.ExceptionType.EMAIL_DONT_EXIST, "email address is not registered"); } }
public bool Registration(ResponseUserAccount user) { if (!userContext.Accounts.Any(u => u.Email == user.Email)) { UserAccount register = new UserAccount { FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, DateOfBirth = user.DateOfBirth, PhoneNumber = user.PhoneNumber, Password = Password.ConvertToEncrypt(user.Password), Creationtime = DateTime.Now, Modificationtime = null, }; userContext.Accounts.Add(register); userContext.SaveChanges(); return(true); } else { throw new UserAccountException(UserAccountException.ExceptionType.EMAIL_ALREADY_EXIST, "Email Id alredy exist"); } }
//Here return type represents the result of an action method public IActionResult Registration(ResponseUserAccount user) { try { if (ModelState.IsValid) { bool result = this.userBL.Registration(user); if (result != false) { //this.Ok returns the data in json format return(this.Ok(new { Success = true, Message = "Register Record Successfully", Users = result })); } else { return(this.BadRequest(new { Success = false, Message = "Register Record Unsuccessfully" })); } } else { throw new Exception("Model is not valid"); } } catch (Exception ex) { return(BadRequest(new { Success = false, ex.Message })); } }
public IActionResult AuthenticateUser(LoginUser loginUser) { if (loginUser == null) { return(BadRequest("user is null.")); } try { ResponseUserAccount user = userAccountBL.AthenticateUser(loginUser); if (user != null) { var tokenString = userAuthentication.GenerateSessionJWT(user); return(Ok(new { success = true, Message = "User Login Successful", user, token = tokenString })); } return(BadRequest(new { success = false, Message = "User Login Unsuccessful" })); } catch (Exception exception) { return(BadRequest(new { success = false, exception.Message })); } }
/// <summary> /// Generates the json web token. /// </summary> /// <param name="userInfo">The user information.</param> /// <param name="ExpireTime">The expire time.</param> /// <returns></returns> public string GenerateJSONWebToken(ResponseUserAccount userInfo, DateTime ExpireTime) { SymmetricSecurityKey securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config["Jwt:Key"])); SigningCredentials credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); IEnumerable <Claim> Claims = new Claim[] { // new Clain("FundooNotes", "Notes"); new Claim("UserID", userInfo.UserID.ToString()), new Claim("Email", userInfo.Email) }; var token = new JwtSecurityToken(config["Jwt:Issuer"], config["Jwt:Audience"], claims: Claims, expires: ExpireTime, signingCredentials: credentials); return(new JwtSecurityTokenHandler().WriteToken(token)); }
/// <summary> /// Sends the forgotten password link to email. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public bool SendForgottenPasswordLink(ForgetPasswordModel user) { try { ResponseUserAccount u = userAccountRL.GetUserAccount(user); if (u != null) { var jwt = userAuthentication.GeneratePasswordResetJWT(u); user.JwtToken = jwt; msmq.SendPasswordResetLink(user); return(true); } return(false); } catch (Exception) { throw; } }
public bool Registration(ResponseUserAccount user) { try { if (userDetailValidation.ValidateFirstName(user.FirstName) && userDetailValidation.ValidateLastName(user.LastName) && userDetailValidation.ValidateEmailAddress(user.Email) && userDetailValidation.ValidatePassword(user.Password)) { return(this.userRL.Registration(user)); } else { throw new UserDetailException(UserDetailException.ExceptionType.ENTERED_INVALID_USER_DETAILS, "user details are invalid"); } } catch (Exception) { throw; } }
public IActionResult RegisterUser(RegisterUserAccount user) { if (user == null) { return(BadRequest("user is null.")); } try { ResponseUserAccount result = userAccountBL.RegisterNewUser(user); if (result != null) { return(Ok(new { success = true, Message = "User Registration Successful", user = result })); } else { return(BadRequest(new { success = false, Message = "User Registration Unsuccessful" })); } } catch (Exception exception) { return(BadRequest(new { success = false, exception.Message })); } }
/// <summary> /// Generates the password reset JWT. /// </summary> /// <param name="userInfo">The user information.</param> /// <returns></returns> public string GeneratePasswordResetJWT(ResponseUserAccount userInfo) { DateTime ExpireTime = DateTime.Now.AddHours(2); return(GenerateJSONWebToken(userInfo, ExpireTime)); }
/// <summary> /// Generates the session JWT. /// </summary> /// <param name="userInfo">The user information.</param> /// <returns></returns> public string GenerateSessionJWT(ResponseUserAccount userInfo) { DateTime ExpireTime = DateTime.Now.AddMinutes(120); return(GenerateJSONWebToken(userInfo, ExpireTime)); }