コード例 #1
0
ファイル: ToDoSkillDialog.cs プロジェクト: wangzhizhen/AI
        protected Attachment ToAdaptiveCardForTaskAddedFlow(
            List <TaskItem> todos,
            string taskContent,
            int allTasksCount,
            string listType)
        {
            var response = ResponseManager.GetResponseTemplate(AddToDoResponses.AfterTaskAdded);
            var toDoCard = new AdaptiveCard();

            toDoCard.Speak = ResponseManager.Format(response.Reply.Speak, new StringDictionary()
            {
                { "taskContent", taskContent }, { "listType", listType }
            });

            var body = new List <AdaptiveElement>();

            response = ResponseManager.GetResponseTemplate(ToDoSharedResponses.CardSummaryMessage);
            var showText = ResponseManager.Format(response.Reply.Text, new StringDictionary()
            {
                { "taskCount", allTasksCount.ToString() }, { "listType", listType }
            });
            var textBlock = new AdaptiveTextBlock
            {
                Text = showText,
            };

            body.Add(textBlock);

            var container = new AdaptiveContainer();

            foreach (var todo in todos)
            {
                var columnSet = new AdaptiveColumnSet();

                var icon = new AdaptiveImage
                {
                    UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource
                };
                var iconColumn = new AdaptiveColumn
                {
                    Width = "auto"
                };
                iconColumn.Items.Add(icon);
                columnSet.Columns.Add(iconColumn);

                var content       = new AdaptiveTextBlock(todo.Topic);
                var contentColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                contentColumn.Items.Add(content);
                columnSet.Columns.Add(contentColumn);

                container.Items.Add(columnSet);
            }

            body.Add(container);
            toDoCard.Body = body;

            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = toDoCard,
            };

            return(attachment);
        }
コード例 #2
0
ファイル: ToDoSkillDialog.cs プロジェクト: wangzhizhen/AI
        protected Attachment ToAdaptiveCardForReadMore(
            List <TaskItem> todos,
            int startIndexOfTasksToBeRead,
            int toBeReadTasksCount,
            int allTasksCount,
            string listType)
        {
            var toDoCard = new AdaptiveCard();
            var response = new ResponseTemplate();

            if (toBeReadTasksCount == 1)
            {
                response       = ResponseManager.GetResponseTemplate(ShowToDoResponses.NextOneTask);
                toDoCard.Speak = response.Reply.Speak + " ";
            }
            else if (toBeReadTasksCount == 2)
            {
                response        = ResponseManager.GetResponseTemplate(ShowToDoResponses.NextTwoTasks);
                toDoCard.Speak += response.Reply.Speak + " ";
            }
            else
            {
                response        = ResponseManager.GetResponseTemplate(ShowToDoResponses.NextThreeOrMoreTask);
                toDoCard.Speak += ResponseManager.Format(response.Reply.Speak, new StringDictionary()
                {
                    { "taskCount", toBeReadTasksCount.ToString() }
                }) + " ";
            }

            var body = new List <AdaptiveElement>();

            response = ResponseManager.GetResponseTemplate(ToDoSharedResponses.CardSummaryMessage);
            var showText = ResponseManager.Format(response.Reply.Text, new StringDictionary()
            {
                { "taskCount", allTasksCount.ToString() }, { "listType", listType }
            });
            var textBlock = new AdaptiveTextBlock
            {
                Text = showText,
            };

            body.Add(textBlock);

            var container = new AdaptiveContainer();
            int index     = 0;

            foreach (var todo in todos)
            {
                var columnSet = new AdaptiveColumnSet();

                var icon = new AdaptiveImage
                {
                    UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource
                };
                var iconColumn = new AdaptiveColumn
                {
                    Width = "auto"
                };
                iconColumn.Items.Add(icon);
                columnSet.Columns.Add(iconColumn);

                var content       = new AdaptiveTextBlock(todo.Topic);
                var contentColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                contentColumn.Items.Add(content);
                columnSet.Columns.Add(contentColumn);

                container.Items.Add(columnSet);
                if (index >= startIndexOfTasksToBeRead && index < startIndexOfTasksToBeRead + toBeReadTasksCount)
                {
                    if (toBeReadTasksCount == 1)
                    {
                        toDoCard.Speak += todo.Topic + ". ";
                    }
                    else if (index == startIndexOfTasksToBeRead + toBeReadTasksCount - 2)
                    {
                        toDoCard.Speak += todo.Topic;
                    }
                    else if (index == startIndexOfTasksToBeRead + toBeReadTasksCount - 1)
                    {
                        toDoCard.Speak += string.Format(ToDoStrings.And, todo.Topic);
                    }
                    else
                    {
                        toDoCard.Speak += todo.Topic + ", ";
                    }
                }

                index++;
            }

            body.Add(container);
            toDoCard.Body = body;

            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = toDoCard,
            };

            return(attachment);
        }
コード例 #3
0
ファイル: ToDoSkillDialog.cs プロジェクト: wangzhizhen/AI
        protected Attachment ToAdaptiveCardForPreviousPage(
            List <TaskItem> todos,
            int readSize,
            int allTasksCount,
            string listType)
        {
            var response = ResponseManager.GetResponseTemplate(ShowToDoResponses.ShowPreviousTasks);
            var toDoCard = new AdaptiveCard();

            toDoCard.Speak = ResponseManager.Format(response.Reply.Speak, new StringDictionary()) + " ";
            var body = new List <AdaptiveElement>();

            response = ResponseManager.GetResponseTemplate(ToDoSharedResponses.CardSummaryMessage);
            var showText = ResponseManager.Format(response.Reply.Text, new StringDictionary()
            {
                { "taskCount", allTasksCount.ToString() }, { "listType", listType }
            });
            var textBlock = new AdaptiveTextBlock
            {
                Text = showText,
            };

            body.Add(textBlock);

            var container = new AdaptiveContainer();

            readSize = Math.Min(readSize, todos.Count);
            var index = 0;

            foreach (var todo in todos)
            {
                var columnSet = new AdaptiveColumnSet();

                var icon = new AdaptiveImage
                {
                    UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource
                };
                var iconColumn = new AdaptiveColumn
                {
                    Width = "auto"
                };
                iconColumn.Items.Add(icon);
                columnSet.Columns.Add(iconColumn);

                var content       = new AdaptiveTextBlock(todo.Topic);
                var contentColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                contentColumn.Items.Add(content);
                columnSet.Columns.Add(contentColumn);

                container.Items.Add(columnSet);

                if (index < readSize)
                {
                    if (readSize == 1)
                    {
                        toDoCard.Speak += todo.Topic + ". ";
                    }
                    else if (index == readSize - 2)
                    {
                        toDoCard.Speak += todo.Topic;
                    }
                    else if (index == readSize - 1)
                    {
                        toDoCard.Speak += string.Format(ToDoStrings.And, todo.Topic);
                    }
                    else
                    {
                        toDoCard.Speak += todo.Topic + ", ";
                    }
                }

                index++;
            }

            body.Add(container);
            toDoCard.Body = body;

            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = toDoCard,
            };

            return(attachment);
        }
        private static AdaptiveCard HolidayListAdaptiveCardMoreDynamic(List <string> date, List <string> description)
        {
            var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
            List <AdaptiveColumn> columns = new List <AdaptiveColumn>();
            AdaptiveColumn        column  = AdaptiveCardHelper.AddAdaptiveColumn();
            AdaptiveColumn        column1 = AdaptiveCardHelper.AddAdaptiveColumn();
            AdaptiveColumn        column2 = AdaptiveCardHelper.AddAdaptiveColumn();

            AdaptiveCardHelper.AddTextBlockWithColumn(column, "Sr.No", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Accent);
            AdaptiveCardHelper.AddTextBlockWithColumn(column1, "Date", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Good);
            AdaptiveCardHelper.AddTextBlockWithColumn(column2, "Description", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Dark);

            for (int i = 0; i < date.Count; i++)
            {
                AdaptiveCardHelper.AddItemToAdaptiveColumn(column, AdaptiveCardHelper.AddTextBlock((i + 1).ToString()));
                AdaptiveCardHelper.AddItemToAdaptiveColumn(column1, AdaptiveCardHelper.AddTextBlock((date[i]).ToString()));
                AdaptiveCardHelper.AddItemToAdaptiveColumn(column2, AdaptiveCardHelper.AddTextBlock((description[i]).ToString()));
            }

            var columnSet = new AdaptiveColumnSet();

            columnSet.Columns.Add(column);
            columnSet.Columns.Add(column1);
            columnSet.Columns.Add(column2);
            AdaptiveContainer container = AdaptiveCardHelper.AddAdaptiveContainer(columnSet);

            card.Body.Add(container);
            return(card);


            ////++++++++++++++++++++++++++++++++++++++++++++
            ///https://stackoverflow.com/questions/11632816/can-i-count-properties-before-i-create-an-object-in-the-constructor
            /////https://stackoverflow.com/questions/27335689/creating-objects-within-a-loop
            ///https://social.msdn.microsoft.com/Forums/SECURITY/en-US/d7e26819-2731-402a-90a5-b512cb11eca5/how-do-i-create-a-loop-that-creates-multiple-objects-of-a-class?forum=csharpgeneral
            //var card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
            //List<AdaptiveColumn> columns = new List<AdaptiveColumn>();
            ////AdaptiveColumn column = AdaptiveCardHelper.AddAdaptiveColumn();
            ////AdaptiveColumn column1 = AdaptiveCardHelper.AddAdaptiveColumn();
            ////AdaptiveColumn column2 = AdaptiveCardHelper.AddAdaptiveColumn();
            //for (int i = 0; i < 2; i++)
            //{
            //    columns.Add(new AdaptiveColumn());
            //}

            //AdaptiveCardHelper.AddTextBlockWithColumn(columns[0], "Sr.No", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Accent);
            //AdaptiveCardHelper.AddTextBlockWithColumn(columns[1], "Date", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Good);
            //AdaptiveCardHelper.AddTextBlockWithColumn(columns[2], "Description", AdaptiveTextWeight.Bolder, AdaptiveTextSize.Large, AdaptiveTextColor.Dark);

            //for (int i = 0; i < date.Count; i++)
            //{
            //    //for (int i1 = 0; i1 < 2; i1++)
            //    //{
            //    //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[i1], AdaptiveCardHelper.AddTextBlock((i + 1).ToString()));
            //    //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[i1+1], AdaptiveCardHelper.AddTextBlock((date[i]).ToString()));
            //    //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[i1+2], AdaptiveCardHelper.AddTextBlock((description[i]).ToString()));
            //    //}
            //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[0], AdaptiveCardHelper.AddTextBlock((i + 1).ToString()));
            //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[1], AdaptiveCardHelper.AddTextBlock((date[i]).ToString()));
            //    AdaptiveCardHelper.AddItemToAdaptiveColumn(columns[2], AdaptiveCardHelper.AddTextBlock((description[i]).ToString()));
            //}

            //var columnSet = new AdaptiveColumnSet();
            //columnSet.Columns.Add(columns[0]);
            //columnSet.Columns.Add(columns[1]);
            //columnSet.Columns.Add(columns[2]);
            //AdaptiveContainer container = AdaptiveCardHelper.AddAdaptiveContainer(columnSet);
            //card.Body.Add(container);
            //return card;
        }
        public static AdaptiveCard CreateAdaptiveCard_WithDynamicContent()
        {
            List <string> city = new List <string>()
            {
                "Delhi", "Bangalore", "Mumbai"
            };
            List <string> date = new List <string>()
            {
                "1-Jan", "26-Jan", "15-Aug"
            };
            List <string> des = new List <string>()
            {
                "New Year", "Republic Day", "Independence Day"
            };

            List <string> date1 = new List <string>()
            {
                "1-Jan", "26-Jan", "15-Aug", "25-Dec"
            };
            List <string> des1 = new List <string>()
            {
                "New Year", "Republic Day", "Independence Day", "Christmas Day"
            };

            List <string> date2 = new List <string>()
            {
                "1-Jan", "25-Dec"
            };
            List <string> des2 = new List <string>()
            {
                "New Year", "Christmas Day"
            };

            List <AdaptiveCard> cards = new List <AdaptiveCard>();

            cards.Add(HolidayListAdaptiveCard(date, des));
            cards.Add(HolidayListAdaptiveCard(date1, des1));
            cards.Add(HolidayListAdaptiveCard(date2, des2));

            var mainCard = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
            var column3  = new AdaptiveColumn();

            column3.Items.Add(new AdaptiveTextBlock()
            {
                Text = "Holiday City", Weight = AdaptiveTextWeight.Bolder
            });
            var columnSet1 = new AdaptiveColumnSet();

            columnSet1.Columns.Add(column3);
            var container1 = new AdaptiveContainer();

            container1.Style = AdaptiveContainerStyle.Emphasis;
            container1.Items.Add(columnSet1);
            mainCard.Body.Add(container1);

            List <AdaptiveShowCardAction> adaptiveShowCardActions = new List <AdaptiveShowCardAction>();

            for (int i = 0; i < city.Count; i++)
            {
                //mainCard.Actions.Add(new AdaptiveShowCardAction() { Title = city[i], Card = cards[i] });
                //mainCard.Actions.Add(new AdaptiveSubmitAction() {Title="Submit",Data= "Submit" });
                mainCard.Actions.Add(new AdaptiveSubmitAction()
                {
                    Title = "Submit", Data = "Submit"
                });
                //{ \"Type\": \"GetPPTNo\" }
                //mainCard.Actions.Add(new AdaptiveOpenUrlAction() { Title = "OpenUrl", Url = new Uri("https://adaptivecards.io/explorer/Action.OpenUrl.html") });
            }

            var attachment = new Attachment
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = mainCard
            };

            return(mainCard);
            //var reply = MessageFactory.Attachment(attachment);
            //await stepContext.Context.SendActivityAsync(reply);
            //return new DialogTurnResult(DialogTurnStatus.Waiting);
        }
コード例 #6
0
        private AdaptiveCard SetCard()
        {
            AdaptiveCard _card = new AdaptiveCard("1.0");

            var _container = new AdaptiveContainer();

            var colum = new AdaptiveColumnSet();

            var _columnImage = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Auto
            };

            _columnImage.Items.Add(new AdaptiveImage()
            {
                Url     = new Uri("http://localhost:3978/img/bot-avatar_.png"),
                Size    = AdaptiveImageSize.Small,
                Style   = AdaptiveImageStyle.Person,
                AltText = "Bootty"
            });

            var _columnContent = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Stretch
            };

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text    = "Booty",
                Size    = AdaptiveTextSize.Medium,
                Weight  = AdaptiveTextWeight.Default,
                Color   = AdaptiveTextColor.Default,
                Wrap    = true,
                Spacing = AdaptiveSpacing.Default
            });

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text     = DateTime.Now.ToString(),
                Size     = AdaptiveTextSize.Small,
                Color    = AdaptiveTextColor.Default,
                Wrap     = true,
                IsSubtle = true,
                Spacing  = AdaptiveSpacing.None
            });

            var _textMessage = new AdaptiveTextBlock()
            {
                Text     = this.Title,
                Size     = AdaptiveTextSize.Medium,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Bolder,
                Wrap     = true,
                IsSubtle = false
            };

            var _textMessage2 = new AdaptiveTextBlock()
            {
                Text     = this.Description,
                Size     = AdaptiveTextSize.Small,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Default,
                Wrap     = true,
                IsSubtle = false
            };

            colum.Columns.Add(_columnImage);
            colum.Columns.Add(_columnContent);
            _container.Items.Add(colum);

            _card.Body.Add(_container);
            _card.Body.Add(_textMessage);
            _card.Body.Add(_textMessage2);

            _card.Actions.AddRange(this.GetAdaptiveActions());

            return(_card);
        }
コード例 #7
0
        public void ColumnSet()
        {
            AdaptiveColumn column1 = new AdaptiveColumn
            {
                Bleed     = true,
                Height    = HeightType.Stretch,
                Id        = "ColumnId",
                IsVisible = false,
                Width     = "50px",
                Separator = true,
                Spacing   = Spacing.Small,
                Style     = ContainerStyle.Emphasis,
                VerticalContentAlignment = VerticalContentAlignment.Bottom,
            };

            ValidateBaseElementProperties(column1, "ColumnId", false, true, Spacing.Small, HeightType.Stretch);

            Assert.IsTrue(column1.Bleed);
            Assert.AreEqual("50px", column1.Width);
            Assert.AreEqual <uint>(50, column1.PixelWidth);
            Assert.AreEqual(ContainerStyle.Emphasis, column1.Style);
            Assert.AreEqual(VerticalContentAlignment.Bottom, column1.VerticalContentAlignment);

            column1.SelectAction = new AdaptiveSubmitAction
            {
                Title = "Select Action"
            };
            Assert.IsNotNull(column1.SelectAction);
            Assert.AreEqual("Select Action", column1.SelectAction.Title);

            AdaptiveTextBlock textBlock = new AdaptiveTextBlock
            {
                Text = "This is a text block"
            };

            column1.Items.Add(textBlock);

            AdaptiveTextBlock textBlock2 = new AdaptiveTextBlock
            {
                Text = "This is another text block"
            };

            column1.Items.Add(textBlock2);

            Assert.AreEqual("This is a text block", (column1.Items[0] as AdaptiveTextBlock).Text);
            Assert.AreEqual("This is another text block", (column1.Items[1] as AdaptiveTextBlock).Text);

            AdaptiveColumn column2 = new AdaptiveColumn
            {
                Id = "Column2Id"
            };
            AdaptiveTextBlock textBlock3 = new AdaptiveTextBlock
            {
                Text = "This is a text block"
            };

            column2.Items.Add(textBlock3);

            AdaptiveColumnSet columnSet = new AdaptiveColumnSet
            {
                Bleed     = true,
                Height    = HeightType.Stretch,
                Id        = "ColumnSetId",
                IsVisible = false,
                Separator = true,
                Spacing   = Spacing.Small,
                Style     = ContainerStyle.Emphasis,
            };

            Assert.IsTrue(columnSet.Bleed);
            ValidateBaseElementProperties(columnSet, "ColumnSetId", false, true, Spacing.Small, HeightType.Stretch);

            columnSet.Columns.Add(column1);
            columnSet.Columns.Add(column2);

            Assert.AreEqual("ColumnId", columnSet.Columns[0].Id);
            Assert.AreEqual("Column2Id", columnSet.Columns[1].Id);

            var jsonString = columnSet.ToJson().ToString();

            Assert.AreEqual("{\"bleed\":true,\"columns\":[{\"bleed\":true,\"height\":\"Stretch\",\"id\":\"ColumnId\",\"isVisible\":false,\"items\":[{\"text\":\"This is a text block\",\"type\":\"TextBlock\"},{\"text\":\"This is another text block\",\"type\":\"TextBlock\"}],\"selectAction\":{\"title\":\"Select Action\",\"type\":\"Action.Submit\"},\"separator\":true,\"spacing\":\"small\",\"style\":\"Emphasis\",\"type\":\"Column\",\"verticalContentAlignment\":\"Bottom\",\"width\":\"50px\"},{\"id\":\"Column2Id\",\"items\":[{\"text\":\"This is a text block\",\"type\":\"TextBlock\"}],\"type\":\"Column\",\"width\":\"auto\"}],\"height\":\"Stretch\",\"id\":\"ColumnSetId\",\"isVisible\":false,\"separator\":true,\"spacing\":\"small\",\"style\":\"Emphasis\",\"type\":\"ColumnSet\"}", jsonString);
        }
コード例 #8
0
        protected Attachment ToAdaptiveCardForPreviousPage(
            List <TaskItem> todos,
            int toBeReadTasksCount)
        {
            var toDoCard  = new AdaptiveCard();
            var speakText = Format(ShowToDoResponses.ShowPreviousToDoTasks.Reply.Speak, new StringDictionary()
            {
            })
                            + Format(ShowToDoResponses.FirstToDoTasks.Reply.Speak, new StringDictionary()
            {
                { "taskCount", toBeReadTasksCount.ToString() }
            });

            toDoCard.Speak = speakText;

            var body     = new List <AdaptiveElement>();
            var showText = Format(ShowToDoResponses.ShowPreviousToDoTasks.Reply.Text, new StringDictionary()
            {
            });
            var textBlock = new AdaptiveTextBlock
            {
                Text = showText,
            };

            body.Add(textBlock);

            var container = new AdaptiveContainer();
            var index     = 0;

            foreach (var todo in todos)
            {
                var columnSet = new AdaptiveColumnSet();

                var icon = new AdaptiveImage();
                icon.UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource;
                var iconColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                iconColumn.Items.Add(icon);
                columnSet.Columns.Add(iconColumn);

                var content       = new AdaptiveTextBlock(todo.Topic);
                var contentColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                contentColumn.Items.Add(content);
                columnSet.Columns.Add(contentColumn);

                container.Items.Add(columnSet);

                if (index < toBeReadTasksCount)
                {
                    toDoCard.Speak += (++index) + " " + todo.Topic + " ";
                }
            }

            body.Add(container);
            toDoCard.Body = body;

            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = toDoCard,
            };

            return(attachment);
        }
コード例 #9
0
        private AdaptiveCard SetCard()
        {
            AdaptiveCard _card = new AdaptiveCard("1.0");

            var _container = new AdaptiveContainer();

            var colum = new AdaptiveColumnSet();

            var _columnImage = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Auto
            };

            _columnImage.Items.Add(new AdaptiveImage()
            {
                Url     = new Uri(this.UrlImage),
                Size    = AdaptiveImageSize.Small,
                Style   = AdaptiveImageStyle.Person,
                AltText = "Bootty"
            });

            var _columnContent = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Stretch
            };

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text    = "Booty",
                Size    = AdaptiveTextSize.Medium,
                Weight  = AdaptiveTextWeight.Default,
                Color   = AdaptiveTextColor.Default,
                Wrap    = true,
                Spacing = AdaptiveSpacing.Default
            });

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text     = DateTime.Now.ToString(),
                Size     = AdaptiveTextSize.Small,
                Color    = AdaptiveTextColor.Default,
                Wrap     = true,
                IsSubtle = true,
                Spacing  = AdaptiveSpacing.None
            });

            var _textMessage = new AdaptiveTextBlock()
            {
                Text     = this.Title,
                Size     = AdaptiveTextSize.Medium,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Bolder,
                Wrap     = true,
                IsSubtle = false
            };

            var _textMessage2 = new AdaptiveTextBlock()
            {
                Text     = this.Description,
                Size     = AdaptiveTextSize.Small,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Default,
                Wrap     = true,
                IsSubtle = false
            };


            colum.Columns.Add(_columnImage);
            colum.Columns.Add(_columnContent);
            _container.Items.Add(colum);

            _card.Body.Add(_container);
            _card.Body.Add(_textMessage);
            _card.Body.Add(_textMessage2);

            //Form

            var _texDataSubtitle = new AdaptiveTextBlock()
            {
                Text   = "Tus Datos",
                Size   = AdaptiveTextSize.Medium,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Bolder,
                HorizontalAlignment = AdaptiveHorizontalAlignment.Left
            };


            var _textTitleName = new AdaptiveTextBlock()
            {
                Text   = "Tú Nombre",
                Size   = AdaptiveTextSize.Small,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };

            var _textName = new AdaptiveTextInput()
            {
                Id          = "UserName",
                Placeholder = "Apellido, Nombre"
            };

            var _textTitleEmail = new AdaptiveTextBlock()
            {
                Text   = "Dirección de correo",
                Size   = AdaptiveTextSize.Small,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };

            var _textEmail = new AdaptiveTextInput()
            {
                Id          = "Email",
                Placeholder = "correo electronico"
            };

            var _texDatesSubtitle = new AdaptiveTextBlock()
            {
                Text   = "Fechas",
                Size   = AdaptiveTextSize.Medium,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Bolder,
                HorizontalAlignment = AdaptiveHorizontalAlignment.Left
            };

            var _textTitleDeparture = new AdaptiveTextBlock()
            {
                Text   = "Fecha de salida",
                Size   = AdaptiveTextSize.Small,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };

            var _textDeparture = new AdaptiveDateInput()
            {
                Id = "Departure"
            };

            var _textTitleArrival = new AdaptiveTextBlock()
            {
                Text   = "Fecha de regreso",
                Size   = AdaptiveTextSize.Small,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };

            var _textArrival = new AdaptiveDateInput()
            {
                Id = "Arrival"
            };

            var _texOptionsSubtitle = new AdaptiveTextBlock()
            {
                Text   = "Tipo de viaje",
                Size   = AdaptiveTextSize.Normal,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Bolder,
                HorizontalAlignment = AdaptiveHorizontalAlignment.Left
            };

            var _textTrasportOpciones = new AdaptiveTextBlock()
            {
                Text   = "Tipo de transporte",
                Size   = AdaptiveTextSize.Medium,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };
            //traport
            var _transportChoice = new AdaptiveChoiceSetInput();

            _transportChoice.Id    = "TransporChoice";
            _transportChoice.Value = "bus";
            _transportChoice.Style = AdaptiveChoiceInputStyle.Expanded;
            _transportChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Omnibus",
                Value = "Omnibus"
            });
            _transportChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Avion",
                Value = "Avion"
            });

            var _textClassOpciones = new AdaptiveTextBlock()
            {
                Text   = "Clase",
                Size   = AdaptiveTextSize.Medium,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };
            //traport
            var _classChoice = new AdaptiveChoiceSetInput();

            _classChoice.Id    = "ClassChoice";
            _classChoice.Value = "Economica";
            _classChoice.Style = AdaptiveChoiceInputStyle.Expanded;
            _classChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Economica",
                Value = "Economica"
            });
            _classChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Primera",
                Value = "Primera"
            });

            var _textCashOpciones = new AdaptiveTextBlock()
            {
                Text   = "¿Forma de Pago?",
                Size   = AdaptiveTextSize.Medium,
                Color  = AdaptiveTextColor.Default,
                Weight = AdaptiveTextWeight.Default
            };
            //traport
            var _cashChoice = new AdaptiveChoiceSetInput();

            _cashChoice.Id    = "CashChoice";
            _cashChoice.Value = "Efectivo";
            _cashChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Efectivo",
                Value = "Efectivo"
            });
            _cashChoice.Choices.Add(new AdaptiveChoice()
            {
                Title = "Tarjeta de Credito",
                Value = "Tarjeta de Credito"
            });

            var _checkConditions = new AdaptiveToggleInput()
            {
                Id    = "checkConditions",
                Value = "accept",
                Title = "Acepto los terminos y condiciones."
            };

            var _submitButton = new AdaptiveSubmitAction()
            {
                Title    = "Contratar",
                DataJson = JsonConvert.SerializeObject(new JsonDataAux()
                {
                    From   = TypeCards.FORM.ToString(),
                    Action = "MDZFORM"
                })
            };

            _card.Body.Add(_texDataSubtitle);
            _card.Body.Add(_textTitleName);
            _card.Body.Add(_textName);
            _card.Body.Add(_textTitleEmail);
            _card.Body.Add(_textEmail);
            _card.Body.Add(_texDatesSubtitle);
            _card.Body.Add(_textTitleDeparture);
            _card.Body.Add(_textDeparture);
            _card.Body.Add(_textTitleArrival);
            _card.Body.Add(_textArrival);

            _card.Body.Add(_texOptionsSubtitle);
            _card.Body.Add(_textTrasportOpciones);
            _card.Body.Add(_transportChoice);
            _card.Body.Add(_textClassOpciones);
            _card.Body.Add(_classChoice);
            _card.Body.Add(_textCashOpciones);
            _card.Body.Add(_cashChoice);

            _card.Body.Add(_checkConditions);

            _card.Actions.Add(_submitButton);

            return(_card);
        }
コード例 #10
0
        protected Attachment ToAdaptiveCardForOtherFlows(
            List <TaskItem> todos,
            int allTaskCount,
            string taskContent,
            BotResponse botResponse1,
            BotResponse botResponse2,
            string listType)
        {
            var toDoCard = new AdaptiveCard();
            var showText = Format(botResponse2.Reply.Text, new StringDictionary()
            {
                { "taskCount", allTaskCount.ToString() }, { "listType", listType }
            });
            var speakText = Format(botResponse1.Reply.Speak, new StringDictionary()
            {
                { "taskContent", taskContent }
            })
                            + " " + Format(botResponse2.Reply.Speak, new StringDictionary()
            {
                { "taskCount", allTaskCount.ToString() }, { "listType", listType }
            });

            toDoCard.Speak = speakText.Remove(speakText.Length - 1) + ".";

            var body      = new List <AdaptiveElement>();
            var textBlock = new AdaptiveTextBlock
            {
                Text = showText,
            };

            body.Add(textBlock);

            var container = new AdaptiveContainer();

            foreach (var todo in todos)
            {
                var columnSet = new AdaptiveColumnSet();

                var icon = new AdaptiveImage();
                icon.UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource;
                var iconColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                iconColumn.Items.Add(icon);
                columnSet.Columns.Add(iconColumn);

                var content       = new AdaptiveTextBlock(todo.Topic);
                var contentColumn = new AdaptiveColumn();
                iconColumn.Width = "auto";
                contentColumn.Items.Add(content);
                columnSet.Columns.Add(contentColumn);

                container.Items.Add(columnSet);
            }

            body.Add(container);
            toDoCard.Body = body;

            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = toDoCard,
            };

            return(attachment);
        }
コード例 #11
0
        /// <summary>
        /// Update scrum details to name card.
        /// </summary>
        /// <param name="name">name of group member.</param>
        /// <param name="scrumDetails">scrum details.</param>
        /// <param name="appBaseUrl">app base url.</param>
        /// <returns>card.</returns>
        public static Attachment GetUpdateCard(string name, ScrumDetailsEntity scrumDetails, string appBaseUrl)
        {
            Uri    blockerImgUrl    = new Uri(appBaseUrl + "/content/blocked.png");
            string updatedTimeStamp = DateTime.UtcNow.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'");

            AdaptiveColumnSet columnSet = new AdaptiveColumnSet();
            var dateTimeinTextFormat    = string.Format("{{{{DATE({0}, SHORT)}}}} {{{{TIME({1})}}}}", updatedTimeStamp, updatedTimeStamp);

            columnSet.Columns.Add(
                new AdaptiveColumn
            {
                Width = AdaptiveColumnWidth.Auto,
                Items = new List <AdaptiveElement>
                {
                    new AdaptiveTextBlock
                    {
                        Weight = AdaptiveTextWeight.Bolder,
                        Text   = name,
                        Wrap   = true,
                        Size   = AdaptiveTextSize.Default,
                    },
                    new AdaptiveTextBlock
                    {
                        Weight   = AdaptiveTextWeight.Lighter,
                        Text     = string.Format(Resources.UpdateScrumTimeStampText, dateTimeinTextFormat),
                        Wrap     = true,
                        IsSubtle = true,
                    },
                },
            });

            if (!string.IsNullOrEmpty(scrumDetails.Blockers))
            {
                AdaptiveColumn column = new AdaptiveColumn();
                column.Items.Add(new AdaptiveImage
                {
                    Style = AdaptiveImageStyle.Default,
                    HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                    Url = blockerImgUrl,
                });
                columnSet.Columns.Add(column);
            }

            AdaptiveCard validationCard = new AdaptiveCard("1.0")
            {
                Body = new List <AdaptiveElement>
                {
                    columnSet,
                },
                Actions = new List <AdaptiveAction>
                {
                    new AdaptiveShowCardAction()
                    {
                        Title = Resources.ShowScrumDetailsTitle,
                        Card  = new AdaptiveCard("1.0")
                        {
                            Body = new List <AdaptiveElement>
                            {
                                new AdaptiveTextBlock
                                {
                                    Text      = Resources.YesterdayText,
                                    Color     = AdaptiveTextColor.Dark,
                                    Separator = true,
                                    IsSubtle  = true,
                                    Wrap      = true,
                                    Weight    = AdaptiveTextWeight.Bolder,
                                },
                                new AdaptiveTextBlock
                                {
                                    Text   = scrumDetails.Yesterday,
                                    Wrap   = true,
                                    Weight = AdaptiveTextWeight.Lighter,
                                },
                                new AdaptiveTextBlock
                                {
                                    Text      = Resources.TodayText,
                                    Color     = AdaptiveTextColor.Dark,
                                    Separator = true,
                                    IsSubtle  = true,
                                    Wrap      = true,
                                    Weight    = AdaptiveTextWeight.Bolder,
                                },
                                new AdaptiveTextBlock
                                {
                                    Text   = scrumDetails.Today,
                                    Wrap   = true,
                                    Weight = AdaptiveTextWeight.Lighter,
                                },
                                new AdaptiveTextBlock
                                {
                                    Text      = Resources.BlockersText,
                                    Color     = AdaptiveTextColor.Dark,
                                    Separator = true,
                                    IsSubtle  = true,
                                    Wrap      = true,
                                    Weight    = AdaptiveTextWeight.Bolder,
                                },
                                new AdaptiveTextBlock
                                {
                                    Text   = scrumDetails.Blockers,
                                    Wrap   = true,
                                    Weight = AdaptiveTextWeight.Lighter,
                                },
                            },
                        },
                    },
                },
            };

            return(new Attachment
            {
                ContentType = AdaptiveCard.ContentType,
                Content = validationCard,
            });
        }
コード例 #12
0
ファイル: ResultCard.cs プロジェクト: amrullah08/handy-tool
        public static Attachment ShowGreetingCard()
        {
            AdaptiveContainer adaptiveContainer = new AdaptiveContainer();
            AdaptiveColumnSet adaptiveColumnSet = new AdaptiveColumnSet();
            AdaptiveColumn    adaptiveColumn    = new AdaptiveColumn()
            {
                Items = new List <AdaptiveElement>()
                {
                    new AdaptiveImage()
                    {
                        Size = AdaptiveImageSize.Auto,
                        Url  = new Uri("https://rave.office.net/api/download/publicBlob?fileURL=https%3a%2f%2fwebrave.blob.core.windows.net%2fpublic%2fimages%2fRave_DJ_2.gif")
                    }
                }
            };

            adaptiveColumnSet.Columns.Add(adaptiveColumn);

            //adaptiveColumn = new AdaptiveColumn()
            //{
            //    Items = new List<AdaptiveElement>()
            //                    {
            //                        new AdaptiveTextBlock()
            //                        {
            //                            Text=""
            //                        }
            //                    }
            //};
            //adaptiveColumnSet.Columns.Add(adaptiveColumn);

            //adaptiveColumn = new AdaptiveColumn()
            //{
            //    Items = new List<AdaptiveElement>()
            //                    {
            //                        new AdaptiveTextBlock()
            //                        {
            //                            Text=""
            //                        }
            //                    }
            //};
            //adaptiveColumnSet.Columns.Add(adaptiveColumn);

            adaptiveColumn = new AdaptiveColumn()
            {
                Items = new List <AdaptiveElement>()
                {
                    new AdaptiveTextBlock()
                    {
                        Text   = "I am The " + System.Configuration.ConfigurationManager.AppSettings["Company"] + " Assistant.",
                        Weight = AdaptiveTextWeight.Bolder,
                        Wrap   = true
                    },
                    new AdaptiveTextBlock()
                    {
                        Text   = "How can i help you today?",
                        Weight = AdaptiveTextWeight.Bolder,
                        Size   = AdaptiveTextSize.Small,
                        Wrap   = true
                    }
                }
            };
            adaptiveColumnSet.Columns.Add(adaptiveColumn);
            adaptiveContainer.Items.Add(adaptiveColumnSet);

            AdaptiveCard adaptiveCard = new AdaptiveCard();

            adaptiveCard.Body.Add(adaptiveContainer);

            Attachment attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = adaptiveCard
            };

            return(attachment);
        }
コード例 #13
0
        public static AdaptiveCard CreateFullCardForCandidate(Candidate c)
        {
            AdaptiveCard card = new AdaptiveCard();

            card.Body = new List <AdaptiveElement>();
            AdaptiveContainer header = new AdaptiveContainer();

            card.Body.Add(header);

            header.Items = new List <AdaptiveElement>();
            header.Items.Add(new AdaptiveTextBlock()
            {
                Text   = c.Name,
                Weight = AdaptiveTextWeight.Bolder,
                Size   = AdaptiveTextSize.Large
            });

            AdaptiveColumnSet headerDetails = new AdaptiveColumnSet();

            header.Items.Add(headerDetails);

            AdaptiveColumn col1 = new AdaptiveColumn();

            col1.Width = AdaptiveColumnWidth.Auto;
            col1.Items = new List <AdaptiveElement>
            {
                new AdaptiveImage()
                {
                    Url   = new Uri(c.ProfilePicture),
                    Size  = AdaptiveImageSize.Small,
                    Style = AdaptiveImageStyle.Person
                }
            };

            AdaptiveColumn col2 = new AdaptiveColumn();

            col2.Width = AdaptiveColumnWidth.Stretch;
            col2.Items = new List <AdaptiveElement>
            {
                new AdaptiveTextBlock()
                {
                    Text = $"Applied {DateTime.Today.ToString("MM/dd/yyyy")}",
                    Wrap = true
                },
                new AdaptiveTextBlock()
                {
                    Text     = $"Current role {c.CurrentRole}",
                    Spacing  = AdaptiveSpacing.None,
                    Wrap     = true,
                    IsSubtle = true
                }
            };

            headerDetails.Columns = new List <AdaptiveColumn>
            {
                col1,
                col2
            };

            AdaptiveContainer details = new AdaptiveContainer();

            AdaptiveTextBlock candidateSummary = new AdaptiveTextBlock()
            {
                Text = new CandidatesDataController().GetCandidateBio(c),
                Wrap = true
            };

            AdaptiveFactSet factsCol1 = new AdaptiveFactSet();

            factsCol1.Facts = new List <AdaptiveFact>
            {
                new AdaptiveFact("Applied to position", c.ReqId),
                new AdaptiveFact("Interview date", "Not set")
            };

            AdaptiveFactSet factsCol2 = new AdaptiveFactSet();

            factsCol2.Facts = new List <AdaptiveFact>
            {
                new AdaptiveFact("Hires", c.Hires.ToString()),
                new AdaptiveFact("No hires", c.NoHires.ToString())
            };

            AdaptiveColumnSet factColumns = new AdaptiveColumnSet()
            {
                Columns = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn()
                    {
                        Items = new List <AdaptiveElement>
                        {
                            factsCol1
                        },
                        Width = AdaptiveColumnWidth.Stretch
                    },

                    new AdaptiveColumn()
                    {
                        Items = new List <AdaptiveElement>
                        {
                            factsCol2
                        },
                        Width = AdaptiveColumnWidth.Stretch
                    }
                }
            };

            details.Items = new List <AdaptiveElement>
            {
                candidateSummary,
                factColumns
            };

            card.Body.Add(details);

            AdaptiveImageSet referrals = new AdaptiveImageSet();

            referrals.ImageSize = AdaptiveImageSize.Small;
            referrals.Images    = new List <AdaptiveImage>();

            foreach (Candidate referral in new CandidatesDataController().GetReferrals(c))
            {
                referrals.Images.Add(new AdaptiveImage()
                {
                    Url   = new Uri(referral.ProfilePicture),
                    Style = AdaptiveImageStyle.Person
                });
            }

            card.Body.Add(new AdaptiveTextBlock()
            {
                Text = "Referrals",
                Size = AdaptiveTextSize.Large
            });
            card.Body.Add(referrals);

            AdaptiveAction setInterview = new AdaptiveShowCardAction()
            {
                Title = "Set interview date",
                Card  = new AdaptiveCard()
                {
                    Body = new List <AdaptiveElement>
                    {
                        new AdaptiveDateInput()
                        {
                            Id          = "InterviewDate",
                            Placeholder = "Enter in a date for the interview"
                        }
                    },
                    Actions = new List <AdaptiveAction>
                    {
                        new AdaptiveSubmitAction()
                        {
                            Title = "OK"
                        }
                    }
                }
            };

            AdaptiveAction setComment = new AdaptiveShowCardAction()
            {
                Title = "Add comment",
                Card  = new AdaptiveCard()
                {
                    Body = new List <AdaptiveElement>
                    {
                        new AdaptiveTextInput()
                        {
                            Id          = "Comment",
                            Placeholder = "Add a comment for this candidate",
                            IsMultiline = true
                        }
                    },
                    Actions = new List <AdaptiveAction>
                    {
                        new AdaptiveSubmitAction()
                        {
                            Title = "OK"
                        }
                    }
                }
            };

            card.Actions = new List <AdaptiveAction>
            {
                setInterview,
                setComment
            };

            return(card);
        }
コード例 #14
0
        private AdaptiveCard SetCard()
        {
            AdaptiveCard _card = new AdaptiveCard("1.1");

            var _container = new AdaptiveContainer();

            var colum = new AdaptiveColumnSet();

            var _columnImage = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Auto
            };

            _columnImage.Items.Add(new AdaptiveImage()
            {
                Url     = new Uri(this.UrlImage),
                Size    = AdaptiveImageSize.Small,
                Style   = AdaptiveImageStyle.Person,
                AltText = "Brainy"
            });

            var _columnContent = new AdaptiveColumn()
            {
                Width = AdaptiveColumnWidth.Stretch
            };

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text    = "Brainy",
                Size    = AdaptiveTextSize.Medium,
                Weight  = AdaptiveTextWeight.Default,
                Color   = AdaptiveTextColor.Default,
                Wrap    = true,
                Spacing = AdaptiveSpacing.Default
            });

            _columnContent.Items.Add(new AdaptiveTextBlock()
            {
                Text     = DateTime.Now.ToString(),
                Size     = AdaptiveTextSize.Small,
                Color    = AdaptiveTextColor.Default,
                Wrap     = true,
                IsSubtle = true,
                Spacing  = AdaptiveSpacing.None
            });

            var _textMessage = new AdaptiveTextBlock()
            {
                Text     = this.Title,
                Size     = AdaptiveTextSize.Medium,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Bolder,
                Wrap     = true,
                IsSubtle = false
            };

            var _textMessage2 = new AdaptiveTextBlock()
            {
                Text     = this.Description,
                Size     = AdaptiveTextSize.Normal,
                Color    = AdaptiveTextColor.Default,
                Weight   = AdaptiveTextWeight.Default,
                Wrap     = true,
                IsSubtle = false
            };


            colum.Columns.Add(_columnImage);
            colum.Columns.Add(_columnContent);
            _container.Items.Add(colum);

            _card.Body.Add(_container);
            _card.Body.Add(_textMessage);
            _card.Body.Add(_textMessage2);

            var video = this.Actions.Where(p => p.TypeCard == TypeCards.VIDEO).SingleOrDefault();

            if (video != null)
            {
                var _video = new AdaptiveMedia();
                _video.Sources.Add(new AdaptiveMediaSource()
                {
                    MimeType = "video/mp4",
                    Url      = video.Result
                });

                _card.Body.Add(_video);
            }


            _card.Actions.AddRange(this.GetAdaptiveActions());

            return(_card);
        }