public async Task <OrderCreatedViewModel> CreateOrder(CheckOutInfoInput checkOutInfoInput) { var basket = await _basketService.Get(); var paymentInfoInput = new PaymentInfoInput() { CardName = checkOutInfoInput.CardName, CardNumber = checkOutInfoInput.CardNumber, Expiration = checkOutInfoInput.Expiration, CVV = checkOutInfoInput.CVV, TotalPrice = basket.TotalPrice }; var responsePayment = await _paymentService.ReceivePayment(paymentInfoInput); if (!responsePayment) { return(new OrderCreatedViewModel() { Error = "Ödeme alınamadı.", IsSuccessful = false }); } var orderCreateInput = new OrderCreateInput() { BuyerId = _sharedIdentityService.GetUserId, Address = new AddressCreateInput { Province = checkOutInfoInput.Province, District = checkOutInfoInput.District, Street = checkOutInfoInput.Street, Line = checkOutInfoInput.Line, ZipCode = checkOutInfoInput.ZipCode }, }; basket.BasketItems.ForEach(x => { var orderItem = new OrderItemCreateInput { ProductId = x.CourseId, Price = x.GetCurrentPrice, PictureUrl = "", ProductName = x.CourseName }; orderCreateInput.OrderItems.Add(orderItem); }); var response = await _httpClient.PostAsJsonAsync <OrderCreateInput>("orders", orderCreateInput); if (!response.IsSuccessStatusCode) { return(new OrderCreatedViewModel() { Error = "Sipariş oluşturulamadı", IsSuccessful = false }); } var orderCreatedViewModel = await response.Content.ReadFromJsonAsync <Response <OrderCreatedViewModel> >(); orderCreatedViewModel.Data.IsSuccessful = true; await _basketService.Delete(); return(orderCreatedViewModel.Data); }
public async Task <OrderSuspendViewModel> SuspendOrder(CheckOutInfoInput checkOutInfoInput) { var basket = await _basketService.Get(); var orderCreateInput = new OrderCreateInput() { BuyerId = _sharedIdentityService.GetUserId, Address = new AddressCreateInput { Province = checkOutInfoInput.Province, District = checkOutInfoInput.District, Street = checkOutInfoInput.Street, Line = checkOutInfoInput.Line, ZipCode = checkOutInfoInput.ZipCode }, }; basket.BasketItems.ForEach(x => { var orderItem = new OrderItemCreateInput { ProductId = x.CourseId, Price = x.GetCurrentPrice, PictureUrl = "", ProductName = x.CourseName }; orderCreateInput.OrderItems.Add(orderItem); }); var paymentInfoInput = new PaymentInfoInput() { CardName = checkOutInfoInput.CardName, CardNumber = checkOutInfoInput.CardNumber, Expiration = checkOutInfoInput.Expiration, CVV = checkOutInfoInput.CVV, TotalPrice = basket.TotalPrice, Order = orderCreateInput }; var responsePayment = await _paymentService.ReceivePayment(paymentInfoInput); if (!responsePayment) { return(new OrderSuspendViewModel() { Error = "Ödeme alınamadı.", IsSuccessful = false }); } await _basketService.Delete(); return(new OrderSuspendViewModel() { IsSuccessful = true }); }
public async Task <IActionResult> Checkout(CheckOutInfoInput checkOutInfoInput) { // 1.yol senkron iletişim //var orderStatus = await _orderService.CreateOrder(checkOutInfoInput); // 2.yol asenkron iletişim var orderSuspend = await _orderService.SuspendOrder(checkOutInfoInput); if (!orderSuspend.IsSuccessful) { var basket = await _basketService.Get(); ViewBag.Basket = basket; ViewBag.Error = orderSuspend.Error; return(View()); } // 1.yol senkron iletişim //return RedirectToAction(nameof(SuccessfulCheckout), new { orderId = orderSuspend.OrderId }); // 2.yol asenkron iletişim return(RedirectToAction(nameof(SuccessfulCheckout), new { orderId = new Random().Next(1, 1000) })); }