Does not this code in the InventoryProcessor class...
item.ProductIDSource = products.Get(new ProductsKey(item.ProductID));
...replace the result of this code in the Program class?
detail.ProductIDSource = plist
i;
Should not it be one or the other?