public async Task <IActionResult> CreateAsync(OrderCreateViewModel orderModel) { var currUser = await _userManager.GetUserAsync(User); if (currUser.FirstName != orderModel.User.FirstName || currUser.LastName != orderModel.User.LastName || currUser.Email != orderModel.User.Email || currUser.PhoneNumber != orderModel.User.PhoneNumber) { await _userManager.UpdateAsync(orderModel.User); } DateTime orderDate = DateTime.Now; var order = new Order { OrderDate = orderDate, Paid = false, UserId = currUser.Id, }; _orderRepository.Add(order); _orderRepository.Commit(); int orderId = _orderRepository.GetAll().First(n => n.UserId == currUser.Id && DateTime.Compare(n.OrderDate, orderDate) == 0).Id; var cart = _cartRepository.GetAll().Where(n => n.UserId == currUser.Id); foreach (var product in cart) { var productOrder = new ProductOrder { OrderId = orderId, ProductId = product.ProductId, Amount = product.Amount, }; _productOrderRepository.Add(productOrder); } _productOrderRepository.Commit(); return(RedirectToAction("Index")); }
public void MakeOrder(MakeOrder orderObj) { ProductOrder productOrder; List <ProductOrderItem> productOrderItems; // Add order record. var order = new Order { CustomerId = orderObj.CustomerId, CreatedOn = DateTime.UtcNow }; _orderRepository.Add(order); // Add product order records. foreach (var op in orderObj.OrderedProducts) { productOrder = new ProductOrder { Order = order, ProductId = op.ProductId }; _productOrderRepository.Add(productOrder); // Add product order item records based on the needed count. List <ProductLineItem> availableItems = _orderRepository.GetAvailableItems(op.ProductId, op.Count); productOrderItems = availableItems.Select(a => new ProductOrderItem { ProductLineItemId = a.Id, ProductOrder = productOrder }).ToList(); _orderRepository.AddProductOrderItems(productOrderItems); } // Commit the changes to the database. _unitOfWork.Commit(); }
public void Insert(ProductOrder entity) { _productOrderRepository.Add(entity); }