/// <summary> /// Initialize restaurants start-up stock /// </summary> /// <param name="date">supplyDate</param> public void InitializeStock(DateTime date) { //Get all mappings and expected stock amounts var restaurantProductMappings = _supplyService.GetRestaurantProductMappings(new GetRestaurantProductMappingRequest()).RestaurantProductMappings; var mappingCount = restaurantProductMappings.Count; //Give order Parallel.ForEach(restaurantProductMappings, mapping => { //Get var responsibleStaff = GetResponsibleStaff(mapping.RestaurantID); if (responsibleStaff == null) { //LOG return; } //order the initialize products var orderId = _supplyService.GiveOrder(BuildGiveOrderRequest(mapping.RestaurantID, responsibleStaff.ID, mapping.ProductID, mapping.ExpectedStockAmount, date)).OrderID; //Given orders are provided by supplier. _supplyService.Provide(new ProvideProductOrderRequest { OrderID = orderId, UnitsInStock = 0, ExpirationDate = date.AddDays(RandomHelper.RandomInteger(Constants.ProductExpirationDayRange.Min, Constants.ProductExpirationDayRange.Max)), ReceivedDateTime = date }); }); }