Ejemplo n.º 1
0
        public void Execute(OrderDto request)
        {
            _validator.ValidateAndThrow(request);
            var order = _context.Orders.Find(request.Id);

            if (order.OrderStatus == OrderStatus.Shipped)
            {
                return;
            }

            var product = _context.Products.Find(request.ProductId);

            order.Address = request.Address;


            var orderline = _context.OrderLines.Where(x => x.OrderId == request.Id).First();

            product.Quantity += orderline.Quantity - request.Quantity;

            orderline.Name      = product.Title;
            orderline.Quantity  = request.Quantity;
            orderline.Price     = product.Price;
            orderline.Address   = request.Address;
            orderline.ProductId = product.Id;


            _context.SaveChanges();
        }
Ejemplo n.º 2
0
        public void Execute(int id, CreateOrderDto dto)
        {
            dto.Id = id;

            var order = _context.Orders
                        .Include(x => x.User)
                        .Include(o => o.OrderLines).FirstOrDefault(o => o.Id == id);

            if (order == null)
            {
                throw new EntityNotFoundException(id, typeof(Order));
            }

            _validator.ValidateAndThrow(dto);

            foreach (var or in order.OrderLines)
            {
                var pr    = _context.Products.Find(or.ProductId);
                var stari = order.OrderLines.FirstOrDefault(x => x.ProductId == or.ProductId);
                pr.Quantity += stari.Quantity;
                or.IsActive  = false;
                or.IsDeleted = true;
                or.DeletedAt = DateTime.Now;
            }


            order.Address   = dto.Address;
            order.OrderDate = dto.OrderDate;


            foreach (var item in dto.Items)
            {
                var product = _context.Products.Find(item.ProductId);


                product.Quantity -= item.Quantity;

                order.OrderLines.Add(new OrderLine
                {
                    ProductId = item.ProductId,
                    Quantity  = item.Quantity,
                    Name      = product.Name,
                    Price     = product.Price
                });
            }


            _context.SaveChanges();
        }