public async Task <IActionResult> Post(RegisterHelper.RegisterData data)
        {
            var registerHelper = new RegisterHelper();
            var emailHelper    = new EmailHelper();

            var result = await registerHelper.RegisterUser(data);

            if (result != DuplicateEmail && result != RegistrationError)
            {
                var userInfo = new UserInfo
                {
                    FirstName = data.FirstName,
                    LastName  = data.LastName,
                    Email     = data.Email
                };
                emailHelper.SendRegistrationEmail(userInfo, data.BaseUrl);
            }

            return(result switch
            {
                DuplicateEmail => BadRequest("User with that email already exists."),
                RegistrationError => StatusCode(500, "An error occurred while trying to register. Please try again later."),
                _ => Ok()
            });
示例#2
0
        public async Task When_registering_new_user_and_error_occurs()
        {
            var mockUserRepository = new Mock <IUserRepository>();

            mockUserRepository.Setup(x => x.InsertUserAsync(
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>()))
            .ReturnsAsync(0);

            var registerHelper = new RegisterHelper(mockUserRepository.Object);

            var registerData = new RegisterHelper.RegisterData
            {
                BaseUrl   = "baseurl",
                Email     = "*****@*****.**",
                FirstName = "First Name",
                LastName  = "Last Name"
            };

            var result = await registerHelper.RegisterUser(registerData);

            Assert.That(result, Is.EqualTo(0));
        }