public override List <StockLevel> Execute(InmemoryModel model) { return(model.GetStockLevelsByProduct(ProductId)); }
public static InmemoryModel BuildAndSeedDemo() { var model = new InmemoryModel(); var rng = new Random(0); for (int i = 1; i <= 1000; i++) { var customer = new Customer() { Id = i, Name = "Customer " + i }; model._customers.Add(i, customer); } for (int i = 1; i <= 1000000; i++) { var product = new Product() { Id = i, Name = "Product " + i, Description = "Description of product " + i, UnitPrice = rng.Next(10, 1000) }; model._products.Add(i, product); } for (int i = 1; i <= 10000; i++) { var warehouse = new Warehouse { Id = i, Location = "Warehouse " + i }; model._warehouses.Add(i, warehouse); } for (int i = 1; i <= 900; i++) { var stockLevels = new SortedDictionary <int, int>(); for (int j = 0; j < 1000; j++) { int randomWarehouse = rng.Next(1, 10000); int level = rng.Next(0, 1200); if (rng.NextDouble() < 0.1) { level = 0; //10% chance out of stock } stockLevels[randomWarehouse] = level; } var product = model._products[i]; foreach (var warehouseId in stockLevels.Keys) { var warehouse = model._warehouses[warehouseId]; product.StockLevels.Add(new StockLevel { Product = product, Warehouse = warehouse, UnitsInStock = stockLevels[warehouseId] }); } } return(model); }
public override List <Product> Execute(InmemoryModel model) { return(model.GetProducts(Skip, Take)); }