public IActionResult Pay() { try { List <ProductViewModel> products = GetProducts(); DateTime datePlaced = DateTime.Now; string email = User.Identity.Name; //create order OrderViewModel order = new OrderViewModel(); order.DatePlaced = datePlaced; order.UserEmail = email; order.Id = _ordersService.AddOrder(order); foreach (var item in products) { OrderDetailsViewModel orderDetailsViewModel = new OrderDetailsViewModel(); orderDetailsViewModel.Order = _mapper.Map <Order>(order); orderDetailsViewModel.Product = _mapper.Map <Product>(item); orderDetailsViewModel.Price = item.Price; orderDetailsViewModel.Quantity = item.Quantity; _orderDetailsService.AddOrderDetails(orderDetailsViewModel); } HttpContext.Session.SetString(SessionKeyName, ""); TempData["feedback"] = ("Payment was successful"); _logger.LogInformation("User payed successfully"); } catch (Exception e) { TempData["error"] = ("Error occured while paying! We will look into it!"); _logger.LogError("Error occurred " + e.Message); return(RedirectToAction("Error", "Home")); } return(RedirectToAction("Index")); }
public IActionResult AddingToCart(Guid productId) { var username = User.Identity.Name; Guid orderId = _orderDetailsService.GetOrderId(username); bool orderDetails = _orderDetailsService.AddOrderDetails(orderId, productId); if (orderDetails == false) { TempData["warning"] = "Product was Out of stock!"; return(RedirectToAction("Index", "Products")); } TempData["feedback"] = "Product was added successfully !"; return(RedirectToAction("OrderDetails")); }
public IActionResult checkout(OrderViewModel data, Guid ordid, Guid prodId, string email) { try { email = User.Identity.Name; _ordersService.AddOrder(data, email); _orderDetailsService.AddOrderDetails(ordid, prodId, email); TempData["feedback"] = "Checking out succesful"; //change wherever we are using viewdata to use tempdata return(RedirectToAction("Index")); } catch (Exception) { return(RedirectToAction("Error", "home")); } }
public async Task <IActionResult> OrderNow(List <OrderDTo> orders) { try { var claimsIdentity = _httpContextAccessor.HttpContext.User.Claims; var userId = claimsIdentity.FirstOrDefault(x => x.Type == "UserId").Value; var email = claimsIdentity.FirstOrDefault(x => x.Type == "Email").Value; var statusProduct = _statusCartsService.GetStatusCartsClient(); var orderId = Guid.NewGuid(); Order order = new Order(); order.UserId = Guid.Parse(userId); order.Id = orderId; List <OrderDetails> orderDetails = new List <OrderDetails>(); List <ProductOrder> productOrders = new List <ProductOrder>(); var total = 0; var totalCost = 0f; foreach (var item in orders) { OrderDetails details = new OrderDetails() { Id = new Guid(), OrderId = orderId, ProductId = item.ProductId, Quantity = item.Quantity, TotalCost = item.TotalCost, StatusCartId = statusProduct.Id }; totalCost += item.TotalCost; total += item.Quantity; _orderDetailsService.AddOrderDetails(details); orderDetails.Add(details); } order.TotalQuantity = total; order.TotalCost = totalCost; order.Processed = 0; _orderService.AddOrder(order); _unitOfWork.Commit(); HttpContext.Session.Clear(); _emailSenderService.SendEmail(email, Constants.SubjectOrder, Constants.BodyOrder); Statistics statistics = new Statistics() { Action = (int)Action.Order, ActionName = "Mua hàng", CreatedDate = DateTime.Now, Id = Guid.NewGuid(), ModifyDate = DateTime.Now }; _statisticsService.InsertStatistics(statistics); return(Ok(new Result() { Message = "success", Code = (int)HttpStatusCode.OK, Data = "Đặt hàng thành công", Error = null })); } catch (Exception ex) { _logger.LogError("Đặt hàng thất bại: " + ex); return(Ok(new Result() { Message = "success", Code = (int)HttpStatusCode.OK, Data = null, Error = "Đặt hàng thất bại" })); } }