public static Login AddNewLoginAndPerson(RegisterViewModel model, string emailConfirmToken) { var salt = UtilService.GeneratePassword(10, 5); var passwordHash = AccountService.CreatePasswordHash(model.Password, salt); try { var user = new Login { UserName = model.UserName, Email = model.UserName, PasswordHash = passwordHash, SecurityStamp = salt, EmailConfirmationToken = emailConfirmToken.ToString(), EmailConfirmationTokenExpiryDate = DateTime.Now.AddHours(2).ToUniversalTime(), // FOR TESTING PUPROSE VALIDITY ONLY FOR 2HRS EmailConfirmed = false, CreatedBy = model.UserName, CreatedOn = DateTime.Now, IsActive = false }; var person = new Person { FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, Login = user, Address = new Address { CountryId = 1, IsActive = true, }, Address1 = new Address { CountryId = 1, IsActive = true }, UID = Guid.NewGuid(), IsActive = true }; var loginRole = new LoginRole { RoleId = model.RoleId, IsActive = true, PendingApproval = false }; var result = AddNewUser(user, person, loginRole); return(result.IsSuccess ? user : null); } catch (Exception ex) { return(null); } }
public static ServiceResponseResult ChangePasswordAfterLogin(ChangePasswordModel model, String login) { var result = new ServiceResponseResult { IsSuccess = false }; using (var db = new KeysEntities()) { try { var currentUser = db.Login.FirstOrDefault(x => x.UserName == login); if (currentUser == null) { result.ErrorMessage = "User is not found!"; return(result); } else { var salt = UtilService.GeneratePassword(10, 5); var passwordHash = AccountService.CreatePasswordHash(model.NewPassword, salt); currentUser.PasswordHash = passwordHash; currentUser.SecurityStamp = salt; currentUser.ResetPasswordToken = ""; db.SaveChanges(); result.IsSuccess = true; return(result); } } catch (Exception ex) { result.ErrorMessage = _serverError; return(result); } } }
public static ServiceResponseResult CreateTenantAccount(AddTenantToPropertyModel model, Login creartor, string temPass) { using (var db = new KeysEntities()) { var salt = UtilService.GeneratePassword(10, 5); //var temPass = UtilService.GeneraterRandomKey(8); var passwordHash = AccountService.CreatePasswordHash(temPass, salt); var login = new Login { UserName = model.TenantEmail, Email = model.TenantEmail, PasswordHash = passwordHash, SecurityStamp = salt, EmailConfirmed = true, CreatedBy = creartor.Email, CreatedOn = DateTime.Now, IsActive = true }; var person = new Person { FirstName = model.FirstName, LastName = model.LastName, Login = login, Address = new Address { CountryId = 1, IsActive = true, }, Address1 = new Address { CountryId = 1, IsActive = true }, UID = Guid.NewGuid(), IsActive = true }; var loginRole = new LoginRole { RoleId = 5, IsActive = true, PendingApproval = false }; db.Login.Add(login); person.Login = login; db.Person.Add(person); loginRole.Person = person; db.LoginRole.Add(loginRole); var tenant = new Tenant { Person = person, IsCompletedPersonalProfile = false, HasProofOfIdentity = false, CreatedOn = DateTime.UtcNow, CreatedBy = creartor.Id, UpdatedOn = DateTime.UtcNow, IsActive = true, Address = new Address { CountryId = 1, IsActive = true, } }; db.Tenant.Add(tenant); try { db.SaveChanges(); return(new ServiceResponseResult { IsSuccess = true, NewObject = login }); } catch (Exception e) { return(new ServiceResponseResult { IsSuccess = false }); } } }
public static ServiceResponseResult ChangePassword(ResetPasswordViewModel model, string HdToken) { var result = new ServiceResponseResult { IsSuccess = false }; using (var db = new KeysEntities()) { try { var currentUser = db.Login.FirstOrDefault(x => x.UserName == model.Email && x.ResetPasswordToken == HdToken); //if current doesn't exist or not active or disable if (currentUser == null) { result.ErrorMessage = "Oops, Either you have clicked an expired link or the link as has tampered!"; return(result); } else { if (currentUser.ResetPasswordTokenExpiryDate < DateTime.Now) { result.ErrorMessage = "Your Account Reset password token has expired! Please do reset again"; return(result); } else { var salt = UtilService.GeneratePassword(10, 5); var passwordHash = AccountService.CreatePasswordHash(model.Password, salt); //var newPasswordHash = AccountService.CreatePasswordHash(model.Password, currentUser.SecurityStamp); currentUser.PasswordHash = passwordHash; currentUser.SecurityStamp = salt; currentUser.ResetPasswordToken = ""; db.SaveChanges(); result.IsSuccess = true; return(result); } } //if (currentUser.ResetPasswordTokenExpiryDate < DateTime.Now) //{ // result.ErrorMessage = "Your Account Reset password token has expired! Please do reset again"; // return result; //} //generate new password hash from new password //var salt = UtilService.GeneratePassword(10, 5); //var passwordHash = AccountService.CreatePasswordHash(model.Password, salt); ////var newPasswordHash = AccountService.CreatePasswordHash(model.Password, currentUser.SecurityStamp); //currentUser.PasswordHash = passwordHash; //currentUser.SecurityStamp = salt; //currentUser.ResetPasswordToken = ""; //db.SaveChanges(); //result.IsSuccess = true; //return result; } catch (Exception ex) { result.ErrorMessage = _serverError; return(result); } } }