public async Task <ActionResult> Register([FromBody] CustomerRequest request) { try { var user = new User { Password = request.Password, Source = UserSource.Site, PrimaryService = request.PrimaryService, Firstname = request.FirstName, Lastname = request.LastName, Email = request.Email, PhoneNumber = request.Phone, UserProfile = new UserProfile { Id = Guid.NewGuid(), PrimaryService = request.PrimaryService } }; var existingUser = await _userManager.FindByName(user.Email); if (existingUser != null) { return(BadRequest(new { message = "The user already exists!" })); } var userRole = 0; if (string.IsNullOrWhiteSpace(request.Role)) { userRole = string.IsNullOrWhiteSpace(request.Role) ? (int)RoleType.Customer : (int)RoleType.Admin; } else { userRole = int.Parse(request.Role); } await _authManager.RegisterAsync(user, request.VerifyUrl, userRole); if (userRole == 2) { var registeredUser = await _userManager.FindByName(user.Email); request.UserId = registeredUser.Id; await _authManager.RegisterProfessional(request); } if (request.Services != null) { foreach (var u in request.Services) { await _userManager.AddUserServices(request.UserId, u); } } return(Ok()); } catch (Exception ex) { _logger.LogError(ex.Message, ex); return(BadRequest(ex)); } }