public async Task <ActionResult> Post([FromForm] UserInformation model) { if (ModelState.IsValid) { if (userRegistrationRepository.GetUserByEmail(model.Email)) { bool success = userRegistrationRepository.SaveUserRegistrationInfo(model); if (success) { var user = new StoreUser { UserName = model.UserName, Email = model.Email }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { return(Ok()); } return(BadRequest(ERROR_CREATING_PROFILE)); } } return(BadRequest(USER_EXSITS)); } else { return(BadRequest(ERROR_SAVING)); } }
public async Task <User> CreateByEmail(Guid id, Guid guildId, String email, String password, String name, DateTime?dateOfBirth = null, GamerRank rank = GamerRank.Beginner, GamerStatus status = GamerStatus.New, CancellationToken cancellationToken = default) { var user = await _repository.Get(id, cancellationToken); if (user == null) { user = await _repository.GetUserByEmail(email, guildId, cancellationToken); } if (user != null) { if (user.Id == id && user.Email == email && user.Name == name && user.GuildId == guildId && (dateOfBirth == null || user.DateOfBirth == dateOfBirth)) { return(user); } throw new UserAlreadyExistsException(); } user = new User(id, guildId, name, rank, status, dateOfBirth ?? DateTime.UtcNow, null, email); user.SetPassword(_passwordHasher.GetHash(user.Id, user.Email, password)); return(user); }