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(); }
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(); }