public bool CreateNewUser(UserSetUp command) { try { // Add transactions // 2.1 generate password Hash var encryptedCredentials = GenericUtilityService.EncryptPassword(command.Password); // Next item // Create New User Token // Get a random number between 1 and 100000, hash it to get the sessionId, save string to DB and in cookie, return var randomSessionId = new Random().Next(1, 100000).ToString(); var sessionHash = new Rfc2898DeriveBytes(randomSessionId, 10).GetBytes(10); var newUser = new Qup.Database.User() { FirstName = command.FirstName, LastName = command.LastName, Email = command.Email, PhoneNumber = command.PhoneNumber, DateCreated = DateTime.Now, Salt = encryptedCredentials.Salt, UserPassword = encryptedCredentials.EncryptedPassword, UserKey = Convert.ToBase64String(sessionHash) }; _context.Users.Add(newUser); _context.SaveChanges(); // Link User To UserGroup var mapUserToGroup = new UsersToUserGroup() { UserId = newUser.Id, UserGroupId = command.UserType }; _context.UsersToUserGroups.Add(mapUserToGroup); _context.SaveChanges(); // 4. Generate User QR code return(true); } catch (Exception e) { throw e; // log exception in errorhandler //return false; } }
protected void signUpSubmit_Click(object sender, EventArgs e) { var businessAdminFirstName = firstName.Value.Trim(); var businessAdminLastName = lastName.Value.Trim(); var businessAdminPhoneNumber = mobileNumber.Value.Trim(); var businessAdminEmail = email.Value.Trim(); var businessAdminPassword = password.Value.Trim(); var userGroupType = userType.Value; // 1. Server Side Validation bool formValuesValidationResult = ValidateRequest(); // 2. Save if (formValuesValidationResult) { var userInformation = new UserSetUp() { FirstName = businessAdminFirstName, LastName = businessAdminLastName, PhoneNumber = businessAdminPhoneNumber, Email = businessAdminEmail, Password = businessAdminPassword, UserType = Convert.ToInt16(userGroupType) }; var accountSetService = new AccountManagementService(); var result = accountSetService.CreateNewUser(userInformation); if (result) { UserMessage = "New User Account created successfully."; ResetFieldValues(); } else { UserMessage = "New User failed to be created."; } } else { // return error message } }