예제 #1
0
        public IActionResult Update([FromBody] UpdateUserRequestViewModel query, TokenModel tokenModel)
        {
            var updateDto = Mapper.Map <UpdateUserDto>(query);

            _userService.Update(updateDto);
            return(Ok(new ResponseViewModel()));
        }
예제 #2
0
        public async Task <ActionResult> Profile(UserViewModel user)
        {
            TokenViewModel _token = HttpContext.Session.Get <TokenViewModel>(Constant.TOKEN);

            if (_token != null)
            {
                using (var client = new HttpClient())
                {
                    // TODO: Add insert logic here
                    client.BaseAddress = new Uri("https://cocshopwebapi20190925023900.azurewebsites.net/");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Add("Authorization", $"Bearer {_token.Access_token}");
                    UpdateUserRequestViewModel updateUserRequestViewModel = new UpdateUserRequestViewModel()
                    {
                        AvatarPath = user.AvatarPath,
                        FullName   = user.FullName,
                        Gender     = user.Gender,
                        Email      = user.Email,
                        Birthday   = user.Birthday.Value.ToString("yyyyMMdd")
                    };
                    HttpResponseMessage response = await client.PutAsJsonAsync("api/Auth/UpdateInfo", updateUserRequestViewModel);

                    var jsonString = await response.Content.ReadAsStringAsync();

                    var body = JsonConvert.DeserializeObject <BaseViewModel <UserViewModel> >(jsonString);
                    user.Genders = GetAllGender();
                    if (response.IsSuccessStatusCode)
                    {
                        client.DefaultRequestHeaders.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {_token.Access_token}");
                        response = await client.GetAsync("api/Auth/GetToken");

                        jsonString = await response.Content.ReadAsStringAsync();

                        var token = JsonConvert.DeserializeObject <BaseViewModel <TokenViewModel> >(jsonString);
                        if (response.IsSuccessStatusCode)
                        {
                            if (token.Data.Roles.Any(_ => _.ToUpper().Contains(Role.Admin.ToUpper())))
                            {
                                HttpContext.Session.Set <TokenViewModel>(Constant.TOKEN, token.Data);
                            }
                            else
                            {
                                HttpContext.Session.Clear();
                                return(RedirectToAction("Login", "Auth"));
                            }
                        }
                        else
                        {
                            ViewBag.Error = token.Description;
                            return(View(user));
                        }
                        ViewBag.Success = "Update profile successfully";
                        return(View(user));
                    }
                    else
                    {
                        ViewBag.Error = body.Description;
                        return(View(user));
                    }
                }
            }
            return(RedirectToAction("Login", "Auth"));
        }