/// <summary>
        /// Complete Registration for the user
        /// </summary>
        /// <returns>IResult the result of whole registration process</returns>
        public IResult RegisterUser()
        {
            string message = "";

            string   email    = registrationRequest.Email;
            string   fname    = registrationRequest.Firstname;
            string   lname    = registrationRequest.Lastname;
            DateTime dob      = registrationRequest.Dob;
            string   password = registrationRequest.Password;

            // Generate salt and hash password
            Hasher     hasher     = new Hasher(algorithm);
            HashObject hash       = hasher.GenerateSaltedHash(password);
            string     hashedPw   = hash.HashedValue;
            string     salt       = hash.Salt;
            Account    newAccount = new Account(email, hashedPw, salt);

            ICreateAccountDAO newAccountDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User));
            ICreateAccountDAO newMappingDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            IMapperDAO        mapperDAO     = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            ICreateAccountDAO newUserDAO    = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));

            CreateAccountDAOs     daos = new CreateAccountDAOs(newAccountDAO, newMappingDAO, newUserDAO, mapperDAO);
            ICreateAccountService cas  = new SqlCreateAccountService(newAccount, daos);
            IResult checkResult        = cas.Create();

            message = message + checkResult.Message;
            bool ifSuccess = checkResult.IsSuccess;

            if (ifSuccess)
            {
                int sysID = mapperDAO.GetSysID(email);
                if (sysID != -1)
                {
                    ISqlDAO DAO     = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
                    User    newUser = new User(sysID, email, fname, lname, "Enable", dob, "male");
                    UpdateAccountSqlService updateAccount = new UpdateAccountSqlService(newUser, DAO);
                    checkResult = updateAccount.Update();
                    message     = message + checkResult.Message;
                    ifSuccess   = checkResult.IsSuccess;
                }
                else
                {
                    ifSuccess = false;
                    message   = message + "failed to Retrieve sysID";
                }
            }

            return(new CheckResult(message, ifSuccess));
        }
        public UserManagementManager()
        {
            var sqlDao           = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
            var createAccountDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User));
            var newMappingDAO    = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            var newUserDAO       = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
            var mapperDAO        = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            var bunchedDaos      = new CreateAccountDAOs(createAccountDAO, newMappingDAO, newUserDAO, mapperDAO);

            _updatePermissionService = new PermissionUpdateSqlService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)), new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User)));
            _updateAccountService    = new UpdateAccountSqlService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)));
            _createAccountService    = new SqlCreateAccountService(bunchedDaos);
            _deleteAccountService    = new DeleteAccountSQLService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)), new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User)), new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User)));
            _authNService            = new AuthenticationService(new GetUserDao(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)));
            _authService             = new JWTService();
        }
Esempio n. 3
0
        public int SysIdFinder(User user)
        {
            IMapperDAO mapperDAO = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));

            return(mapperDAO.GetSysID(user.UserEmail));
        }
        /// <summary>
        /// Delete a user, starting with their system information,
        /// </summary>
        /// <returns></returns>
        public IResult Delete()
        {
            string message      = "";
            bool   isSuccess    = true;
            int    totalSuccess = 0;

            List <SqlCommand> commands  = new List <SqlCommand>();
            IMapperDAO        mapperDAO = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));

            foreach (User targetUser in _targetUsers)
            {
                List <SqlCommand> deleteUserCommands = new List <SqlCommand>();
                var cmd = new SqlCommand(ConfigurationManager.AppSettings["queryDeleteSystem"]);
                cmd.Parameters.AddWithValue("@sysID", targetUser.SystemID);
                deleteUserCommands.Add(cmd);

                int rowsDeleted = _deleteSystemdb.RunCommand(deleteUserCommands);
                if (rowsDeleted > 0)
                {
                    List <SqlCommand> deleteMapperCommands = new List <SqlCommand>();
                    deleteMapperCommands = new List <SqlCommand>();
                    cmd = new SqlCommand(ConfigurationManager.AppSettings["queryDeleteMapping"]);
                    cmd.Parameters.AddWithValue("@sysID", mapperDAO.GetSysID(targetUser.UserEmail));
                    deleteMapperCommands.Add(cmd);
                    rowsDeleted = _deleteMappingdb.RunCommand(deleteMapperCommands);
                    if (rowsDeleted > 0)
                    {
                        List <SqlCommand> deleteAccountCommands = new List <SqlCommand>();
                        deleteAccountCommands = new List <SqlCommand>();
                        cmd = new SqlCommand(ConfigurationManager.AppSettings["queryDeleteAccount"]);
                        cmd.Parameters.AddWithValue("@email", targetUser.UserEmail);
                        deleteAccountCommands.Add(cmd);
                        rowsDeleted = _deleteAccountdb.RunCommand(deleteAccountCommands);
                        if (rowsDeleted > 0)
                        {
                            totalSuccess += 1;
                        }
                        else
                        {
                            message  += "Failed to delete from Accounts!";
                            isSuccess = false;
                        }
                    }
                    else
                    {
                        message  += "Failed to delete from Mapping!";
                        isSuccess = false;
                    }
                }
                else
                {
                    message  += "Failed to delete from System!";
                    isSuccess = false;
                }
            }
            if (totalSuccess == _targetUsers.Count)
            {
                message += ConfigurationManager.AppSettings["DeleteAccountSuccess"];
            }
            else
            {
                message  += ConfigurationManager.AppSettings["DeleteAccountFailure"];
                isSuccess = false;
            }
            return(new CheckResult(message, isSuccess));
        }