예제 #1
0
        internal static void PlaceOrder(List <Product> ShoppingCart, Billing BillingInfo, Customer CurrentCustomer, Location CurrentLocation, List <int> Quantities)
        {
            DateTime now = System.DateTime.Now;

            using (var DB = new P0Context())
            {
                Order Order = new Order
                {
                    CustomerID = CurrentCustomer.CustomerID,
                    LocationID = CurrentLocation.LocationID,
                    OrderTime  = now.ToString()
                };
                OrderDAO.AddOrders(Order, DB);
                LocationProductsDAO.LoadLocationProductsList(DB);
                foreach (Product p in ShoppingCart)
                {
                    int           QuantityIndex = ShoppingCart.IndexOf(p);
                    OrderProducts OP            = new OrderProducts
                    {
                        OrderID   = Order.OrderID,
                        ProductID = p.ProductID,
                        Quantity  = Quantities[QuantityIndex]
                    };
                    OrderProductsDAO.AddOrderProducts(OP, DB);
                    LocationProducts LP = DB.LocationProductsList.Single(
                        x => (x.LocationID == CurrentLocation.LocationID && x.ProductID == p.ProductID));
                    LP.Inventory -= OP.Quantity;
                    LocationProductsDAO.UpdateLocationProducts(LP, DB);
                }
            }
        }
        internal static void PlaceOrder(List <ProductInStock> ShoppingCart, Billing BillingInfo, Shipping ShippingInfo, Customer CurrentCustomer, Location CurrentLocation, P1Context _context)
        {
            DateTime now   = System.DateTime.Now;
            var      DB    = _context;
            Order    Order = new Order
            {
                CustomerID = CurrentCustomer.CustomerID,
                LocationID = CurrentLocation.LocationID,
                BillingID  = BillingInfo.BillingID,
                ShippingID = ShippingInfo.ShippingID,
                OrderTime  = now.ToString()
            };

            OrderDAO.AddOrders(Order, DB);
            LocationProductsDAO.LoadLocationProductsList(DB);

            foreach (ProductInStock p in ShoppingCart)
            {
                OrderProducts OP = new OrderProducts
                {
                    OrderID   = Order.OrderID,
                    ProductID = p.ProductID,
                    Quantity  = p.Quantity
                };
                OrderProductsDAO.AddOrderProducts(OP, DB);
                LocationProducts LP = DB.LocationProductsList.Single(
                    x => (x.LocationID == CurrentLocation.LocationID && x.ProductID == p.ProductID));
                LP.Inventory -= OP.Quantity;
                LocationProductsDAO.UpdateLocationProducts(LP, DB);
            }
        }
예제 #3
0
        internal static List <Product> FindProductsOfTypeFromStore(string Type, Location CurrentLocation)
        {
            List <Product> ProductsOfType = new List <Product>();

            using (var DB = new P0Context())
            {
                ProductDAO.LoadProductsList(DB);
                LocationProductsDAO.LoadLocationProductsList(DB);

                foreach (LocationProducts lp in DB.LocationProductsList)
                {
                    if (lp.LocationID == CurrentLocation.LocationID)
                    {
                        foreach (Product p in DB.ProductsList)
                        {
                            if (p.Type + " FROM STORE" == Type && lp.ProductID == p.ProductID)
                            {
                                ProductsOfType.Add(p);
                            }
                        }
                    }
                }
            }
            return(ProductsOfType);
        }
        internal static void UpdateQuantity(Product p, int quanity, Location location, P1Context _context)
        {
            var DB = _context;

            LocationProductsDAO.LoadLocationProductsList(DB);
            foreach (LocationProducts lp in DB.LocationProductsList)
            {
                if (lp.LocationID == location.LocationID && lp.ProductID == p.ProductID)
                {
                    lp.Inventory -= quanity;
                    LocationProductsDAO.UpdateLocationProducts(lp, DB);
                    break;
                }
            }
        }
        internal static int FindNumInStockAtLocation(int ProductID, Location CurrentLocation, P1Context _context)
        {
            int InStock = 0;
            var DB      = _context;

            LocationProductsDAO.LoadLocationProductsList(DB);
            foreach (LocationProducts LP in DB.LocationProductsList)
            {
                if (LP.LocationID == CurrentLocation.LocationID && LP.ProductID == ProductID)
                {
                    InStock = LP.Inventory;
                    break;
                }
            }
            return(InStock);
        }
예제 #6
0
        internal static List <int> FindLocationIDsWithProduct(Product ProductToBuy)
        {
            List <int> LocationIDs = new List <int>();

            using (var DB = new P0Context())
            {
                LocationProductsDAO.LoadLocationProductsList(DB);
                foreach (LocationProducts lp in DB.LocationProductsList)
                {
                    if (ProductToBuy.ProductID == lp.ProductID)
                    {
                        LocationIDs.Add(lp.LocationID);
                    }
                }
            }
            return(LocationIDs);
        }
        /*internal static Location GetOrderLocation(Order o, P1Context _context)
         * {
         *  Location Location;
         *  var DB = _context;
         *  LocationDAO.LoadLocationsList(DB);
         *  Location = DB.LocationList.First(l => l.LocationID == o.LocationID);
         *  return Location;
         * }
         *
         * internal static List<int> FindLocationIDsWithProduct(Product ProductToBuy, P1Context _context)
         * {
         *  List<int> LocationIDs = new List<int>();
         *  var DB = _context;
         *  LocationProductsDAO.LoadLocationProductsList(DB);
         *  foreach (LocationProducts lp in DB.LocationProductsList)
         *  {
         *      if (ProductToBuy.ProductID == lp.ProductID)
         *      {
         *          LocationIDs.Add(lp.LocationID);
         *      }
         *  }
         *  return LocationIDs;
         * }*/

        internal static List <Location> FindLocationsWithProduct(int ProductID, P1Context _context)
        {
            List <int> LocationIDs = new List <int>();
            var        DB          = _context;

            LocationProductsDAO.LoadLocationProductsList(DB);
            foreach (LocationProducts lp in DB.LocationProductsList)
            {
                if (ProductID == lp.ProductID)
                {
                    LocationIDs.Add(lp.LocationID);
                }
            }
            List <Location> StoreOptions = FindLocationsWithProduct(LocationIDs, _context);

            return(StoreOptions);
        }
예제 #8
0
        internal static int FindNumInStockAtLocation(Product ProductToBuy, Location CurrentLocation)
        {
            int InStock = 0;

            using (var DB = new P0Context())
            {
                LocationProductsDAO.LoadLocationProductsList(DB);
                foreach (LocationProducts LP in DB.LocationProductsList)
                {
                    if (LP.LocationID == CurrentLocation.LocationID && LP.ProductID == ProductToBuy.ProductID)
                    {
                        InStock = LP.Inventory;
                        break;
                    }
                }
            }
            return(InStock);
        }