private async Task SendReceiptAsync(ITurnContext context, PizzaOrderState state) { var items = GetReceiptItems(state.CurrentOrder); var total = items.Sum(item => double.Parse(item.Price)); //Step 21 - Create and send a new ReceiptCard detailing the customer's order. var msg = context.Activity.CreateReply(); msg.Attachments = new[] { new ReceiptCard() { Title = $"Pizza Order - {state.PreferredAddress}", Facts = new[] { new Fact() { Key = "Address", Value = state.PreferredAddress } }, Total = $"${total.ToString("N2")}", Items = items }.ToAttachment() }; await context.SendActivityAsync(msg); }
private Attachment PreviewOrder(PizzaOrderState state) { string vegTops = ""; string nonVegTops = ""; float price = 0; if (state.IsSpecialPizza == false) { if (state.VegTops != null) { foreach (var item in state.VegTops) { vegTops += $"{item}, "; price += 30; } } if (state.NonVegTops != null) { foreach (var item in state.NonVegTops) { nonVegTops += $"{item}, "; price += 50; } } state.Price += price; if (state.Size == "small") { price += 150; } else if (state.Size == "medium") { price += 250; } else { price += 350; } } var adaptiveCard = File.ReadAllText($@"{configuration.GetValue<string>("PizzaOrderDialog:PreviewOrderAttachment")}"); adaptiveCard = adaptiveCard.Replace("PIZZAIMAGE_VALUE", state.ImageURL); adaptiveCard = adaptiveCard.Replace("BASE_VALUE", state.Base.Trim()); adaptiveCard = adaptiveCard.Replace("PIZZANAME_VALUE", state.PizzaName?.Trim()); adaptiveCard = adaptiveCard.Replace("PRICE_VALUE", (state.Price).ToString()); adaptiveCard = adaptiveCard.Replace("TOPPINGS_VALUE", $"{vegTops.Trim()} {nonVegTops.Trim()}"); adaptiveCard = adaptiveCard.Replace("CHEESE_VALUE", state.Cheese.Trim()); adaptiveCard = adaptiveCard.Replace("SAUCE_VALUE", state.Sauce.Trim()); adaptiveCard = adaptiveCard.Replace("LOCATION_VALUE", state.Location.Trim()); adaptiveCard = adaptiveCard.Replace("TIME_VALUE", $"{state.DeliveryTime.Value.ToShortDateString()}, {state.DeliveryTime.Value.ToShortTimeString()}"); //adaptiveCard = adaptiveCard.Replace("TODAYDATE_VALUE", $"{DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Date}"); var attachment = new Attachment { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(adaptiveCard), }; return(attachment); }
public int Add(PizzaOrderState pizzaOrderState, long?phoneNumber) { var number = Convert.ToInt64(phoneNumber); DataTable dt = new DataTable(); try { connection.Open(); SqlCommand cmd = new SqlCommand( $"insert into pizzaorders(pizzaname,size,cheese,sauce,Address,time,vegTops,nonVegTops,base,price,phoneNumber)" + $"values('{pizzaOrderState.PizzaName}','{pizzaOrderState.Size}','{pizzaOrderState.Cheese}','{pizzaOrderState.Sauce}','{pizzaOrderState.Location}','{pizzaOrderState.DeliveryTime}','{string.Join(", ",pizzaOrderState.VegTops)}','{string.Join(", ", pizzaOrderState.NonVegTops)}','{pizzaOrderState.Base}','{(int)pizzaOrderState.Price}','{number}'); SELECT SCOPE_IDENTITY()", connection); return(Convert.ToInt32(cmd.ExecuteScalar())); //return 0; } catch (Exception ex) { return(0); } finally { connection.Close(); } }