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;
            }
        }
示例#2
0
        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
            }
        }