public async Task <IActionResult> PostOrderItem([FromBody] OrderItemChangeDto itemDto)
        {
            try
            {
                var item = _mapper.Map <OrderItem>(itemDto);

                var order = await _repository.AddOrderItem(item);

                await _repository.Save();

                return(CreatedAtAction("GetOrder",
                                       new { controller = "orders", id = item.OrderId },
                                       _mapper.Map <OrderDto>(order)));
            }
            catch (DbUpdateException e)
            {
                ModelState.AddModelError("database", e.InnerException != null
                    ? e.InnerException.Message
                    : e.Message);
                return(ValidationProblem());
            }
            catch (Exception e)
            {
                return(_helpers.ErrorResponse(e));
            }
        }
Beispiel #2
0
        public IActionResult OrderCreating(OrderDTO orderDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            Order order = new Order();

            order.CustomerId = _userManager.GetUserId(HttpContext.User);
            order            = _orderItemsRepository.AddOrder(order);
            var orderItem = _mappingProfile.MappingDTOtoOrderItem(orderDto);

            orderItem.OrderId = order.Id;
            orderItem         = _orderItemsRepository.AddOrderItem(orderItem);
            return(RedirectToAction("GetOrder", new { orderId = orderItem.Id }));
        }
        public async Task <IActionResult> CreateOrderItem([FromBody] OrderItemForCreation orderItem)
        {
            var orderItemEntity = _mapper.Map <OrderItem>(orderItem);

            var search = _orderItemsRepository.GetOrderItemAsync(orderItemEntity.Id);

            if (search != null)
            {
                return(BadRequest("Item already exists"));
            }

            _orderItemsRepository.AddOrderItem(orderItemEntity);

            await _orderItemsRepository.SaveChangesAsync();

            await _orderItemsRepository.GetOrderItemAsync(orderItemEntity.Id);

            return(CreatedAtRoute("GetOrderItem",
                                  new { id = orderItemEntity.Id },
                                  orderItemEntity));
        }
Beispiel #4
0
        public void Checkout(string email)
        {
            Guid  orderId = Guid.NewGuid();
            Order o       = new Order();

            o.Id          = orderId;
            o.MemberEmail = email;
            o.OrderDate   = DateTime.UtcNow;
            _repo.AddOrder(o);

            var cartId    = _cartsRepo.GetCartId(email);
            var cartItems = _cartItemsRepo.GetCartItems(cartId).ToList();

            foreach (CartItem cartItem in cartItems)
            {
                OrderItem orderItem = new OrderItem();
                orderItem.OrderId   = orderId;
                orderItem.ProductId = cartItem.ProductId;
                orderItem.Quantity  = cartItem.Quantity;
                _orderItemsRepo.AddOrderItem(orderItem);
                _cartItemsRepo.DeleteCartItem(cartItem);
            }
        }
        public void AddOrderItem(OrderItemViewModel orderItem)
        {
            var newOrderItem = _mapper.Map <OrderItemViewModel, OrderItem>(orderItem);

            _repo.AddOrderItem(newOrderItem);
        }