public async Task <IActionResult> GetUserOrder(int orderId, int userId) { var currentLoggedInUser = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value); if (currentLoggedInUser != userId) { return(Unauthorized()); } var user = await _unitOfWork.UserRepository.GetUser(currentLoggedInUser); var order = user.Orders.SingleOrDefault(o => o.OrderId == orderId); var orderToReturn = new OrderForListDto { CartId = order.CartId, CreatedAt = order.CreatedAt, DeliveredAt = order.DeliveredAt, OrderId = order.OrderId, Item = order.Item, OrderStatus = order.OrderStatus, Products = order.Products, UserId = order.UserId }; if (orderToReturn != null) { return(Ok(orderToReturn)); } return(NotFound()); }
public void AddNewReceipt(OrderForListDto order, IEnumerable <ProductForReceiptCreation> receiptProducts) { // Add new receipt var total = 0; foreach (var item in receiptProducts) { total += item.PriceIn; } var receipt = new Receipt { OrderId = order.Id, CreationTime = DateTime.Now.Date, UserId = Session.CurrentUser.Id, Total = total }; var storedReceipt = _receipRepository.Create(receipt); // Add Receipt product and update product's information (priceIn, priceOut, Number) foreach (var item in receiptProducts) { // 1. Add Receipt product var receiptProduct = Mapper.Map <ReceiptProduct>(item); receiptProduct.ReceiptId = storedReceipt.Id; _receiptProductRepository.Create(receiptProduct); // 2. Update product's information (priceIn, priceOut, Number) _productRepository.UpdateSaleProperty(item.Id, item.Number, item.PriceIn); } // Update corresponding order status to done _orderRepository.UpdateOrderStatusById(order.Id, OrderStatus.Done); }
public async Task <OrderForListDto> AddOrder(OrderForListDto orderForListDto) { try { await _unitOfWork.OrderRepository.AddOrder(orderForListDto).ConfigureAwait(false); _unitOfWork.Commit(); return(orderForListDto); } catch (Exception ex) { Console.WriteLine(ex.Message); _unitOfWork.Rollback(); return(null); } }
public async Task <OrderForListDto> AddOrder(OrderForListDto orderForListDto) { //OrderHeader order = _mapper.Map<OrderHeader>(orderForListDto); try { OrderHeader order = _mapper.Map <OrderForListDto, OrderHeader>(orderForListDto); await _context.OrderHeaders.AddAsync(order).ConfigureAwait(false); return(orderForListDto); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
public async Task <IActionResult> PostOrders(OrderForListDto orderForListDto) { var order = await _orderManager.AddOrder(orderForListDto).ConfigureAwait(false); return(Ok(order)); }