public async Task Create(CreateAccountData data) { if (data == null) { throw new MissingArgumentsException(nameof(data)); } if (string.IsNullOrEmpty(data.Name)) { throw new MissingArgumentsException(nameof(data.Name)); } if (string.IsNullOrEmpty(data.Login)) { throw new MissingArgumentsException(nameof(data.Login)); } if (string.IsNullOrEmpty(data.Password)) { throw new MissingArgumentsException(nameof(data.Password)); } var loginExists = await _db.User.AnyAsync(x => x.Login == data.Login); if (loginExists) { throw new RuleException("The given login already exists"); } var user = User.New(data.Name, data.Login); user.SetPassword(data.Password); await _db.User.AddAsync(user); }
public async Task <ActionResult <AuthenticationResult> > New([FromBody] CreateAccountData data) { try { await repo.Create(data); await repo.SaveChangesAsync(); } catch (RuleException ruleException) { return(UnprocessableEntity(ruleException)); } catch (MissingArgumentsException missingArgumentsException) { return(BadRequest(missingArgumentsException)); } catch (Exception exception) { return(StatusCode(StatusCodes.Status500InternalServerError, exception)); } var authenticationData = new AuthenticationData() { Login = data.Login, Password = data.Password }; return(await Authenticate(authenticationData)); }
public async Task <IActionResult> CreateAccount([FromBody] CreateAccountData accData) { try { await _accountService.CreateAccount(accData); } catch (Exception) { return(BadRequest()); } return(NoContent()); }
public void AccountService_CreateAccount_Test() { var createAccData = new CreateAccountData() { password = "******", username = "******", firstName = "firstName", lastName = "lastName", email = "*****@*****.**" }; var response = mockAccountService.Object.CreateAccount(createAccData); Assert.True(response.IsCompletedSuccessfully); mockAccountService.Verify(); }
public void AccountController_CreateAccount_Test() { //arrange var mockController = new AccountController(mockAccountService.Object); var createAccData = new CreateAccountData() { username = "******", password = "******", firstName = "John", lastName = "Doe", email = "*****@*****.**" }; //act var result = mockController.CreateAccount(createAccData); //assert Assert.True(result.IsCompletedSuccessfully); }
public override JsonOperationResponseBase OnOperation(Arguments arguments, Authentication authentication) { ContentType = "text/plain"; CreateAccountData request = new CreateAccountData() { username = arguments["username"], password = arguments["password"] }; if (!request.IsValidRequest()) { return(new CreateAccountResponse() { Error = "All fields were not filled out" }); } if (!User.IsValidUsername(request.username, out string usernameError)) { return(new CreateAccountResponse() { Error = string.Format("Invalid username, {0}", usernameError) }); } if (!User.IsValidPassword(request.password, out string passwordError)) { return(new CreateAccountResponse() { Error = string.Format("Invalid password, {0}", passwordError) }); } User newUser = User.CreateNewUser(request.username, request.password); Session session = UserManager.Instance.SignInAsUser(request.username, request.password); OutputConsole.WriteLine("New user signed up " + newUser.UserID + " (" + newUser.Username + ")"); return(new CreateAccountResponse() { sessionID = session.Key }); }
public async Task CreateAccount(CreateAccountData cad) { string defaultUrl = _config["DefaultAvatarUrl"] ?? throw new Exception("No Default avatar url in appsettings"); var account = new Account() { username = cad.username, password = cad.password, firstName = cad.firstName, lastName = cad.lastName, email = cad.email, avatarUrl = defaultUrl }; try { await _accountDao.CreateAccount(account); } catch (Exception e) { throw new CustomException(e.Message, e); } }