public async Task <ActionResult> DeleteQuiz(int id) { var getQuizPath = "quiz/get-quiz"; var getQuizRequest = _httpClient.GetAsync($"{getQuizPath}/{id}"); var getQuizConent = await getQuizRequest.Result.Content.ReadAsStringAsync(); var getQuizResult = JsonConvert.DeserializeObject <DataResult <QuizDto> >(getQuizConent); if (getQuizResult.Data != null && getQuizResult.Successeded) { var requestPath = "quiz/delete-quiz"; var content = QuizClientOptions.StringContent(getQuizResult.Data); var request = await _httpClient.PostAsync($"{requestPath}", content); var result = await request.Content.ReadAsStringAsync(); var response = JsonConvert.DeserializeObject <DataResult <QuizDto> >(result); if (response.Successeded && response.Data != null) { return(RedirectToAction("GetQuizList", "Quiz")); } else { return(View("Error")); } } else { return(View("Error")); } }
public async Task <ActionResult> Login(LoginDto loginDto) { try { var requestPath = "account/access-token"; var content = QuizClientOptions.StringContent(loginDto); var request = _httpClient.PostAsync(requestPath, content).Result; var response = await request.Content.ReadAsStringAsync(); var token = JsonConvert.DeserializeObject <DataResult <AccessTokenDto> >(response); if (token.Successeded && token.Data.Token != null) { var claims = new List <Claim> { new Claim(ClaimTypes.Name, loginDto.Email), }; var identity = new ClaimsIdentity(claims, "login"); var principal = new ClaimsPrincipal(identity); await HttpContext.SignInAsync(principal); QuizClientOptions.SetTokenCookie(token.Data); return(RedirectToAction("Index", "Home")); } return(View(loginDto)); } catch (Exception exception) { throw new Exception(exception.Message); } }
public async Task <ActionResult> LogOut() { try { QuizClientOptions.RemoveTokenCookie("token"); await HttpContext.SignOutAsync(); return(RedirectToAction("Login", "Account")); } catch (Exception exception) { throw new Exception(exception.Message); } }
public async Task <ActionResult> Register(RegisterDto registerDto) { try { var requestPath = "user/add-user"; var content = QuizClientOptions.StringContent(registerDto); var request = _httpClient.PostAsync(requestPath, content).Result; var response = await request.Content.ReadAsStringAsync(); return(RedirectToAction("Login", "Account")); } catch (Exception exception) { throw new Exception(exception.Message); } }
public ActionResult AddNewQuiz(QuizDto quizDto) { if (!ModelState.IsValid) { return(View(quizDto)); } else { var requestPath = "quiz/add-quiz"; var content = QuizClientOptions.StringContent(quizDto); var request = _httpClient.PostAsync(requestPath, content); var response = request.Result.Content.ReadAsStringAsync(); var entity = JsonConvert.DeserializeObject <DataResult <QuizDto> >(response.Result); if (entity.Data != null && entity.Successeded) { return(RedirectToAction("AddNewQuiz", "Quiz")); } else { return(View(quizDto)); } } }
public QuizController() { _httpClient = QuizClientOptions.HttpClient(); }