Exemple #1
0
 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");
     }
 }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        //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));
        }
Exemple #6
0
 /// <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;
     }
 }
Exemple #7
0
 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));
        }