예제 #1
0
        public async Task <IActionResult> Register([FromBody] RegisterClientDto request)
        {
            await _mediator.Send(
                new RegisterClient(
                    request.Username,
                    request.Email,
                    request.Password,
                    request.FirstName,
                    request.LastName,
                    request.AddressLine,
                    request.City,
                    request.Zip,
                    request.Country,
                    request.SubscribeToOffers
                    )
                );

            return(NoContent());
        }
예제 #2
0
        public void Register([FromBody] RegisterClientDto clientDto)
        {
            if (!_roleManager.RoleExistsAsync(Roles.Client).Result)
            {
                throw new ApplicationException(ExceptionMessages.RolesHaveNotBeenCreated);
            }

            var user = new ApplicationUser
            {
                UserName = clientDto.Email,
                Email    = clientDto.Email
            };

            var result = _userManager.CreateAsync(user, clientDto.Password).Result;

            if (!result.Succeeded)
            {
                throw new ApplicationException(ExceptionMessages.UsernameAlreadyExists);
            }

            using (var dbContext = new ApplicationDbContext())
            {
                var appUser = _userManager.Users.SingleOrDefault(au => au.Email == clientDto.Email);

                result = _userManager.AddToRoleAsync(appUser, Roles.Client).Result;

                if (!result.Succeeded)
                {
                    throw new ApplicationException(ExceptionMessages.InternalServerError);
                }

                var client = new Clinic_Client
                {
                    UserId = appUser.Id,
                    Logo   = ""
                };

                dbContext.Clinic_Clients.Add(client);
                dbContext.SaveChanges();
            }
        }