예제 #1
0
        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();
            }
        }