/// <param name="queryForProductOrderSummaries">This is injected via the IoC; usually, we 
        /// would simply invoke a query object directly.  But this query requires leveraging the
        /// underlying data-access mechanism directly (e.g., NHibernate) and therefore has an 
        /// interface to avoid having a direct dependency on NHibernate from this project</param>
        public ProductsController(IRepository<Product> productRepository,
            ProductCudTasks productMgmtTasks, IQueryForProductOrderSummaries queryForProductOrderSummaries) {

            _productRepository = productRepository;
            _productMgmtTasks = productMgmtTasks;
            _queryForProductOrderSummaries = queryForProductOrderSummaries;
        }
 /// <param name="queryForProductOrderSummaries">This is injected via the IoC; usually, we
 /// would simply invoke a query object directly.  But this query requires leveraging the
 /// underlying data-access mechanism directly (e.g., NHibernate) and therefore has an
 /// interface to avoid having a direct dependency on NHibernate from this project</param>
 public ProductsController(IRepository <Product> productRepository,
                           ProductCudTasks productMgmtTasks, IQueryForProductOrderSummaries queryForProductOrderSummaries)
 {
     _productRepository             = productRepository;
     _productMgmtTasks              = productMgmtTasks;
     _queryForProductOrderSummaries = queryForProductOrderSummaries;
 }