Exemplo n.º 1
0
        public async Task <IActionResult> ClientRegister(ClientRegisterDto userRegisterDto)
        {
            //var agency = await _agencyRepo.GetHotelWithCode(userRegisterDto.AgencyId);

            //if (agency == null)
            //    return NotFound($"Could not find agency with Id {userRegisterDto.AgencyId}");

            var userToCreate = _mapper.Map <User>(userRegisterDto);

            userToCreate.IsClient   = true;
            userToCreate.UserName   = userRegisterDto.Email;
            userToCreate.Created    = DateTime.UtcNow;
            userToCreate.LastActive = DateTime.UtcNow;

            var result = await _userManager.CreateAsync(userToCreate, userRegisterDto.Password);

            if (result.Succeeded)
            {
                // set a default role
                var roleResult = await _userManager.AddToRolesAsync(userToCreate, new[] { "Agent" });

                var userToReturn = _mapper.Map <UserDto>(userToCreate);

                return(CreatedAtRoute("GetUser",
                                      new { controller = "Users", id = userToCreate.Id }, userToReturn));
            }

            return(BadRequest(result.Errors));
        }
Exemplo n.º 2
0
        public async Task <ActionResult <UserManagerResponse> > RegisterClient([FromBody] ClientRegisterDto clientRegisterDto)
        {
            if (ModelState.IsValid)
            {
                var result = await _ClientService.RegisterClientAsync(clientRegisterDto);

                if (result.IsSuccessful)
                {
                    return(Ok(result));
                }
            }

            return(BadRequest("Register Properties Are Not Valid"));
        }
        public async Task <UserManagerResponse> RegisterClientAsync(ClientRegisterDto model)
        {
            if (model.Password != model.ConfirmPassword)
            {
                return(new UserManagerResponse
                {
                    IsSuccessful = false,
                    Message = "Confirm Password doesn't match the password"
                });
            }

            var IdentityUser = new CustomIdentityUser
            {
                Email     = model.Email,
                UserName  = model.Email,
                FirstName = model.FirstName,
                LastName  = model.LastName
            };

            var result = await _UserManager.CreateAsync(IdentityUser, model.Password);

            if (result.Succeeded)
            {
                var confirmationToken = await _UserManager.GenerateEmailConfirmationTokenAsync(IdentityUser);

                var validWebToken = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(confirmationToken));
                var url           = $"{_Configurations["BaseUrl"]}/api/Auth/ConfirmEmail/?userid={IdentityUser.Id}&token={validWebToken}";
                await SendConfirmationMail(IdentityUser.Email, url);

                return(new UserManagerResponse
                {
                    IsSuccessful = true,
                    Message = "The user Has Been Created Successfully",
                });
            }

            return(new UserManagerResponse
            {
                IsSuccessful = false,
                Message = "User didn't create",
                Errors = result.Errors.Select(e => e.Description)
            });
        }