public List <Product> FindProduct(Product product, Location location) { WareHouse ClosestWarehouse = FindClosestWareHouse(WareHouse); List <Product> ReturnList = new List <Product>() { new Product() { ID = -1, Name = "Apple", Quantity = 25, Location = new Location() { Area = 1, Country = "Russia", Municipality = "esbjerg" } } , new Product() { ID = -2, Name = "Apple", Quantity = 6, Location = new Location() { Area = 2, Country = "Denmark", Municipality = "esbjerg" } } , new Product() { ID = -3, Name = "Apple", Quantity = 25, Location = new Location() { Area = 3, Country = "Russia", Municipality = "esbjerg" } }, }; return(new List <Product>()); }
// the incoming prouct is use as a description of what the customor wants, public List <Product> FindProduct(Product product) { List <Product> CurrentFound = new List <Product>(); int QuantityLeft = product.Quantity; List <WareHouse> noneCheckedWareHouses = new List <WareHouse>(); noneCheckedWareHouses.AddRange(WareHouses); while (QuantityLeft != 0 && noneCheckedWareHouses.Count != 0) { List <WareHouse> ClosestWarehousest = FindClosestWareHouses(noneCheckedWareHouses, product.Location); if (ClosestWarehousest.Count != 0) { //Current Bug is on quantaty foreach (var ClosestWarehouse in ClosestWarehousest) { if (QuantityLeft != 0) //NOTE Maybe use Name insted of ID { noneCheckedWareHouses.Remove(ClosestWarehouse); int ClosestQuantity = ClosestWarehouse.ProductList.Find(x => x.Name == product.Name).Quantity; if (QuantityLeft <= ClosestQuantity) { //example if we need 1 and the ware house have 20 QuantityLeft = 1 ClosestQuantity = 20, will want to remove 1 from ClosestQuantity and remove QuantityLeft value from QuantityLeft and that will allways = 0 so you just as well set it to 0 //adding it to the system Product foundproduct = new Product(); Product foundproductInWareHouse = ClosestWarehouse.ProductList.Find(x => x.Name == product.Name); foundproduct.ID = foundproductInWareHouse.ID; foundproduct.Name = foundproductInWareHouse.Name; foundproduct.Price = foundproductInWareHouse.Price; foundproduct.Location = foundproductInWareHouse.Location; foundproduct.Quantity = QuantityLeft; CurrentFound.Add(foundproduct); //removing the Quantity ClosestWarehouse.ProductList.Find(x => x.Name == product.Name).Quantity -= QuantityLeft; QuantityLeft = 0; } else { //adding it to the system Product foundproduct = new Product(); Product foundproductInWareHouse = ClosestWarehouse.ProductList.Find(x => x.Name == product.Name); foundproduct.ID = foundproductInWareHouse.ID; foundproduct.Name = foundproductInWareHouse.Name; foundproduct.Price = foundproductInWareHouse.Price; foundproduct.Location = foundproductInWareHouse.Location; foundproduct.Quantity = ClosestQuantity; CurrentFound.Add(foundproduct); //removing the Quantity ClosestWarehouse.ProductList.Find(x => x.Name == product.Name).Quantity = 0; QuantityLeft -= ClosestQuantity; }; } } } } // return ReturnList; return(CurrentFound); }
private void AddProductToWareHouse(Product product, WareHouse warehouse) { warehouse.ProductList.Add(product); Location location = new Location(); location.Country = warehouse.country; location.Municipality = warehouse.municipality; product.Location = location; }
private Product AddProduct(int ID, string Name, int Price, int Quantity) { Product NewProduct = new Product(); NewProduct.ID = ID; NewProduct.Name = Name; NewProduct.Price = 5; NewProduct.Quantity = Quantity; //NewProduct.Location = location; ProductList.Add(NewProduct); return(NewProduct); }
public bool RemoveProducts(Product product) { WareHouse ClosestWarehouse = FindClosestWareHouse(WareHouse); return(true); }
public List <Product> ProductList = new List <Product>(); // List Af Product som Kunen vil købe public void Start() { Console.WriteLine("Stating"); TestRun(); Console.WriteLine(WareHouses.Count); while (true) { Console.WriteLine("" + "1 = AddWareHouse\n" + "2 = Clear Console\n" + "3 = FindClosestWareHouse\n" + "4 = AddProduct\n" + "5 = Get List Of Products\n" + "6 = AddProduct to warehouse\n" + ""); string Text = Console.ReadLine(); switch (Text) { case "1": //AddWareHouse Console.WriteLine("You Hae Chossen Add WareHouse"); Console.WriteLine("What County"); string County = Console.ReadLine(); Console.WriteLine("What Municipality"); string Municipality = Console.ReadLine(); int ID = WareHouses.Count + 1; AddWareHouse(ID, County, Municipality); break; case "2": Console.Clear(); break; case "3": Console.WriteLine("use Call Nun To Select With product you want"); TestFunktionShowProducktList(); int productNun = -1; bool productNunCheck = false; while (productNunCheck == false) { if (Int32.TryParse(Console.ReadLine(), out productNun)) { productNunCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } Console.WriteLine("How Many"); int amount = -1; bool amountCheck = false; while (amountCheck == false) { if (Int32.TryParse(Console.ReadLine(), out amount)) { amountCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } Product productLookingFor = new Product(); productLookingFor.ID = ProductList[productNun].ID; productLookingFor.Name = ProductList[productNun].Name; productLookingFor.Quantity = amount; Console.WriteLine("\nWere From"); Location location = new Location() { }; Console.WriteLine("what Country"); location.Country = Console.ReadLine(); Console.WriteLine("what Municipality"); location.Municipality = Console.ReadLine(); productLookingFor.Location = location; List <Product> PL = FindProduct(productLookingFor); foreach (var p in PL) { Console.WriteLine(p.Location.Country + " Name = " + p.Name + " Price = " + p.Price + " Quantity = " + p.Quantity); } break; #region . 4 = AddProduct case "4": Console.WriteLine("What Is its Name"); string Name = Console.ReadLine(); Console.WriteLine("How Many"); int Quantity = -1; bool ValueCheck = false; while (ValueCheck == false) { if (Int32.TryParse(Console.ReadLine(), out Quantity)) { ValueCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } Console.WriteLine("At What Price"); ValueCheck = false; int Price = -1; while (ValueCheck == false) { if (Int32.TryParse(Console.ReadLine(), out Price)) { ValueCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } Console.WriteLine("Adding new Produck To List"); AddProduct(ProductList.Count + 1, "Tomato", Price, Quantity); break; #endregion #region . 5 = Get List Of Products case "5": TestFunktionShowProducktList(); break; #endregion #region . 6 = AddProduct to warehouse case "6": Console.WriteLine("use Call Nun To Select With product you want to use"); TestFunktionShowProducktList(); int productID = -1; bool productIDCheck = false; while (productIDCheck == false) { if (Int32.TryParse(Console.ReadLine(), out productID)) { productIDCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } Console.WriteLine("use Call Nun To Select With WareHouse you want to use"); TestFunktionShowWareHouseList(); int warHouseID = -1; bool warHouseIDCheck = false; while (warHouseIDCheck == false) { if (Int32.TryParse(Console.ReadLine(), out warHouseID)) { warHouseIDCheck = true; } else { Console.WriteLine("String could not be parsed. Plz use numbers"); } } if (ProductList[productID] != null && WareHouses[warHouseID] != null) { AddProductToWareHouse(ProductList[productID], WareHouses[warHouseID]); } break; #endregion default: break; } Console.WriteLine(Text); } }