public void Execute(AddInventoryTransferNoteLineItemCommand command)
        {
             _log.InfoFormat("Execute {1} - Command Id {0} ", command.CommandId, command.GetType());
             try
             {
                 if (!DocumentExists(command.DocumentId))
                 {
                     _log.InfoFormat("Cannot add line item. Document does not exist. Execute {1} - Command Id {0} ", command.CommandId, command.GetType());
                     return;
                 }

                 if (DocumentLineItemExists(command.CommandId))
                 {
                     _log.InfoFormat("Cannot add line item. Line item already exists. Execute {1} - Command Id {0} ", command.CommandId, command.GetType());
                     return;
                 }

                 tblDocument document = ExistingDocument(command.DocumentId);
                 tblLineItems lineItem = NewLineItem(command.CommandId, command.DocumentId, command.ProductId,
                                                     command.Description, command.Qty, command.LineItemSequenceNo);
                 document.tblLineItems.Add(lineItem);
                 _cokeDataContext.SaveChanges();
             }
             catch (Exception ex)
             {
                 _log.ErrorFormat("Error Execute {1} - Command Id {0} ", command.CommandId, command.GetType().ToString());
                _log.Error("AddInventoryTransferNoteLineItemCommandHandler exception", ex);
                 throw ;
             }
        }
        List<CommandRouteItem> GetAddInventoryTransferNoteLineItemCommandRoutes(AddInventoryTransferNoteLineItemCommand addInventoryTransferNoteLineItemCommand)
        {
            List<CommandRouteItem> commandRouteItems = new List<CommandRouteItem>();
            string serializedCommand = JsonConvert.SerializeObject(addInventoryTransferNoteLineItemCommand);

            List<Guid> ids = GetDestinationIdsFromInventoryTransferNoteId(addInventoryTransferNoteLineItemCommand.DocumentId);

            Guid[] _destinationIds = RemoveSourceCCAppId(ids.ToArray(), addInventoryTransferNoteLineItemCommand);

            foreach (Guid id in _destinationIds)
                commandRouteItems.Add(CreateRouteItem(addInventoryTransferNoteLineItemCommand, "AddInventoryTransferNoteLineItem", id, serializedCommand));
            return commandRouteItems;
        }
 public void Handle(AddInventoryTransferNoteLineItemCommand command)
 {
     // Only adjust inventory when it is a standalone inventory adjustment that is not
     // the result of a dispatched order. Order's manage their own inventory and use the approved
     // quantity as their inventory. The inventory adjusted here is what is available for point-of-sale stuff. 
     if (command.PDCommandId == currentParentGuid.GetValueOrDefault())
     {
         inventoryRepository.AdjustInventoryForProduct(command.ProductId, command.Qty);
     }            
 }