Esempio n. 1
0
        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"));
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        public async Task <ActionResult> LogOut()
        {
            try
            {
                QuizClientOptions.RemoveTokenCookie("token");
                await HttpContext.SignOutAsync();

                return(RedirectToAction("Login", "Account"));
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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));
                }
            }
        }
Esempio n. 6
0
 public QuizController()
 {
     _httpClient = QuizClientOptions.HttpClient();
 }