Ejemplo n.º 1
0
        public async Task <IActionResult> Register([FromQuery] RegisterUserQuery registerQuery)
        {
            var userQuery = _mapper.Map <RegisterUserQuery, RegisterUserParams>(registerQuery);

            bool result = await _authenticationService.RegisterUserAsync(userQuery);

            if (!result)
            {
                return(BadRequest(new Response <string>("Registration failed.")));
            }

            return(Ok(new Response <string>("Registration completed successfully")));
        }
Ejemplo n.º 2
0
        public async Task <RegisterUserResponse> Register(RegisterUserQuery request)
        {
            var id = Guid.NewGuid();

            var encryptedPassword = EncryptionHelper.GenerateSaltedHash(request.Password, id.ToString());

            var user = new Infrastructure.Database.Entities.User
            {
                CountryId = request.CountryId,
                Created   = _clock.UtcNow(),
                Firstname = request.Firstname,
                Id        = id,
                Surname   = request.Surname,
                Updated   = null,
                Password  = encryptedPassword
            };


            var userRole = new UserRole
            {
                User    = user,
                Role    = await _context.Roles.SingleAsync(x => x.Name == "User"),
                Created = _clock.UtcNow()
            };

            var userEmail = new UserEmail
            {
                Id      = Guid.NewGuid(),
                Email   = request.Email,
                User    = user,
                Created = _clock.UtcNow()
            };

            await _context.Users.AddAsync(user);

            await _context.UserEmails.AddAsync(userEmail);

            await _context.UserRoles.AddAsync(userRole);

            await _context.SaveChangesAsync();

            return(new RegisterUserResponse
            {
                Email = request.Email,
                UserId = id,
                EmailValidationId = userEmail.Id,
                Message = "User registered successfully",
                Success = true,
                ResponseCode = 201
            });
        }
Ejemplo n.º 3
0
        public async Task Registration_Email_RequiresActivation()
        {
            // Arrange
            var newUser = new RegisterUserQuery
            {
                Email     = "*****@*****.**",
                Firstname = "Craig",
                Password  = "******",
                Surname   = "Lister",
                CountryId = 0
            };

            // Act
            var saveResult = await _sut.Register(newUser);

            var result = await _sut.GetUserById(saveResult.UserId);

            // Assert
            result.Data.Email.CurrentIsValidated.Should().BeFalse();
        }
Ejemplo n.º 4
0
        public async Task GetUserById_Should_Return_User()
        {
            // Arrange
            var user = new RegisterUserQuery
            {
                Email     = "*****@*****.**",
                Firstname = "Craig",
                Password  = "******",
                Surname   = "Lister",
                CountryId = 0
            };
            var result = await _sut.Register(user);

            // Act
            var users = await _sut.GetUserById(result.UserId);

            // Assert
            users.Data.Email.Current.Should().Be(user.Email);
            users.Data.Email.CurrentIsValidated.Should().BeFalse();
        }
Ejemplo n.º 5
0
        public async Task  RegisterUser_IsAssignedUserRoleOnly()
        {
            // Arrange
            var newUser = new RegisterUserQuery
            {
                Email     = "*****@*****.**",
                Firstname = "Craig",
                Password  = "******",
                Surname   = "Lister",
                CountryId = 0
            };

            // Act
            var saveResult = await _sut.Register(newUser);

            var result = await _sut.GetUserById(saveResult.UserId);

            // Assert
            result.Data.Roles.Should().ContainSingle();
            result.Data.Roles.FirstOrDefault()?.Name.Should().Be("User");
        }
Ejemplo n.º 6
0
 public Task <RegisterUserResult> Register(RegisterUserQuery query)
 {
     return(Mediator.Send(query));
 }