Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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();
            }
        }