Exemplo n.º 1
0
        public async Task <IActionResult> OrderPage()
        {
            var userId = await _cookieHandler.GetClaimFromAuthenticationCookieAsync("UserId");

            var cart = _cartService.GetCartContent();


            var paymentResult = await _clientService.SendRequestToGatewayAsync(ApiGateways.ApiGateway.PAYMENT_CREATE + "?amount=" +
                                                                               _cartService.CalculateTotalPrice().ToString() + "&currency=USD", HttpMethod.Get);

            var payment = await _clientService.ReadResponseAsync <Payment>(paymentResult.Content);

            _session.SetString("payPalUrl", payment.PayPalLink);

            var userResult = await _clientService.SendRequestToGatewayAsync(ApiGateways.ApiGateway.GET_USER + userId, HttpMethod.Get);

            var user = await _clientService.ReadResponseAsync <User>(userResult.Content);

            OrderViewModel vm = new OrderViewModel
            {
                User    = user,
                Payment = payment,
                Cart    = cart
            };

            ViewBag.TotalPrice = _cartService.CalculateTotalPrice();

            return(View(vm));
        }
        public async Task <IActionResult> Update(User user)
        {
            if (ModelState.IsValid)
            {
                var canBeRegistered = await EmailAvailableForRegistrationAsync(user.Email);

                if (canBeRegistered)
                {
                    var loggedInUserId = await _cookieHandler.GetClaimFromAuthenticationCookieAsync("UserId");

                    var response = await _clientService.SendRequestToGatewayAsync(ApiGateways.ApiGateway.USERS_API_BASEURL + loggedInUserId, HttpMethod.Put, user);

                    if (response.IsSuccessStatusCode)
                    {
                        var updatedUser = await _clientService.ReadResponseAsync <User>(response.Content);

                        TempData["UpdateSuccess"] = "success";
                        return(RedirectToAction(nameof(Update)));
                    }
                }
                else
                {
                    ViewBag.EmailTaken = "Email Taken";
                }
            }

            return(View(user));
        }
Exemplo n.º 3
0
        public async Task ValidateJwtTokenStatusAsync()
        {
            var isTokenValid = await _cookieHandler.ValidateJwtTokenSessionExpirationAsync();

            var refreshToken   = _cookieHandler.GetPersistentCookieContent(Cookies.JWT_REFRESH_TOKEN);
            var loggedInUserId = await _cookieHandler.GetClaimFromAuthenticationCookieAsync("UserId");

            if (!isTokenValid && refreshToken != null && loggedInUserId != null)
            {
                await SendRequestForNewTokenAndRefreshToken(Guid.Parse(loggedInUserId));
            }
        }
Exemplo n.º 4
0
        private async Task <Order> ConstructOrderAsync(string paymentId, List <OrderProduct> orderProducts)
        {
            var userId = await _cookieHandler.GetClaimFromAuthenticationCookieAsync("UserId");

            var order = new Order()
            {
                UserId       = Guid.Parse(userId),
                StatusId     = 1,
                TotalPrice   = _cartService.CalculateTotalPrice(),
                PaymentId    = paymentId,
                Date         = DateTime.Now,
                OrderProduct = orderProducts
            };

            return(order);
        }