コード例 #1
0
        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"));
        }
コード例 #2
0
        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));
        }