public async Task <SignUpViewModel> SignUp(SignUpInputModel signUpInputModel)
        {
            bool   isOng   = signUpInputModel.Document.Length > 11;
            string profile = isOng ? UserProfileEnum.ONG.ToString() : UserProfileEnum.VOLUNTARY.ToString();

            int personId = await _personRepository.AddPerson(new Person(signUpInputModel.Name, signUpInputModel.Phone));

            if (personId > 0)
            {
                if (isOng)
                {
                    await _personRepository.AddLegalPerson(new LegalPerson(signUpInputModel.Document, personId));

                    await _ongRepository.Add(new Ong(null, null, string.Empty, string.Empty, personId));
                }
                else
                {
                    await _personRepository.AddPhysicalPerson(new PhysicalPerson(signUpInputModel.Document, personId));
                }
            }

            int userId = await _userRepository.Add(new User(signUpInputModel.Password, profile, signUpInputModel.Facebook_Unique_id, signUpInputModel.Email, personId));

            return(new SignUpViewModel(userId > 0));
        }
Exemple #2
0
        public BaseResponseModel SignUp(SignUpInputModel inputModel)
        {
            var vm = new AuthResponseModel();

            // Validate request
            var validationState = new ValidationDictionary();

            inputModel.ValidateRequest(validationState);

            var user = new User
            {
                Email = inputModel.Email,
                Role  = Role.Member
            };

            UserService.GenerateUserPassword(user, inputModel.Password);

            if (UserService.ValidateUser(user, validationState))
            {
                UserService.CreateUser(user);

                // Authenticate to create token
                user = UserService.Authenticate(user.Email, inputModel.Password);
                _auth.DoAuth(user.Email, false);

                vm.Success = true;
                vm.Token   = user.AuthToken.Token;
                vm.Expires = user.AuthToken.Expires;
            }

            vm.Errors = validationState.Errors;
            return(vm);
        }
Exemple #3
0
        public void SignUp_Successful_For_Valid_User()
        {
            // Arrange
            var inputModel = new SignUpInputModel
            {
                Email           = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };
            var user = new User()
            {
                Email     = inputModel.Email,
                AuthToken = new AuthToken()
            };
            var userService = new Mock <IUserService>();

            userService.Setup(u => u.Authenticate(It.IsAny <string>(), It.IsAny <string>())).Returns(user);
            userService.Setup(u => u.ValidateUser(It.IsAny <User>(), It.IsAny <IValidationDictionary>())).Returns(true);
            var controller = CreateController(userService.Object);

            // Act
            var result = controller.SignUp(inputModel);

            // Assert
            Assert.IsTrue(result.Success);
        }
Exemple #4
0
        public IActionResult SignUp([FromBody] SignUpInputModel inputModel)
        {
            if (!ModelState.IsValid)
            {
                BadRequest();
            }

            var user = _userService.Add(inputModel);

            if (inputModel.AddOrganization)
            {
                _charityService.AddCharity(new CharityAddEditModel()
                {
                    OwnerId     = user.Id,
                    Name        = inputModel.OrganizationName,
                    Description = inputModel.OrganizationDescription,
                    Category    = inputModel.OrganizationType
                });
            }

            if (user == null)
            {
                BadRequest("Cannot add to db");
            }
            return(Ok());
        }
        public async Task <IActionResult> SignUp([FromBody] SignUpInputModel signUpInputModel)
        {
            var signUpCommand = new SignUpCommand(signUpInputModel);

            var signUpViewModel = await _mediator.Send(signUpCommand);

            return(CreatedAtAction(nameof(GetUserById), new { userId = signUpViewModel.UserId }, signUpViewModel));
        }
Exemple #6
0
        public async Task <IActionResult> SignUp([Bind("UserName,Email,Password,PasswordConfirm,IsAgree")] SignUpInputModel signUpInputModel)
        {
            if (signUpInputModel == null)
            {
                throw new ArgumentNullException(nameof(signUpInputModel));
            }

            if (!ModelState.IsValid)
            {
                return(View(signUpInputModel));
            }

            MangoUser mangoUser = new MangoUser
            {
                UserName = signUpInputModel.UserName,
                Email    = signUpInputModel.Email
            };

            if (await _userManager.FindByNameAsync(mangoUser.UserName) != null)
            {
                ModelState.AddModelError("UserName", "该用户名已被注册");
                return(View(signUpInputModel));
            }

            using (var trans = await _transaction.BeginTransactionAsync())
            {
                try
                {
                    var flag = await _userManager.CreateAsync(mangoUser, signUpInputModel.Password);

                    mangoUser = await _userManager.FindByNameAsync(mangoUser.UserName);

                    var roleFlag = await _userManager.AddToRoleAsync(mangoUser, "USER");

                    if (!flag.Succeeded || !roleFlag.Succeeded)
                    {
                        ViewData["Message"] = "Registration error occurred!";
                        trans.Rollback();
                    }
                    else
                    {
                        ViewData["Message"] = "Registration Successful!";
                        trans.Commit();
                    }
                }
                catch
                {
                    trans.Rollback();
                    throw;
                }
            }

            return(View("ResultPage"));
        }
Exemple #7
0
        public User Add(SignUpInputModel inputModel)
        {
            if (Exists(inputModel.EmailAddress))
            {
                return(null);
            }

            var user = mapper.Map <SignUpInputModel, User>(inputModel);

            context.Users.Add(user);

            context.SaveChanges();

            return(user);
        }
Exemple #8
0
        public void SignUp_Failed_For_Invalid_User()
        {
            // Arrange
            var inputModel = new SignUpInputModel
            {
            };
            var userService = new Mock <IUserService>();
            var controller  = CreateController(userService.Object);

            // Act
            var result = controller.SignUp(inputModel);

            // Assert
            Assert.IsFalse(result.Success);
        }
        public async Task <IActionResult> SignUp(SignUpInputModel model, string button)
        {
            var context = await _interaction.GetAuthorizationContextAsync(model.ReturnUrl);

            if (button != "signup")
            {
                if (context != null)
                {
                    await _interaction.GrantConsentAsync(context, ConsentResponse.Denied);

                    return(Redirect(model.ReturnUrl));
                }
                else
                {
                    return(Redirect("~/"));
                }
            }

            var user = new User {
                UserName = model.Username, Email = model.Username
            };
            var passwordHash = _userManager.PasswordHasher.HashPassword(user, model.Password);

            user.PasswordHash = passwordHash;

            var result = await _userManager.CreateAsync(user);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, isPersistent : false);

                if (_interaction.IsValidReturnUrl(model.ReturnUrl) || Url.IsLocalUrl(model.ReturnUrl))
                {
                    return(Redirect(model.ReturnUrl));
                }

                return(Redirect("~/"));
            }

            var vm = new SignUpViewModel
            {
                ReturnUrl = model.ReturnUrl,
                Username  = model.Username
            };

            return(View(vm));
        }
        public async Task <IActionResult> SignUp([FromBody] SignUpInputModel signUpInputModel)
        {
            if (await _userService.EmailExists(signUpInputModel.Email))
            {
                return(BadRequest("E-mail already registered!"));
            }

            var documentExist = await _userService.DocumentExists(signUpInputModel.Document);

            if (!string.IsNullOrEmpty(documentExist))
            {
                return(BadRequest(documentExist));
            }

            var retorno = await _userService.SignUp(signUpInputModel);

            return(Ok(retorno));
        }
        public void Validate_Successful_With_Valid_Information()
        {
            // Arrange
            var model = new SignUpInputModel
            {
                Email           = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };
            var validationDictionary = new ValidationDictionary();

            // Act

            var result = model.ValidateRequest(validationDictionary);

            // Assert
            Assert.IsTrue(result);
        }
        public void Validate_Fails_Mismatched_Passwords()
        {
            // Arrange
            var model = new SignUpInputModel
            {
                Email           = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };
            var validationDictionary = new ValidationDictionary();

            // Act

            var result = model.ValidateRequest(validationDictionary);

            // Assert
            Assert.IsFalse(result);
        }
 public IActionResult SignUp(SignUpInputModel signUpInputModel)
 {
     return(Created("", signUpInputModel));
 }