public async Task <IActionResult> CreateUser([FromBody] UserProfileRequestInfo userProfileRequestInfo) { if (!ModelState.IsValid) { return(BadRequest()); } if (AppInfoModel.Current.IsAuthADB2C_elseDev_TestJWT) { return(this.ApiErrorMessage404NotFound("")); } var existingUserProfiles = await _bl.FindUserProfiles_byEmailAsync(userProfileRequestInfo.Email, true); if (existingUserProfiles == null || existingUserProfiles.Count == 0) { var newUserProfile = await _bl.CreateUserAsync(userProfileRequestInfo.Email, Guid.NewGuid().ToString("N").ToUpper(), true, userProfileRequestInfo.Email.ToLower(), userProfileRequestInfo.Email.ToUpper(), null); return(Created("me", "")); } else { return(this.ApiErrorMessage404NotFound($"Unable to create user, '{userProfileRequestInfo.Email}' already exists.")); } }
/// <summary> /// Create and Update a new userProfile and return the AuthToken that can be used for subsequent web api calls for that userProfile /// The passed in http client will be updated with relevant AuthToken (same as being returned) /// </summary> /// <param name="client"></param> /// <param name="callerMemberName"></param> /// <param name="assemblyFilePath"></param> /// <returns></returns> public async Task <string> CreateDevUserProfile(HttpClient client, [CallerMemberName] string callerMemberName = null, [CallerFilePath] string assemblyFilePath = null) { //Add clientKey token to header BaseWebApiTest.SetAuthToken(client, ClientKey, false); //Create Dev user var newEmail = $"Test-{assemblyFilePath.ExGetFileNameFromAssemblyPath()}.{callerMemberName}@lifecouple.net"; var userProfileRequestInfo = new UserProfileRequestInfo { Email = newEmail }; var postCreateUserResponse = await client.PostAsync($"api/userprofiles/devuser", BaseWebApiTest.GetJsonContent(userProfileRequestInfo)); postCreateUserResponse.EnsureSuccessStatusCode(); //Create Token var tokenRequestInfo = new TokenRequestInfo { Email = newEmail, Password = newEmail.Split('@')[0] + "@" }; var postResponse = await client.PostAsync($"api/tokens", BaseWebApiTest.GetJsonContent(tokenRequestInfo)); postResponse.EnsureSuccessStatusCode(); var tokenResponseInfo = BaseWebApiTest.Deserialize <TokenResponseInfo>(await postResponse.Content.ReadAsStringAsync()); //Add token to header BaseWebApiTest.SetAuthToken(client, tokenResponseInfo.Token, true); // Set User profile var reqPayload = new UserProfileRegAboutYouRequestInfo { DateOfBirth = DateTime.Now.AddYears(-20), FirstName = "Tester", LastName = "Testlastname", Gender = "m", MobilePhone = "7605006125", NotificationOption = "True" }; postResponse = await client.PutAsync(ApiEndpoints.userprofiles_me_registration_aboutyou, BaseWebApiTest.GetJsonContent(reqPayload)); postResponse.EnsureSuccessStatusCode(); return(tokenResponseInfo.Token); }