public void GetEstimatedDeliveryTime(int productId, out int unitsAvailable, out int estimatedDeliveryTimeInDays)
        {
            OrderBusinessComponent    orderBC    = DependencyInjectionHelper.GetOrderBusinessComponent();
            SupplierBusinessComponent supplierBC = DependencyInjectionHelper.GetSupplierBusinessComponent();
            Product product = rep.GetById(productId);

            int unitsOrdered = orderBC.GetAllOrderDetails()
                               .Where(od => od.Product.ProductId == product.ProductId)
                               .Sum(od => od.QuantityInUnits);

            unitsAvailable = product.UnitsOnStock - unitsOrdered;
            if ((unitsAvailable) < 0)
            {
                unitsAvailable = 0;
            }

            estimatedDeliveryTimeInDays = -1;
            IQueryable <Supplier> defaultSuppliers = supplierBC.GetSuppliersByCriteria(SupplierSearchType.None, null, 0);

            foreach (Supplier supplier in defaultSuppliers)
            {
                if (supplier.ActiveFlag && supplier.PreferredSupplierFlag)
                {
                    Supplier        supplierWithCondition = supplierBC.GetSupplierById(supplier.SupplierId);
                    SupplierProduct supProd = supplierWithCondition.SupplierProduct.FirstOrDefault(c => c.Product.ProductId == productId);
                    if (supProd != null)
                    {
                        estimatedDeliveryTimeInDays = supProd.AverageLeadTimeInDays;
                        return;
                    }
                }
            }
        }
        public void GetEstimatedDeliveryTime(int productId, out int unitsAvailable, out int estimatedDeliveryTimeInDays)
        {
            OrderBusinessComponent orderBC = DependencyInjectionHelper.GetOrderBusinessComponent();
            Product product = this.repository.GetById(productId);

            int unitsOrdered = orderBC.GetAllOrderDetails().Where(od => od.Product.ProductId == product.ProductId).Sum(od => od.QuantityInUnits);

            unitsAvailable = product.UnitsOnStock - unitsOrdered;
            if ((unitsAvailable) < 0)
            {
                unitsAvailable = 0;
            }

            estimatedDeliveryTimeInDays = -1;
            // Todo: Implement the logic to calculate the estimatedDelivertyTimeInDays (see SupplierCondition)
        }