public async Task ImplicitConfirmation(List <ModelResult> numbers, Dictionary <int, string> words) { var message = new Message(); foreach (var number in numbers) { var likelyProduct = _entityRecognizer.GetProducts(words, number).FirstOrDefault(); // If the number can't relate to a product from the menu ask to specify if (likelyProduct == null) { message.Text = $"{number.Resolution.Values.First()} van wat?"; return; } message.Text = $"{message.Text} {number.GetQuantity()} {likelyProduct.ProductName}"; // If number is last in line round up sentence if (numbers.IndexOf(number) == numbers.Count - 1) { message.Text = $"{message.Text} als ik het goed begrijp?"; } // If number is second last in line descriptive addition of the sommation else if (numbers.Count > 1 && numbers.IndexOf(number) == numbers.Count - 2) { message.Text = $"{message.Text} en"; } // Else comma seperate the sommation else { message.Text = $"{message.Text}, "; } await StoreRecievedMessage(message); } }
private async void UpdateBasedOnRecievedNumbers(List <ModelResult> numbers, Dictionary <int, string> words) { var order = await _db.GetCurrentOrder(_orderId); foreach (var number in numbers) { var likelyProducts = _entityRecognizer.GetProducts(words, number); if (likelyProducts.Count > 0) { order.AddStageOrderDetail(number.GetQuantity(), likelyProducts.FirstOrDefault()); } } await _db.SaveChangesAsync(); }