public ViewProductViewModel(int productNumber, int supplierNumber, int quantityRequested, int orderNumber = 0) { // Validate if (productNumber == 0 || supplierNumber == 0 || quantityRequested < 1) { InitializeDefault(); } using (FreeMarketEntities db = new FreeMarketEntities()) { decimal minValue = db.ProductSuppliers .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber) .Min(c => c.PricePerUnit); // Validate ProductSupplier productSupplierTemp = db.ProductSuppliers .Where(c => c.ProductNumber == productNumber && c.SupplierNumber == supplierNumber && c.PricePerUnit == minValue) .FirstOrDefault(); if (productSupplierTemp == null) { InitializeDefault(); return; } Quantity = quantityRequested; ProductNumber = productNumber; SupplierNumber = supplierNumber; ProductCustodian custodian = ShoppingCart.GetStockAvailable(productNumber, supplierNumber, quantityRequested, productSupplierTemp.SizeType); if (custodian != null) { CannotDeliver = false; CustodianQuantityOnHand = custodian.QuantityOnHand; CustodianNumber = custodian.CustodianNumber; } else { CannotDeliver = true; CustodianQuantityOnHand = 0; CustodianNumber = 0; } SetInstances(productNumber, supplierNumber); ReviewPageSize = 4; ProductSizes = db.GetProductSizes(productNumber, supplierNumber) .Select(c => new SelectListItem { Text = c.Description, Value = c.SizeId.ToString(), Selected = productSupplierTemp.SizeType == c.SizeId ? true : false }) .ToList(); } }