public async Task <ActionResult <UserAccountDto> > RegisterAgent([FromBody] RegisterAgentDto registerAgentDto, CancellationToken cancellationToken) { var userDto = await _appAuthService.RegisterAgentAsync (registerAgentDto, cancellationToken); return(userDto); }
public async Task <UserAccountDto> RegisterAgentAsync(RegisterAgentDto registerAgentDto, CancellationToken cancellationToken) { registerAgentDto.Email = registerAgentDto.Email.ToLower().Trim(); registerAgentDto.Username = registerAgentDto.Username.ToLower().Trim(); var estate = await CheckIfEstateExistById(registerAgentDto.RealEstateId, cancellationToken); await CheckIfUserIsValid(registerAgentDto.Email, registerAgentDto.Username, cancellationToken); var activationKey = _hasher.CalculateHash(registerAgentDto.Firstname + registerAgentDto.Lastname + registerAgentDto.Email + registerAgentDto.Username); var passwordHash = _passwordService.HashUserPassword(registerAgentDto.Email, registerAgentDto.Password); var user = CreateUser(registerAgentDto, UserGroup.Agent, registerAgentDto.Password, passwordHash, activationKey); _entityService.DbContext.Agent.Add(new Agent { RealEstateId = estate.Id, UserAccountId = user.Id, MetadataJson = "{}" }); _entityService.DbContext.SaveChanges(); return(await AuthenticateAsync(registerAgentDto.Email, registerAgentDto.Password, cancellationToken)); }