public IPurchaseOrder ResolveSingleItemKitSelection(IPurchaseOrder entity) { var modified = false; foreach (var orderItem in entity.Items) { var kit = m_kitProductRepository.GetKitForOrderItem(entity, orderItem).ToList(); if (!kit.Any()) { continue; } foreach (var kitItem in kit) { var groupItems = kitItem.GroupItems.ToList(); if (kitItem.SelectedItem != null || groupItems.Count != 1) { // Item already selected or it should be chosen by the operator continue; } m_kitProductRepository.SetKitItemSelection(entity, orderItem, groupItems.Single().Id, kitItem.KitItemIndex); modified = true; } } if (!modified) { return(entity); } return(m_orderRepository.GetOrder(entity.Id)); }
public PackingOrderModel SelectKitItem(long orderId, long orderItemId, int kitItemId, int kitItemIndex) { using (var tx = m_database.OpenTransaction()) { var order = m_orderRepository.GetOrder(orderId); if (order == null) { throw new InvalidOperationException("Objednavka nenalezena"); } var item = order.Items.FirstOrDefault(i => i.Id == orderItemId); if (item == null) { throw new InvalidOperationException("Polozka objednavky nenalezena"); } m_kitProductRepository.SetKitItemSelection(order, item, kitItemId, kitItemIndex); var result = MapOrder(order); tx.Commit(); return(result); } }