private Order TranslateFromOrdersRowToOrderEntityWithDetails(OrdersManagementDataSet.OrdersRow ordersRow) { OrdersManagementDataSet.OrderDetailsRow[] detailRows = ordersRow.GetOrderDetailsRows(); Order order = new Order(); TranslateFromOrdersRowToOrderEntity(ordersRow, order); order.Details = new List <OrderDetail>(detailRows.Length); foreach (OrdersManagementDataSet.OrderDetailsRow detailRow in detailRows) { Product product = _productService.GetProductById(detailRow.ProductId); OrderDetail detail = new OrderDetail(detailRow.OrderId, detailRow.ProductId, detailRow.Quantity, product.UnitPrice.Value); order.Details.Add(detail); } return(order); }
public void DeleteOrder(int orderId) { OrdersManagementDataSet.OrdersRow ordersRow = repository.Orders.FindByOrderId(orderId); if (ordersRow == null) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.OrderIdNotExistsInRepository, orderId)); } if (ordersRow.OrderStatus != (int)OrderStatusEnum.Draft) { throw new InvalidOperationException(Resources.OrderStatusInvalidForDeleteOrder); } OrdersRepository.Services.OrdersManagementDataSet.OrderDetailsRow[] details = ordersRow.GetOrderDetailsRows(); foreach (OrdersRepository.Services.OrdersManagementDataSet.OrderDetailsRow detail in details) { repository.OrderDetails.RemoveOrderDetailsRow(detail); } repository.Orders.RemoveOrdersRow(ordersRow); }