public async Task <IActionResult> Register([FromBody] RegisterModelDto model)
        {
            var userExists = await userManager.FindByNameAsync(model.Username);

            if (userExists != null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new ResponseDto {
                    Status = "Error", Message = "User already exists!"
                }));
            }

            ApplicationUser user = new ApplicationUser()
            {
                Email         = model.Email,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = model.Username
            };
            var result = await userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new ResponseDto {
                    Status = "Error", Message = "User creation failed! Please check user details and try again."
                }));
            }

            return(Ok(new ResponseDto {
                Status = "Success", Message = "User created successfully!"
            }));
        }
示例#2
0
        public async Task RegisterUserAsync(RegisterModelDto registerModel)
        {
            string roleNameUs = "User";

            try
            {
                var userManager = _database.UserManager;
                var user        = await userManager.StoreofUser.FindByNameAsync(registerModel.Email);

                if (user != null)
                {
                    throw new Exception("Such user exist alredy");
                }
                user = new ApplicationUser {
                    UserName = registerModel.Email, Email = registerModel.Email
                };
                IdentityResult result = await userManager.CreateAsync(user, registerModel.Password);

                if (!result.Succeeded)
                {
                    throw new Exception(@"Can't crete user");
                }
                user = await userManager.FindByNameAsync(registerModel.Email);

                if (!userManager.IsInRole(user.Id, roleNameUs))
                {
                    await userManager.AddToRoleAsync(user.Id, roleNameUs);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            return;
        }
示例#3
0
        public async Task <IActionResult> Register([FromBody] RegisterModelDto registerModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new BadRequestError("Password and username required.")));
            }

            var newUser = new User()
            {
                FirstName = registerModel.FirstName.ToLowerInvariant(),
                Email     = registerModel.Email.ToLowerInvariant(),
                Username  = registerModel.Username.ToLowerInvariant(),
            };


            //  Username unique?
            var isUsernameUnique = await _wpbService.UsernameUnique(newUser.Username);

            if (!isUsernameUnique)
            {
                return(BadRequest(new BadRequestError($"Username: {registerModel.Username} is already in use.")));
            }

            //  Email unique?
            var isEmailUnique = await _wpbService.EmailUnique(newUser.Email);

            if (!isEmailUnique)
            {
                return(BadRequest(new BadRequestError($"Email: {registerModel.Email} is already in use.")));
            }

            //  Add user
            await _wpbService.CreateUserAsync(newUser, registerModel.Password);

            //  Build new user token
            var tokenString = GenerateToken(newUser);


            // This is just a regular member so we don't need to create any claims
            //  Add user claim

            /*var newClaim = new UserClaim()
             * {
             *  UserId = newUser.Id,
             *  ClaimName = WpbClaims.ReadTeamData
             * };*/

            return(Ok(
                       new
            {
                Id = newUser.Id.ToString(),
                newUser.Username,
                newUser.FirstName,
                newUser.Email,
                Token = tokenString
            }));
        }
        // [ValidateAntiForgeryToken]
        public async Task Register(RegisterModelDto model)
        {
            var result = await _applicationUserService.Create(model);

            await Response.WriteAsync(JsonConvert.SerializeObject(result,
                                                                  new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }
                                                                  ));
        }
示例#5
0
        public async Task RegisterAsync(RegisterModelDto registerModelDto)
        {
            ValidateEmail(registerModelDto.Email);

            var user = _mapper.Map <User>(registerModelDto);

            AppendRole(user, "user");

            user.PasswordHash = _cryptoProvider.GetHash(registerModelDto.Password);

            await _unitOfWork.Users.CreateAsync(user);
        }
示例#6
0
        public User AddNewUser(RegisterModelDto dto)
        {
            var user = new User
            {
                UserName = dto.Email,
                Email    = dto.Email,
            };

            _context.Users.Add(user);
            _context.SaveChanges();
            return(user);
        }
示例#7
0
        public async Task RegisterAsync(RegisterModelDto registerModelDto)
        {
            ValidateEmail(registerModelDto.Email);

            var user = _mapper.Map <User>(registerModelDto);

            AppendDefaultRole(user);

            user.PasswordHash = _cryptoProvider.GetHash(registerModelDto.Password);

            await _unitOfWork.Users.CreateAsync(user);

            _logger.LogInformation($"User register with email {registerModelDto.Email}");
        }
示例#8
0
        public async Task RegisterAsync_CallsCreate_IfRegisterModelIsValid()
        {
            var registerModel = new RegisterModelDto {
                Email = "email-stub", Password = "******"
            };

            _unitOfWorkMock
            .Setup(unitOfWork => unitOfWork.Users.Find(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(new List <User>().AsQueryable());

            await _sut.RegisterAsync(registerModel);

            _unitOfWorkMock.Verify(work => work.Users.CreateAsync(It.IsAny <User>()), Times.Once);
        }
示例#9
0
        public async Task RegisterAsync_ThrowsEntityExistsException_IfUserWithSpecifiedEmailAlreadyExists()
        {
            var registerModel = new RegisterModelDto {
                Email = "email-stub", Password = "******"
            };
            var users = new List <User> {
                new User()
            };

            _unitOfWorkMock
            .Setup(unitOfWork => unitOfWork.Users.Find(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(users.AsQueryable());

            await Assert.ThrowsAsync <EntityExistsException>(() => _sut.RegisterAsync(registerModel));
        }
        public async Task <IActionResult> Register([FromBody] RegisterModelDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Parametre Hatalı"));
            }

            try
            {
                var user = await _userManager.FindByNameAsync(model.UserName);

                if (user != null)
                {
                    return(BadRequest("Bu kullanıcı zaten var "));
                }
                else
                {
                    user = new ApplicationUser
                    {
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        Email     = model.Email,
                        UserName  = model.UserName
                    };

                    var result = await _userManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        return(Ok(CreateToken(user)));
                    }
                    else
                    {
                        return(BadRequest(result.Errors));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Kayıt Esnasında Exception Hatası Alındı {ex}");
                return(BadRequest($"Yeni kullanıcı kaydı sırasında hata alındı : {ex}"));
            }
        }
        public async Task <IActionResult> Register([FromBody] RegisterModelDto registerModelDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Parametreler hatalı"));
            }
            try
            {
                var user = await _userManager.FindByNameAsync(registerModelDto.UserName);

                if (user != null)
                {
                    return(BadRequest("Bu kullanıcı zaten mevcut"));
                }
                else
                {
                    user = new ApplicationUser
                    {
                        FirstName = registerModelDto.FirstName,
                        LastName  = registerModelDto.LastName,
                        UserName  = registerModelDto.UserName,
                        Email     = registerModelDto.Email
                    };
                    var result = await _userManager.CreateAsync(user, registerModelDto.Password);

                    if (result.Succeeded)
                    {
                        return(Ok(CreateToken(user)));
                    }
                    else
                    {
                        return(BadRequest(result.Errors));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Kayıt esnasında exception hatası alındı:  {ex}");
                return(BadRequest($"Yeni Kullanıcı Kaydı Esnasında  Hata Alındı: {ex}"));
            }
        }
示例#12
0
        public async Task <UserDto> Create(RegisterModelDto model)
        {
            var user = _mapper.Map <RegisterModelDto, ApplicationUser>(model);


            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var resultRole = await _userManager.AddToRoleAsync(user, model.Role);

                if (!resultRole.Succeeded)
                {
                    throw new Exception("Exception added roles!");
                }
            }

            var userDto = _mapper.Map <ApplicationUser, UserDto>(user);

            userDto.Password = user.PasswordHash;
            userDto.Message  = result.Succeeded.ToString();
            return(userDto);
        }
示例#13
0
        public async Task <IHttpActionResult> RegisterAsync([FromBody] RegisterViewModel registerModel)
        {
            if (!ModelState.IsValid)
            {
                return(InternalServerError());
            }
            ;
            RegisterModelDto registerModelDto = new RegisterModelDto()
            {
                Email           = registerModel.Email,
                Password        = registerModel.Password,
                ConfirmPassword = registerModel.ConfirmPassword
            };

            try
            {
                await _accountService.RegisterUserAsync(registerModelDto);
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
            return(Ok());
        }
示例#14
0
        public async Task <IActionResult> Register([FromBody] RegisterModelDto dto)
        {
            var user = await _accountSvc.FindUserAsync(dto.Email);

            SimpleResponseDto respDto = new SimpleResponseDto();

            if (user != null)
            {
                respDto.Success = false;
                respDto.Message = "This email is already taken.";
                return(Ok(respDto));
            }

            user = _mapper.Map <User>(dto);

            string code = await _accountSvc.RegisterEmailConfirmationCodeAsync(user);

            await _notificationService.SendConfirmEmailMailAsync(code, user);

            var newUser = _accountSvc.RegisterUserAsync(user);

            respDto.Success = true;
            return(Ok(respDto));
        }
示例#15
0
        public async Task <UserManagerResponse> Register([FromBody] RegisterModelDto model)
        {
            if (ModelState.IsValid)
            {
                var userCheck = await _userManager.FindByEmailAsync(model.Email);

                if (userCheck == null)
                {
                    var user = new User
                    {
                        Email     = model.Email,
                        UserName  = model.Email,
                        FirstName = model.FirstName,
                        LastName  = model.LastName
                    };
                    var result = await _userManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        var resultRole = _roleManager.RoleExistsAsync("user").Result;
                        if (!resultRole)
                        {
                            var role       = new Role("user");
                            var roleResult = _roleManager.CreateAsync(role).Result;
                            if (!roleResult.Succeeded)
                            {
                                return(new UserManagerResponse
                                {
                                    Message = "Such User Already Exist"
                                });
                            }
                        }
                        await _userManager.AddToRoleAsync(user, "user");

                        await _signInManager.SignInAsync(user, false);

                        var encodedToken = JwtService.GenerateJwt(user, _userManager, _authenticationOptions);
                        return(await JwtService.GenerateJwt(user, _userManager, _authenticationOptions));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                            return(new UserManagerResponse
                            {
                                Message = "Error"
                            });
                        }
                    }
                }
                return(new UserManagerResponse
                {
                    Message = "User With Such Email Already Exist",
                    IsSucces = false
                });
            }

            return(new UserManagerResponse
            {
                Message = "Successfully",
                IsSucces = true
            });
        }