public async Task <IActionResult> Register([FromBody] RegiserViewModel data)
        {
            if (userRepository.DoesUsernameExist(data.Username))
            {
                return(BadRequest("Sorry this username has already been used"));
            }

            if (userRepository.DoesEmailExist(data.Email))
            {
                return(BadRequest("Sorry this email address has already been used"));
            }

            var result = await userRepository.Create(data.Username, data.Email, data.Password);

            if (result == null)
            {
                logger.Log(LogLevel.Error, "User: "******" hasn't been registered");
                return(BadRequest("Sorry you can't be registered at the moment"));
            }

            var emailResult = await email.SendCofirmationEmail(result.Username,
                                                               result.Email,
                                                               result.EmailConfirmationToken);

            if (emailResult != HttpStatusCode.OK)
            {
                logger.Log(LogLevel.Error, "User: "******"registration email hasn't been sent");
            }

            return(Created("api/v1/users/register", "You've been registered"));
        }
Beispiel #2
0
 public Arrangement(IEmail email, ILogger <UsersController> logger, RegiserViewModel user, IUserRepository userRepository)
 {
     User           = user;
     Email          = email;
     Logger         = logger;
     UserRepository = userRepository;
     SUT            = new UsersController(Email, Logger, UserRepository);
 }
Beispiel #3
0
            public ArrangementBuilder WithUser()
            {
                user = new RegiserViewModel()
                {
                    Username = username,
                    Email    = email,
                    Password = password
                };

                return(this);
            }