private RegistrationStatus RegisterAccount(ComplexUserAccount newAccount, out ComplexUserAccount registeredAcc) { lock (Locker) { registeredAcc = null; try { UserAccountModel trimmedAccount = new AccountValidator(newAccount).Trim(); ComplexUserAccount trimmedComplexAcc = trimmedAccount.ToComplex(); trimmedComplexAcc.PasswordDatas.AddRange(newAccount.PasswordDatas); trimmedComplexAcc.RegistrationTime = DateTime.Now; AccountDbInteracter.Instance.AddOrUpdate(trimmedComplexAcc); stateService.RegisterNewUserState(trimmedComplexAcc); passwordService.SaveOrUpdatePassword(newAccount.PasswordDatas[0], false); registeredAcc = trimmedComplexAcc; return(RegistrationStatus.Registered); } catch (Exception ex) { string message = $"Failed to register account '{newAccount.Name}': {ex.Message}"; logger.Error(ex, "Failed to register account"); message.WriteToConsole(ConsoleColor.Red); return(RegistrationStatus.Error); } } }