public async Task <IActionResult> GiveNewPassword(AspNetUser user) { string accessToken = await HttpContext.GetTokenAsync("access_token"); HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); StringContent httpContent = new StringContent(user.ToJson(), Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PutAsync(_configuration["URLAPI"] + $"api/Admin/GiveNewPassword/{user.Id}", httpContent); if (response.StatusCode != HttpStatusCode.OK) { return(BadRequest()); } return(RedirectToAction("Search")); }
public async Task <IActionResult> Edit(string id, [Bind("Id,HairColorId,CorpulenceId,SexeId,HairSizeId,SubscriptionId,SexualityId,ReligionId,AccessFailedCount,ConcurrencyStamp,Email,EmailConfirmed,LockoutEnabled,LockoutEnd,NormalizedEmail,NormalizedUserName,PasswordHash,PhoneNumber,PhoneNumberConfirmed,SecurityStamp,TwoFactorEnabled,UserName,Birthday,Firstname,LastName,QuizCompleted")] AspNetUser aspNetUser) { // Préparation de l'appel à l'API string accessToken = await HttpContext.GetTokenAsync("access_token"); HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Récurération des données et convertion des données dans le bon type string content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Account/getUserInfo"); AspNetUser aspNetUserFromClaim = JsonConvert.DeserializeObject <AspNetUser>(content); if (id != aspNetUser.Id || id != aspNetUserFromClaim.Id) { return(NotFound()); } // Changement des données par rapport à l'utilisateur selon le claim, pour éviter qu'un pirate ne change un autre user aspNetUserFromClaim.Email = aspNetUser.Email; aspNetUserFromClaim.PhoneNumber = aspNetUser.PhoneNumber; aspNetUserFromClaim.Firstname = aspNetUser.Firstname; aspNetUserFromClaim.LastName = aspNetUser.LastName; aspNetUserFromClaim.CorpulenceId = aspNetUser.CorpulenceId; aspNetUserFromClaim.HairColorId = aspNetUser.HairColorId; aspNetUserFromClaim.HairSizeId = aspNetUser.HairSizeId; aspNetUserFromClaim.SexeId = aspNetUser.SexeId; aspNetUserFromClaim.SexualityId = aspNetUser.SexualityId; aspNetUserFromClaim.ReligionId = aspNetUser.ReligionId; aspNetUserFromClaim.AccountCompleted = true; if (ModelState.IsValid) { // Préparation de la requête update à l'API StringContent httpContent = new StringContent(aspNetUserFromClaim.ToJson(), Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PutAsync(_configuration["URLAPI"] + "api/Account/PutUser", httpContent); if (response.StatusCode != HttpStatusCode.NoContent) { return(BadRequest()); } return(RedirectToAction(nameof(Details))); } // En cas d'erreur de modèle, il faut refournir à la vue les données... content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/corpulences"); List <Corpulence> corpulences = JsonConvert.DeserializeObject <List <Corpulence> >(content); ViewData["CorpulenceId"] = new SelectList(corpulences, "CorpulenceId", "CorpulenceName", aspNetUser.CorpulenceId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/hairColor"); List <HairColor> hairColors = JsonConvert.DeserializeObject <List <HairColor> >(content); ViewData["HairColorId"] = new SelectList(hairColors, "HairColorId", "HairColorName", aspNetUser.HairColorId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/hairSize"); List <HairSize> hairSizes = JsonConvert.DeserializeObject <List <HairSize> >(content); ViewData["HairSizeId"] = new SelectList(hairSizes, "HairSizeId", "HairSizeName", aspNetUser.HairSizeId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/sex"); List <Sex> sexs = JsonConvert.DeserializeObject <List <Sex> >(content); ViewData["SexeId"] = new SelectList(sexs, "SexeId", "SexeName", aspNetUser.SexeId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/sexuality"); List <Sexuality> sexualitiess = JsonConvert.DeserializeObject <List <Sexuality> >(content); ViewData["SexualityId"] = new SelectList(sexualitiess, "SexualityId", "SexualityName", aspNetUser.SexualityId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/subscription"); List <Subscription> subscriptions = JsonConvert.DeserializeObject <List <Subscription> >(content); ViewData["SubscriptionId"] = new SelectList(subscriptions, "SubscriptionId", "SubscriptionName", aspNetUser.SubscriptionId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/religions"); List <Religion> religions = JsonConvert.DeserializeObject <List <Religion> >(content); ViewData["ReligionId"] = new SelectList(religions, "ReligionId", "ReligionName", aspNetUser.ReligionId); content = await client.GetStringAsync(_configuration["URLAPI"] + "api/Data/styles"); List <Style> styles = JsonConvert.DeserializeObject <List <Style> >(content); ViewData["StyleId"] = new SelectList(styles, "StyleId", "StyleName", aspNetUser.UserStyles.Single().Style.StyleId); return(View(aspNetUser)); }