コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        public async Task <IActionResult> PostOrders(OrderForListDto orderForListDto)
        {
            var order = await _orderManager.AddOrder(orderForListDto).ConfigureAwait(false);

            return(Ok(order));
        }