Exemplo n.º 1
0
 /// <summary>
 /// 為AdaptiveCard新增AdaptiveContainer
 /// </summary>
 /// <param name="card">要被加入元素的AdaptiveCard</param>
 /// <param name="container">即將加入的AdaptiveContainer</param>
 /// <returns>原先的AdaptiveCard</returns>
 public static AdaptiveCard AddContainer(this AdaptiveCard card, AdaptiveContainer container)
 {
     card.Body.Add(container);
     return(card);
 }
        public static FrameworkElement Render(AdaptiveContainer container, AdaptiveRenderContext context)
        {
            var uiContainer = new Grid();

            uiContainer.Style = context.GetStyle("Adaptive.Container");
            uiContainer.SetBackgroundSource(container.BackgroundImage, context);

            // Keep track of ContainerStyle.ForegroundColors before Container is rendered
            var parentRenderArgs = context.RenderArgs;
            // This is the renderArgs that will be passed down to the children
            var childRenderArgs = new AdaptiveRenderArgs(parentRenderArgs);

            Grid uiOuterContainer = new Grid();

            uiOuterContainer.Children.Add(uiContainer);
            Border border = new Border();

            border.Child = uiOuterContainer;

            RendererUtil.ApplyVerticalContentAlignment(uiContainer, container);
            RendererUtil.ApplyIsVisible(border, container);
            uiContainer.MinHeight = container.PixelMinHeight;

            bool inheritsStyleFromParent = !container.Style.HasValue;
            bool hasPadding = false;

            if (!inheritsStyleFromParent)
            {
                hasPadding = ApplyPadding(border, uiOuterContainer, container, parentRenderArgs, context);

                // Apply background color
                ContainerStyleConfig containerStyle = context.Config.ContainerStyles.GetContainerStyleConfig(container.Style);
                border.Background = context.GetColorBrush(containerStyle.BackgroundColor);

                childRenderArgs.ForegroundColors = containerStyle.ForegroundColors;
            }

            switch (container.VerticalContentAlignment)
            {
            case AdaptiveVerticalContentAlignment.Center:
                uiContainer.VerticalAlignment = VerticalAlignment.Center;
                break;

            case AdaptiveVerticalContentAlignment.Bottom:
                uiContainer.VerticalAlignment = VerticalAlignment.Bottom;
                break;

            case AdaptiveVerticalContentAlignment.Top:
            default:
                break;
            }

            if (hasPadding)
            {
                childRenderArgs.BleedDirection = BleedDirection.Both;
            }

            // Modify context outer parent style so padding necessity can be determined
            childRenderArgs.ParentStyle          = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : container.Style.Value;
            childRenderArgs.HasParentWithPadding = (hasPadding || parentRenderArgs.HasParentWithPadding);
            context.RenderArgs = childRenderArgs;

            AddContainerElements(uiContainer, container.Items, context);

            // Revert context's value to that of outside the Container
            context.RenderArgs = parentRenderArgs;

            return(RendererUtil.ApplySelectAction(border, container, context));
        }
Exemplo n.º 3
0
        private async Task Interviewcard(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            var summaries = await this.jobApplicationManager.GetUpcomingInterviews(this.userOID, DateTime.Now);

            string[]         staticdata  = { "Interview Schedule", "Hello " + turnContext.Activity.From.Name, "Here are some Interview Schedule for next 7 days" };
            var              attachments = new List <Attachment>();
            IMessageActivity replyincarousel;

            summaries?.ToList()?.ForEach(summary =>
            {
                var Interviewcard = new AdaptiveCard("1.2");
                for (int i = 0; i < 3; i++)
                {
                    Interviewcard.Body.Add(new AdaptiveTextBlock()
                    {
                        Text   = staticdata[i],
                        Weight = AdaptiveTextWeight.Bolder,
                        Size   = AdaptiveTextSize.Medium,
                    });
                }

                //Static Container
                var Staticcontainer   = new AdaptiveContainer();
                Staticcontainer.Items = new List <AdaptiveElement>()
                {
                    new AdaptiveTextBlock()
                    {
                        Text   = summary.PositionTitle,
                        Size   = AdaptiveTextSize.Large,
                        Weight = AdaptiveTextWeight.Bolder,
                        Color  = AdaptiveTextColor.Accent,
                    },
                    new AdaptiveColumnSet()
                    {
                        Columns = new List <AdaptiveColumn>()
                        {
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text = "Full Name",
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text = "Date",
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text = "Time",
                                    }
                                }
                            }
                        }
                    }
                };

                Interviewcard.Body.Add(Staticcontainer);

                //Static Container
                summary.ScheduleSummaries?.ToList()?.ForEach(scheduleData =>
                {
                    var Dynamiccontainer   = new AdaptiveContainer();
                    Dynamiccontainer.Items = new List <AdaptiveElement>()
                    {
                        new AdaptiveColumnSet()
                        {
                            Columns = new List <AdaptiveColumn>()
                            {
                                new AdaptiveColumn()
                                {
                                    Items = new List <AdaptiveElement>()
                                    {
                                        new AdaptiveTextBlock()
                                        {
                                            Text = scheduleData.CandidateName,
                                        }
                                    }
                                },
                                new AdaptiveColumn()
                                {
                                    Items = new List <AdaptiveElement>()
                                    {
                                        new AdaptiveTextBlock()
                                        {
                                            Text = scheduleData.ScheduleStartDateTime?.ToString("MM/dd/yyyy"),
                                        }
                                    }
                                },
                                new AdaptiveColumn()
                                {
                                    Items = new List <AdaptiveElement>()
                                    {
                                        new AdaptiveTextBlock()
                                        {
                                            Text = scheduleData.ScheduleStartDateTime?.ToString("h:mm tt"),
                                        }
                                    }
                                }
                            }
                        }
                    };

                    Interviewcard.Body.Add(Dynamiccontainer);
                });

                attachments.Add(convertAdaptivetoAttacment(Interviewcard));
            });

            replyincarousel = MessageFactory.Carousel(attachments);

            await turnContext.SendActivityAsync(replyincarousel, cancellationToken);
        }
Exemplo n.º 4
0
        /// <summary>
        /// This method builds the body of the response card, and helps to render the follow up prompts if the response contains any.
        /// </summary>
        /// <param name="questionsList">Question list to build the card.</param>
        /// <param name="appBaseUri">The base URI where the app is hosted.</param>
        /// <returns>A list of adaptive elements which makes up the body of the adaptive card.</returns>
        private static List <AdaptiveElement> BuildRecommendCardBody(List <string> questionsList, string appBaseUri)
        {
            var cardBodyToConstruct = new List <AdaptiveElement>()
            {
                new AdaptiveTextBlock
                {
                    Text    = Strings.RecommendMessage,
                    Wrap    = true,
                    Spacing = AdaptiveSpacing.Medium,
                },
            };

            // If there follow up prompts, then the follow up prompts will render accordingly.
            if (questionsList.Count > 0)
            {
                foreach (var item in questionsList)
                {
                    var container = new AdaptiveContainer
                    {
                        Items = new List <AdaptiveElement>()
                        {
                            new AdaptiveColumnSet
                            {
                                Columns = new List <AdaptiveColumn>()
                                {
                                    new AdaptiveColumn
                                    {
                                        Width = AdaptiveColumnWidth.Stretch,
                                        VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextBlock
                                            {
                                                Wrap = true,
                                                Text = string.Format(Strings.SelectActionItemDisplayTextFormatting, item),
                                                HorizontalAlignment = AdaptiveHorizontalAlignment.Center,
                                            },
                                        },
                                        Spacing         = AdaptiveSpacing.Padding,
                                        BackgroundImage = new AdaptiveBackgroundImage
                                        {
                                            Url = new Uri(appBaseUri + "/content/Followupicon3.3.png"),
                                            HorizontalAlignment = AdaptiveHorizontalAlignment.Left,
                                            VerticalAlignment   = AdaptiveVerticalAlignment.Center,
                                        },
                                    },
                                },
                            },
                        },
                        SelectAction = new AdaptiveSubmitAction
                        {
                            Title = item,
                            Data  = new RecommendCardPayload
                            {
                                MsTeams = new CardAction
                                {
                                    Type        = ActionTypes.MessageBack,
                                    DisplayText = item,
                                    Text        = item,
                                },
                                Question = item,
                            },
                        },
                        Separator = true,
                    };

                    cardBodyToConstruct.Add(container);
                }
            }

            cardBodyToConstruct.Add(new AdaptiveColumnSet
            {
                Separator = true,
                Columns   = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                Weight = AdaptiveTextWeight.Lighter,
                                Text   = Strings.ResponseFooterText,
                                Wrap   = true,
                            },
                        },
                    },
                },
            });

            return(cardBodyToConstruct);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Creates the stock adaptive card.
        /// </summary>
        /// <param name="facts">The facts.</param>
        /// <returns></returns>
        private Attachment CreateStockAdaptiveCard(List <AdaptiveColumn> facts, FindStockDetails stockDetails)
        {
            var card = new AdaptiveCard("1.0");

            string FactHeader  = "";
            string SearchValue = $"Garment = {stockDetails.Garment}{Environment.NewLine}";

            if (!string.IsNullOrWhiteSpace(stockDetails.Brand))
            {
                SearchValue = $"{SearchValue}Brand = {stockDetails.Brand}{Environment.NewLine}";
            }
            else
            {
                FactHeader = $"**Brand** ";
            }

            if (!string.IsNullOrWhiteSpace(stockDetails.Style))
            {
                SearchValue = $"{SearchValue}Style = {stockDetails.Style}{Environment.NewLine}";
            }
            else
            {
                FactHeader = $"{FactHeader} **Style** ";
            }

            if (!string.IsNullOrWhiteSpace(stockDetails.Color))
            {
                SearchValue = $"{SearchValue}Color = {stockDetails.Color}{Environment.NewLine}";
            }
            else
            {
                FactHeader = $"{FactHeader} **Color** ";
            }

            if (!string.IsNullOrWhiteSpace(stockDetails.Size))
            {
                SearchValue = $"{SearchValue}Size = {stockDetails.Size}{Environment.NewLine}";
            }
            else
            {
                FactHeader = $"{FactHeader} **Size**  ";
            }

            List <AdaptiveElement> adaptiveElements = new List <AdaptiveElement>()
            {
                new AdaptiveColumnSet
                {
                    Columns = new List <AdaptiveColumn>()
                    {
                        new AdaptiveColumn
                        {
                            Items = new List <AdaptiveElement>
                            {
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/chatbot/blob/master/Images/Logo.png?raw=true"),
                                    Size = AdaptiveImageSize.Small
                                },
                                new AdaptiveTextBlock
                                {
                                    Text     = "Inventory search",
                                    Spacing  = AdaptiveSpacing.Medium,
                                    Size     = AdaptiveTextSize.Default,
                                    Weight   = AdaptiveTextWeight.Bolder,
                                    Wrap     = true,
                                    MaxLines = 0
                                },
                                new AdaptiveTextBlock
                                {
                                    Text     = "Based on:" + Environment.NewLine + SearchValue + "We have the following in stock:",
                                    Size     = AdaptiveTextSize.Default,
                                    IsSubtle = true,
                                    Wrap     = true,
                                    MaxLines = 0
                                },
                                new AdaptiveColumnSet
                                {
                                    Columns = facts,
                                    Bleed   = true,
                                }
                            },
                            Separator = true
                        }
                    }
                }
            };

            AdaptiveContainer container = new AdaptiveContainer
            {
                Items = adaptiveElements
            };

            card.Body.Add(container);

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

            return(attachment);
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
0
        public static Attachment Create(string countryCode)
        {
            var adaptiveCard = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
            var container    = new AdaptiveContainer();

            container.Items.Add(new AdaptiveTextBlock
            {
                Text = "Please select your time zone",
                HorizontalAlignment = AdaptiveHorizontalAlignment.Center,
                Weight = AdaptiveTextWeight.Bolder,
                Size   = AdaptiveTextSize.Large,
            });

            var choices       = new List <AdaptiveChoice>();
            var timezones     = TZNames.GetTimeZonesForCountry(countryCode, "en-us");
            var defaultChoice = new AdaptiveChoice
            {
                Title = "Universal Co-ordinated Time",
                Value = "Etc/GMT",
            };

            if (timezones.Any())
            {
                foreach (var timezone in timezones)
                {
                    var choice = new AdaptiveChoice
                    {
                        Title = timezone.Value,
                        Value = timezone.Key,
                    };

                    choices.Add(choice);
                }
            }
            else
            {
                choices.Add(defaultChoice);
            }

            container.Items.Add(new AdaptiveChoiceSetInput
            {
                Id      = "tz",
                Style   = AdaptiveChoiceInputStyle.Compact,
                Choices = choices,
                Value   = choices.First().Value,
            });

            adaptiveCard.Body.Add(container);
            adaptiveCard.Actions.Add(new AdaptiveSubmitAction
            {
                Id    = "tz-submit",
                Title = "Submit",
                Type  = "Action.Submit",
            });

            var attachment = new Attachment
            {
                Content     = adaptiveCard,
                ContentType = "application/vnd.microsoft.card.adaptive",
            };

            return(attachment);
        }
Exemplo n.º 8
0
        private static void AddCurrentWeather(AirQuality model, AdaptiveCard card)
        {
            var headerContainer = new AdaptiveContainer();
            var header          = new AdaptiveColumnSet();

            card.Body.Add(headerContainer);
            var headerColumn = new AdaptiveColumn();
            var textHeader   = new AdaptiveTextBlock();

            textHeader.Size    = AdaptiveTextSize.Medium;
            textHeader.Weight  = AdaptiveTextWeight.Bolder;
            textHeader.Text    = "AQMD Air Quality";
            headerColumn.Width = AdaptiveColumnWidth.Stretch;
            headerColumn.Items.Add(textHeader);
            header.Columns.Add(headerColumn);
            headerContainer.Bleed = true;
            headerContainer.Style = AdaptiveContainerStyle.Default;
            headerContainer.Items.Add(header);

            var bodyContainer = new AdaptiveContainer();
            var data          = new AdaptiveFactSet();

            data.Spacing = AdaptiveSpacing.ExtraLarge;
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "Area Number", Value = model.AreaNumber.ToString()
            });
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "Area Name", Value = model.AreaName.ToString()
            });
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "AQI  Value", Value = model.AQI.ToString()
            });
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "Reading Date", Value = model.ForecastDateTime.ToString()
            });
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "AQI Category", Value = model.AQICategory.ToString()
            });
            data.Facts.Add(new AdaptiveFact()
            {
                Title = "Pollutants", Value = model.Pollutant.ToString()
            });
            bodyContainer.Items.Add(data);
            card.Body.Add(bodyContainer);
            var detailContainer = new AdaptiveContainer();

            detailContainer.Id = "details1";
            var info = new AdaptiveFactSet();

            info.Spacing = AdaptiveSpacing.ExtraLarge;
            info.Facts.Add(new AdaptiveFact()
            {
                Title = "Ozone", Value = model.Ozone.ToString()
            });
            info.Facts.Add(new AdaptiveFact()
            {
                Title = "PM 10", Value = model.PMTen.ToString()
            });
            info.Facts.Add(new AdaptiveFact()
            {
                Title = "PM 2.5", Value = model.PMTwoFive.ToString()
            });
            detailContainer.Items.Add(info);
            card.Body.Add(detailContainer);
            // body.Facts.Add(new AdaptiveFact() { Title = "Area Name", Value = model.AreaNumber.ToString() });

            //card.Actions.Add(new AdaptiveToggleVisibilityAction { Title = "Show Detail", TargetElements = new List<AdaptiveTargetElement> { "details1" } });
            //var showdetailContainer = new AdaptiveContainer();
            //var showDetailColumnSet = new AdaptiveColumnSet();
            //card.Body.Add(showdetailContainer);
            //var showDetailColumn = new AdaptiveColumn();
            //showDetailColumn.Id = "chevronDown4";
            //showDetailColumn.SelectAction.Type = "Action.ToggleVisibility";
            //showDetailColumn.SelectAction.Title = "show detail";
            //showDetailColumn.SelectAction. = "show detail";
            //var textHeader = new AdaptiveTextBlock();
            //textHeader.Size = AdaptiveTextSize.Medium;
            //textHeader.Weight = AdaptiveTextWeight.Bolder;
            //textHeader.Text = "AQMD Air Quality";
            //headerColumn.Width = AdaptiveColumnWidth.Stretch;
            //headerColumn.Items.Add(textHeader);
            //header.Columns.Add(headerColumn);
            //headerContainer.Bleed = true;
            //headerContainer.Style = AdaptiveContainerStyle.Default;
            //headerContainer.Items.Add(header);

            //card.Body.Add(headerContainer);

            //var headerColumn = new AdaptiveColumn();
            //var textHeader = new AdaptiveTextBlock();
            //textHeader.Size = AdaptiveTextSize.Medium;
            //textHeader.Weight = AdaptiveTextWeight.Bolder;
            //textHeader.Text = "AQMD Air Quality";
            //headerColumn.Width = AdaptiveColumnWidth.Auto;
            //headerColumn.Items.Add(textHeader);
            //header.Columns.Add(headerColumn);
            //headerContainer.Items.Add(header);

            //var currentContainer = new AdaptiveContainer();
            //currentContainer.Style = AdaptiveContainerStyle.Emphasis;
            //var current = new AdaptiveColumnSet();


            //card.Body.Add(currentContainer);



            //var currentColumn2 = new Column();
            //current.Columns.Add(currentColumn2);
            //currentColumn2.Size = "65";

            //string date = DateTime.Parse(model.current.last_updated).DayOfWeek.ToString();

            //AddTextBlock(currentColumn2, $"{model.location.name} ({date})", TextSize.Large, false);
            //AddTextBlock(currentColumn2, $"{model.current.temp_f.ToString().Split('.')[0]}° F", TextSize.Large);
            //AddTextBlock(currentColumn2, $"{model.current.condition.text}", TextSize.Medium);
            //AddTextBlock(currentColumn2, $"Winds {model.current.wind_mph} mph {model.current.wind_dir}", TextSize.Medium);
        }
Exemplo n.º 9
0
        private AdaptiveCard SetCard()
        {
            AdaptiveCard _card = new AdaptiveCard("1.0");

            var _container = new AdaptiveContainer();

            _container.Items.Add(new AdaptiveImage()
            {
                Url         = new Uri("http://localhost:3978/img/bot-avatar_.png"),
                Size        = AdaptiveImageSize.Stretch,
                Style       = AdaptiveImageStyle.Person,
                PixelHeight = 200,
                PixelWidth  = 200,

                HorizontalAlignment = AdaptiveHorizontalAlignment.Center,
                AltText             = "Botty"
            });


            _container.Items.Add(new AdaptiveTextBlock()
            {
                Text                = this.BotName,
                Size                = AdaptiveTextSize.Large,
                Weight              = AdaptiveTextWeight.Bolder,
                Color               = AdaptiveTextColor.Default,
                Wrap                = true,
                Spacing             = AdaptiveSpacing.Default,
                HorizontalAlignment = AdaptiveHorizontalAlignment.Center
            });


            _container.Items.Add(new AdaptiveTextBlock()
            {
                Text    = this.Title,
                Size    = AdaptiveTextSize.ExtraLarge,
                Weight  = AdaptiveTextWeight.Bolder,
                Color   = AdaptiveTextColor.Default,
                Wrap    = true,
                Spacing = AdaptiveSpacing.Default
            });

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

            _container.Items.Add(new AdaptiveTextBlock()
            {
                Text    = this.Description,
                Size    = AdaptiveTextSize.Normal,
                Weight  = AdaptiveTextWeight.Normal,
                Color   = AdaptiveTextColor.Default,
                Wrap    = true,
                Spacing = AdaptiveSpacing.Default
            });

            //GenerateActionFromOptions(this.Order);

            _card.Body.Add(_container);
            _card.Actions.AddRange(this.GetAdaptiveActions());

            return(_card);
        }
Exemplo n.º 10
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 = "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);

            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);
        }
Exemplo n.º 11
0
        // Create AdaptiveCard from ReceiptCard
        public static AdaptiveCard CreateReceiptCard(ReceiptCard card, string totalTitle = "Total", string vatTitle = "VAT", string taxTitle = "Tax", string version = "1.0")
        {
            var adaptiveCard = new AdaptiveCard();
            var body         = new AdaptiveContainer()
            {
                Items = new List <AdaptiveElement>()
            };

            // Add Title
            body.Items.AddRange(AdaptiveElementBuilder.CreateTitle(card.Title));

            // Add Receipt Fact
            if (card.Facts != null && card.Facts.Count != 0)
            {
                body.Items.AddRange(CreateReceiptFactSet(card.Facts));
            }

            // Add Separator
            body.Items.Add(CreateReceiptSeparator());

            // Add Receipt Item
            if (card.Items != null && card.Items.Count != 0)
            {
                body.Items.AddRange(CreateReceiptItems(card.Items.ToList()));
            }

            // Add Separator
            body.Items.Add(CreateReceiptSeparator());

            // Add VAT
            if (!string.IsNullOrEmpty(card.Vat))
            {
                body.Items.Add(CreateReceiptOtherInfo(vatTitle, card.Vat, "Vat"));
            }

            // Add Tax
            if (!string.IsNullOrEmpty(card.Tax))
            {
                body.Items.Add(CreateReceiptOtherInfo(taxTitle, card.Tax, "Tax"));
            }

            // Add Total
            if (!string.IsNullOrEmpty(card.Total))
            {
                body.Items.Add(CreateReceiptTotalInfo(totalTitle, card.Total));
            }

            // Set Tap Action
            if (card.Tap != null)
            {
                body.SelectAction = AdaptiveElementBuilder.CreateAction(card.Tap);
            }

            // Set Body and Actions
            adaptiveCard.Body = new List <AdaptiveElement>()
            {
                body
            };
            adaptiveCard.Actions = AdaptiveElementBuilder.CreateActions(card.Buttons);
            adaptiveCard.Version = version;

            return(adaptiveCard);
        }
Exemplo n.º 12
0
 public static HtmlTag CallContainerRender(AdaptiveContainer element, AdaptiveRenderContext context)
 {
     return(ContainerRender(element, context));
 }
Exemplo n.º 13
0
        /// <summary>
        /// Get container for team ideas.
        /// </summary>
        /// <param name="teamIdea">Team post entity object.</param>
        /// <returns>Return a container for team ideas.</returns>
        private AdaptiveContainer GetPostTypeContainer(IdeaEntity teamIdea)
        {
            string applicationBasePath = this.options.Value.AppBaseUri;

            var postTypeContainer = new AdaptiveContainer
            {
                Items = new List <AdaptiveElement>
                {
                    new AdaptiveColumnSet
                    {
                        Columns = new List <AdaptiveColumn>
                        {
                            new AdaptiveColumn
                            {
                                Width = AdaptiveColumnWidth.Auto,
                                VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                Items = new List <AdaptiveElement>
                                {
                                    new AdaptiveTextBlock
                                    {
                                        Text = $"**{this.localizer.GetString("IdeatorLabelText")}:**",
                                        Wrap = true,
                                    },
                                },
                                Spacing = AdaptiveSpacing.Small,
                            },
                            new AdaptiveColumn
                            {
                                Width = AdaptiveColumnWidth.Auto,
                                Items = new List <AdaptiveElement>
                                {
                                    new AdaptiveImage
                                    {
                                        Url     = new Uri($"{applicationBasePath}/Artifacts/peopleAvatar.png"),
                                        Size    = AdaptiveImageSize.Auto,
                                        Style   = AdaptiveImageStyle.Person,
                                        AltText = "User Image",
                                    },
                                },
                                Spacing = AdaptiveSpacing.Small,
                            },
                            new AdaptiveColumn
                            {
                                Width = AdaptiveColumnWidth.Stretch,
                                VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                Items = new List <AdaptiveElement>
                                {
                                    new AdaptiveTextBlock
                                    {
                                        Text = teamIdea.CreatedByName.Length > AdaptiveCardUserNameMaxCharacterLength ? $"{teamIdea.CreatedByName.Substring(0, AdaptiveCardUserNameMaxCharacterLength - 1)} ..." : teamIdea.CreatedByName,
                                        Wrap = true,
                                    },
                                },
                                Spacing = AdaptiveSpacing.Small,
                            },
                            new AdaptiveColumn
                            {
                                Width = AdaptiveColumnWidth.Auto,
                                VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                Items = new List <AdaptiveElement>
                                {
                                    new AdaptiveTextBlock
                                    {
                                        Text = $"{teamIdea.TotalVotes} ",
                                        Wrap = true,
                                    },
                                },
                                Spacing = AdaptiveSpacing.Small,
                            },
                            new AdaptiveColumn
                            {
                                Width = AdaptiveColumnWidth.Auto,
                                VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                Items = new List <AdaptiveElement>
                                {
                                    new AdaptiveImage
                                    {
                                        Url         = new Uri($"{applicationBasePath}/Artifacts/voteIcon.png"),
                                        PixelWidth  = VoteIconWidth,
                                        PixelHeight = VoteIconHeight,
                                        Style       = AdaptiveImageStyle.Default,
                                    },
                                },
                                Spacing = AdaptiveSpacing.Small,
                            },
                        },
                    },
                },
            };

            return(postTypeContainer);
        }
Exemplo n.º 14
0
 /// <summary>
 /// 為AdaptiveCard新增AdaptiveColumnSet
 /// </summary>
 /// <param name="container">要被加入元素的AdaptiveContainer</param>
 /// <param name="row">即將加入的AdaptiveColumnSet</param>
 /// <returns>原先的AdaptiveContainer</returns>
 public static AdaptiveContainer AddRow(this AdaptiveContainer container, AdaptiveColumnSet row)
 {
     container.Items.Add(row);
     return(container);
 }
        private IMessageActivity CreateAdaptiveCard(IDialogContext context, Response viewBalanceResponse, string personalHours, string vacationHours, string sickHours)
        {
            var          message = context.MakeMessage();
            AdaptiveCard card    = new AdaptiveCard("1.0");

            var container = new AdaptiveContainer();
            var items     = new List <AdaptiveElement>();

            var title = new AdaptiveTextBlock
            {
                Size   = AdaptiveTextSize.Medium,
                Weight = AdaptiveTextWeight.Bolder,
                Text   = KronosResourceText.VacationBalanceCardTitleText,
            };

            var subTitle = new AdaptiveTextBlock
            {
                Text = $"{KronosResourceText.VacationBalanceCardSubtitleText} {context.Activity.LocalTimestamp.Value.DateTime.ToString("MMM d, yyyy", CultureInfo.InvariantCulture)}",
                Wrap = true,
            };

            var balanceColumnSet = new AdaptiveColumnSet
            {
                Columns = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                Text     = KronosResourceText.VacationBalanceCardAvailableText,
                                IsSubtle = true,
                            },
                        },
                        Width = "stretch",
                    },
                },
            };

            items.Add(title);
            items.Add(subTitle);
            items.Add(balanceColumnSet);
            container.Items = items;

            var personalColumnSet = new AdaptiveColumnSet
            {
                Separator = true,
                Columns   = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                Text = KronosResourceText.VacationBalanceCardPersonalLabel,
                            },
                        },
                        Width = "stretch",
                    },
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                Text = personalHours,
                            },
                        },
                        Width = "stretch",
                    },
                },
            };

            var vacationColumnSet = new AdaptiveColumnSet
            {
                Separator = true,
                Columns   = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                Text = KronosResourceText.VacationBalanceCodeVacation,
                            },
                        },
                        Width = "stretch",
                    },
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                Text = vacationHours,
                            },
                        },
                        Width = "stretch",
                    },
                },
            };

            var sickColumnSet = new AdaptiveColumnSet
            {
                Separator = true,
                Columns   = new List <AdaptiveColumn>
                {
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                Text = KronosResourceText.VacationBalanceCardSCKLabel,
                            },
                        },
                        Width = "stretch",
                    },
                    new AdaptiveColumn
                    {
                        Items = new List <AdaptiveElement>
                        {
                            new AdaptiveTextBlock
                            {
                                HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                Text = sickHours,
                            },
                        },
                        Width = "stretch",
                    },
                },
            };

            card.Body.Add(container);
            card.Body.Add(personalColumnSet);
            card.Body.Add(vacationColumnSet);
            card.Body.Add(sickColumnSet);

            if (!string.IsNullOrEmpty(personalHours))
            {
                card.Actions.Add(
                    new AdaptiveShowCardAction()
                {
                    Title = KronosResourceText.VacationBalanceCardPersonalLabel,
                    Card  = this.ShowDetailsCard(context, viewBalanceResponse, "Personal"),
                });
            }

            if (!string.IsNullOrEmpty(vacationHours))
            {
                card.Actions.Add(
                    new AdaptiveShowCardAction()
                {
                    Title = KronosResourceText.VacationBalanceCodeVacation,
                    Card  = this.ShowDetailsCard(context, viewBalanceResponse, "Vacation"),
                });
            }

            if (!string.IsNullOrEmpty(sickHours))
            {
                card.Actions.Add(
                    new AdaptiveShowCardAction()
                {
                    Title = KronosResourceText.VacationBalanceCardSCKLabel,
                    Card  = this.ShowDetailsCard(context, viewBalanceResponse, "Sick"),
                });
            }

            if (message.Attachments == null)
            {
                message.Attachments = new List <Attachment>();
            }

            message.Attachments.Add(new Attachment()
            {
                Content     = card,
                ContentType = "application/vnd.microsoft.card.adaptive",
                Name        = "Show Vacation Balance",
            });

            return(message);
        }
Exemplo n.º 16
0
        public async Task <string> GetGenerated()
        {
            var card = new AdaptiveCard("1.1");

            var container = new AdaptiveContainer();
            var colSet    = new AdaptiveColumnSet();

            var column = new AdaptiveColumn();
            var image  = new AdaptiveImage()
            {
                Style = AdaptiveImageStyle.Person,
                Url   = new Uri("https://www.google.de")
            };

            column.Items.Add(image);


            column = new AdaptiveColumn();
            var textBlock = new AdaptiveTextBlock("Updated his Status")
            {
                Weight = AdaptiveTextWeight.Bolder,
                Wrap   = true
            };

            column.Items.Add(image);
            colSet.Columns.Add(column);

            column    = new AdaptiveColumn();
            textBlock = new AdaptiveTextBlock("Updated his Status")
            {
                Spacing = AdaptiveSpacing.None,
                Weight  = AdaptiveTextWeight.Bolder,
                Wrap    = true
            };
            column.Items.Add(image);
            column.Items.Add(textBlock);
            colSet.Columns.Add(column);

            container.Items.Add(colSet);
            card.Body.Add(colSet);


            container = new AdaptiveContainer();
            colSet    = new AdaptiveColumnSet();


            column = new AdaptiveColumn();
            image  = new AdaptiveImage()
            {
                HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                Url = new Uri("https://www.google.de"),
            };
            column.Items.Add(image);


            column    = new AdaptiveColumn();
            textBlock = new AdaptiveTextBlock("Status Message")
            {
                Weight = AdaptiveTextWeight.Bolder,
                Wrap   = true
            };
            column.Items.Add(image);
            column.Items.Add(textBlock);
            colSet.Columns.Add(column);

            column    = new AdaptiveColumn();
            textBlock = new AdaptiveTextBlock("Updated his Status")
            {
                Spacing = AdaptiveSpacing.None,
                Weight  = AdaptiveTextWeight.Bolder,
                Wrap    = true
            };
            column.Items.Add(image);
            colSet.Columns.Add(column);

            container.Items.Add(colSet);
            card.Body.Add(colSet);


            var returndata = JsonConvert.SerializeObject(card);

            return(returndata);
        }
Exemplo n.º 17
0
        /// <summary>
        /// This method builds the body of the response card, and helps to render the follow up prompts if the response contains any.
        /// </summary>
        /// <param name="response">The QnA response model.</param>
        /// /// <param name="userQuestion">The user question - the actual question asked to the bot.</param>
        /// <param name="answer">The answer string.</param>
        /// <param name="appBaseUri">The base URI where the app is hosted.</param>
        /// <param name="payload">The response card payload.</param>
        /// <param name="isRichCard">Boolean value where true represent it is a rich card while false represent it is a normal card.</param>
        /// <returns>A list of adaptive elements which makes up the body of the adaptive card.</returns>
        private static List <AdaptiveElement> BuildResponseCardBody(QnASearchResult response, string userQuestion, string answer, string appBaseUri, ResponseCardPayload payload, bool isRichCard)
        {
            var answerModel = isRichCard ? JsonConvert.DeserializeObject <AnswerModel>(response?.Answer) : new AnswerModel();

            var cardBodyToConstruct = new List <AdaptiveElement>()
            {
                new AdaptiveTextBlock
                {
                    Weight = AdaptiveTextWeight.Bolder,
                    Text   = Strings.ResponseHeaderText,
                    Wrap   = true,
                },
                new AdaptiveTextBlock
                {
                    Size      = AdaptiveTextSize.Default,
                    Wrap      = true,
                    Text      = response?.Questions[0],
                    IsVisible = isRichCard,
                },
                new AdaptiveTextBlock
                {
                    Wrap   = true,
                    Text   = answerModel.Title ?? string.Empty,
                    Size   = AdaptiveTextSize.Large,
                    Weight = AdaptiveTextWeight.Bolder,
                },
                new AdaptiveTextBlock
                {
                    Text = answerModel.Subtitle ?? string.Empty,
                    Size = AdaptiveTextSize.Medium,
                },
            };

            if (!string.IsNullOrWhiteSpace(answerModel?.ImageUrl))
            {
                cardBodyToConstruct.Add(new AdaptiveImage
                {
                    Url       = new Uri(answerModel.ImageUrl.Trim()),
                    Size      = AdaptiveImageSize.Auto,
                    Style     = AdaptiveImageStyle.Default,
                    AltText   = answerModel.Title,
                    IsVisible = isRichCard,
                });
            }

            cardBodyToConstruct.Add(new AdaptiveTextBlock
            {
                Text    = answer,
                Wrap    = true,
                Size    = isRichCard ? AdaptiveTextSize.Small : AdaptiveTextSize.Default,
                Spacing = AdaptiveSpacing.Medium,
            });

            // If there follow up prompts, then the follow up prompts will render accordingly.
            if (response?.Context.Prompts.Count > 0)
            {
                List <QnADTO> previousQuestions = BuildListOfPreviousQuestions((int)response.Id, userQuestion, answer, payload);

                foreach (var item in response.Context.Prompts)
                {
                    var container = new AdaptiveContainer
                    {
                        Items = new List <AdaptiveElement>()
                        {
                            new AdaptiveColumnSet
                            {
                                Columns = new List <AdaptiveColumn>()
                                {
                                    // This column will be for the icon.
                                    new AdaptiveColumn
                                    {
                                        Width = AdaptiveColumnWidth.Auto,
                                        VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveImage
                                            {
                                                Url         = new Uri(appBaseUri + "/content/Followupicon.png"),
                                                PixelWidth  = IconWidth,
                                                PixelHeight = IconHeight,
                                            },
                                        },
                                        Spacing = AdaptiveSpacing.Small,
                                    },
                                    new AdaptiveColumn
                                    {
                                        Width = AdaptiveColumnWidth.Stretch,
                                        VerticalContentAlignment = AdaptiveVerticalContentAlignment.Center,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextBlock
                                            {
                                                Wrap = true,
                                                Text = string.Format(Strings.SelectActionItemDisplayTextFormatting, item.DisplayText?.Trim()),
                                            },
                                        },
                                        Spacing = AdaptiveSpacing.Small,
                                    },
                                },
                            },
                        },
                        SelectAction = new AdaptiveSubmitAction
                        {
                            Title = item.DisplayText,
                            Data  = new ResponseCardPayload
                            {
                                MsTeams = new CardAction
                                {
                                    Type        = ActionTypes.MessageBack,
                                    DisplayText = item.DisplayText,
                                    Text        = item.DisplayText,
                                },
                                PreviousQuestions = previousQuestions,
                                IsPrompt          = true,
                            },
                        },
                        Separator = true,
                    };

                    cardBodyToConstruct.Add(container);
                }
            }

            return(cardBodyToConstruct);
        }
Exemplo n.º 18
0
        public AdaptiveCard ToCard()
        {
            AdaptiveCard json           = new AdaptiveCard();
            var          monthContainer = new AdaptiveContainer();

            monthContainer.Style = AdaptiveContainerStyle.Default;
            monthContainer.Items.Add(new AdaptiveTextBlock()
            {
                Text   = this.monthName + " →",
                Weight = AdaptiveTextWeight.Bolder
            });
            var submitJson = JsonConvert.SerializeObject(new { PreviousDate = this.firstDay });

            monthContainer.SelectAction = new AdaptiveSubmitAction()
            {
                DataJson = submitJson
            };
            json.Body.Add(monthContainer);
            json.Body.Add(new AdaptiveColumnSet());
            AdaptiveColumnSet columnSet = (AdaptiveColumnSet)json.Body[1];

            for (int cols = 0; cols < 7; cols++)
            {
                columnSet.Columns.Add(new AdaptiveColumn());
                for (int rows = 0; rows < 7; rows++)
                {
                    var row = new AdaptiveTextBlock();

                    if (rows == 0)
                    {
                        columnSet.Columns[cols].Items.Add(row);

                        row.Text   = abbreviatedDayNames[cols];
                        row.Weight = AdaptiveTextWeight.Bolder;
                    }
                    else
                    {
                        var day = days[(rows - 1) * 7 + cols];

                        row.Text = day.Date.Day.ToString();

                        if (day.Status == Day.CalendarStatus.Proposed)
                        {
                            columnSet.Columns[cols].Items.Add(row);
                            row.Color = AdaptiveTextColor.Accent;
                        }
                        else if (day.Status == Day.CalendarStatus.Unavailable)
                        {
                            columnSet.Columns[cols].Items.Add(row);
                            row.Color = AdaptiveTextColor.Warning;
                        }
                        else if (day.Status == Day.CalendarStatus.Available)
                        {
                            var container = new AdaptiveContainer();
                            container.Style = AdaptiveContainerStyle.Default;
                            container.Items.Add(row);

                            columnSet.Columns[cols].Items.Add(container);
                            container.SelectAction = new AdaptiveSubmitAction()
                            {
                                DataJson = JsonConvert.SerializeObject(new { scheduleDate = day.Date })
                            };
                            //row.Color = AdaptiveTextColor.Good;
                        }
                    }
                }
            }
            return(json);
        }
Exemplo n.º 19
0
        protected Attachment ToAdaptiveCardForOtherFlows(
            List <TaskItem> todos,
            int allTaskCount,
            string taskContent,
            BotResponse botResponse1,
            BotResponse botResponse2)
        {
            var toDoCard = new AdaptiveCard();
            var showText = Format(botResponse2.Reply.Text, new StringDictionary()
            {
                { "taskCount", allTaskCount.ToString() }
            });
            var speakText = Format(botResponse1.Reply.Speak, new StringDictionary()
            {
                { "taskContent", taskContent }
            })
                            + Format(botResponse2.Reply.Speak, new StringDictionary()
            {
                { "taskCount", allTaskCount.ToString() }
            });

            toDoCard.Speak = speakText;

            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);
        }
        /// <summary>
        /// updated answer card.
        /// </summary>
        /// <param name="question">question.</param>
        /// <param name="answer">answer.</param>
        /// <param name="editedBy">editedby.</param>
        /// <param name="isTest">boolean environment.</param>
        /// <returns>attachment.</returns>
        public Attachment AddedAnswer(string question, string answer, string editedBy, bool isTest)
        {
            if (!string.IsNullOrWhiteSpace(answer))
            {
                answer = answer.Equals(Constants.Unanswered) ? string.Empty : answer;
            }

            AdaptiveCard card      = new AdaptiveCard("1.0");
            var          container = new AdaptiveContainer()
            {
                Items = new List <AdaptiveElement>
                {
                    new AdaptiveTextBlock
                    {
                        Size = AdaptiveTextSize.Default,
                        Wrap = true,
                        Text = $"**{Strings.QuestionTitle}:** {question}",
                    },
                    new AdaptiveTextBlock
                    {
                        Size = AdaptiveTextSize.Default,
                        Wrap = true,
                        Text = string.IsNullOrWhiteSpace(answer) ? answer : $"**{Strings.AnswerTitle}:** {answer}",
                    },
                    new AdaptiveTextBlock
                    {
                        Size = AdaptiveTextSize.Small,
                        Wrap = true,
                        Text = string.Format(Strings.LastEdited, editedBy),
                    },
                },
            };

            if (isTest)
            {
                container.Items.Add(new AdaptiveTextBlock
                {
                    Size = AdaptiveTextSize.Small,
                    Wrap = true,
                    Text = Strings.WaitMessageAnswer,
                });
            }

            card.Body.Add(container);

            card.Actions.Add(
                new AdaptiveShowCardAction()
            {
                Title = Strings.UpdateEntryTitle,
                Card  = this.UpdateEntry(question, answer),
            });

            card.Actions.Add(
                new AdaptiveShowCardAction()
            {
                Title = Strings.DeleteEntryTitle,
                Card  = this.DeleteEntry(question),
            });

            var adaptiveCardAttachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = card,
            };

            return(adaptiveCardAttachment);
        }
Exemplo n.º 21
0
        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);
        }
        /// <summary>
        /// Add question card task module.
        /// </summary>
        /// <param name="isValid">validation flag.</param>
        /// <returns>card.</returns>
        public Attachment AddQuestionActionCard(bool isValid)
        {
            AdaptiveCard card      = new AdaptiveCard("1.0");
            var          container = new AdaptiveContainer()
            {
                Items = new List <AdaptiveElement>
                {
                    new AdaptiveTextBlock
                    {
                        Text = Strings.QuestionTitle,
                        Size = AdaptiveTextSize.Small,
                    },
                    new AdaptiveTextInput
                    {
                        Id          = "question",
                        Placeholder = Strings.PlaceholderQuestion,
                        MaxLength   = QuestionMaxInputLength,
                        Style       = AdaptiveTextInputStyle.Text,
                    },
                    new AdaptiveTextBlock
                    {
                        Text = Strings.AnswerTitle,
                        Size = AdaptiveTextSize.Small,
                    },
                    new AdaptiveTextInput
                    {
                        Id          = "answer",
                        Placeholder = Strings.PlaceholderAnswer,
                        IsMultiline = true,
                        MaxLength   = AnswerMaxInputLength,
                        Style       = AdaptiveTextInputStyle.Text,
                    },
                },
            };

            if (!isValid)
            {
                container.Items.Add(new AdaptiveTextBlock
                {
                    Text  = Strings.EmptyQnaValidation,
                    Size  = AdaptiveTextSize.Small,
                    Color = AdaptiveTextColor.Attention,
                });
            }

            card.Body.Add(container);

            card.Actions.Add(
                new AdaptiveSubmitAction()
            {
                Title = Strings.SubmitTitle,
            });

            var adaptiveCardAttachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = card,
            };

            return(adaptiveCardAttachment);
        }
Exemplo n.º 23
0
        /// <summary>
        /// Gets add note card on task module through bot command or button click.
        /// </summary>
        /// <param name="personalGoalNoteDetail">Holds personal goal note detail entity data.</param>
        /// <param name="personalGoalDetail">Holds collection of personal goal detail entity data.</param>
        /// <param name="localizer">The current cultures' string localizer.</param>
        /// <param name="isNoteEmpty">Determines whether note is empty.</param>
        /// /// <param name="isPersonalGoalEmpty">Determines whether personal goal is empty.</param>
        /// <param name="isNoteCountExceedsTen">Determines whether note count exceeds ten.</param>
        /// <returns>Returns an attachment of card.</returns>
        public static Attachment GetAddNoteCardInTaskModule(PersonalGoalNoteDetail personalGoalNoteDetail, IEnumerable <PersonalGoalDetail> personalGoalDetail, IStringLocalizer <Strings> localizer, bool isNoteEmpty = false, bool isPersonalGoalEmpty = false, bool isNoteCountExceedsTen = false)
        {
            personalGoalDetail = personalGoalDetail ?? throw new ArgumentNullException(nameof(personalGoalDetail));

            List <AdaptiveChoice> personalGoalList = new List <AdaptiveChoice>();

            foreach (var personalGoal in personalGoalDetail)
            {
                string truncatedGoalName = personalGoal.GoalName.Length <= TruncateThresholdLength ? personalGoal.GoalName : personalGoal.GoalName.Substring(0, 80) + "...";
                personalGoalList.Add(new AdaptiveChoice {
                    Title = truncatedGoalName, Value = personalGoal.PersonalGoalId,
                });
            }

            AdaptiveCard addNoteCard = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
            {
                var container = new AdaptiveContainer()
                {
                    PixelMinHeight = NotesCardContainerHeight,
                    Items          = new List <AdaptiveElement>
                    {
                        new AdaptiveColumnSet
                        {
                            Columns = new List <AdaptiveColumn>
                            {
                                new AdaptiveColumn
                                {
                                    Width = AdaptiveColumnWidth.Stretch,
                                    Items = new List <AdaptiveElement>
                                    {
                                        new AdaptiveTextBlock
                                        {
                                            Size    = AdaptiveTextSize.Medium,
                                            Wrap    = true,
                                            Text    = localizer.GetString("GoalBucketText"),
                                            Spacing = AdaptiveSpacing.None,
                                        },
                                    },
                                },
                                new AdaptiveColumn
                                {
                                    Width = AdaptiveColumnWidth.Auto,
                                    Items = new List <AdaptiveElement>
                                    {
                                        new AdaptiveTextBlock
                                        {
                                            Size = AdaptiveTextSize.Medium,
                                            Wrap = true,
                                            Text = localizer.GetString("AddNoteEmptyGoalError"),
                                            HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                            Color     = AdaptiveTextColor.Attention,
                                            IsVisible = isPersonalGoalEmpty,
                                        },
                                    },
                                },
                                new AdaptiveColumn
                                {
                                    Width = AdaptiveColumnWidth.Auto,
                                    Items = new List <AdaptiveElement>
                                    {
                                        new AdaptiveTextBlock
                                        {
                                            Size = AdaptiveTextSize.Medium,
                                            HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                            Color     = AdaptiveTextColor.Attention,
                                            Text      = localizer.GetString("AddNoteMaximumNoteError"),
                                            IsVisible = isNoteCountExceedsTen,
                                            Wrap      = true,
                                        },
                                    },
                                },
                            },
                        },
                        new AdaptiveChoiceSetInput
                        {
                            Value         = personalGoalNoteDetail?.PersonalGoalId,
                            Choices       = personalGoalList,
                            IsMultiSelect = false,
                            Id            = "personalgoalid",
                            Style         = AdaptiveChoiceInputStyle.Compact,
                        },
                        new AdaptiveColumnSet
                        {
                            Columns = new List <AdaptiveColumn>
                            {
                                new AdaptiveColumn
                                {
                                    Width = AdaptiveColumnWidth.Stretch,
                                    Items = new List <AdaptiveElement>
                                    {
                                        new AdaptiveTextBlock
                                        {
                                            Size    = AdaptiveTextSize.Medium,
                                            Text    = localizer.GetString("NoteText"),
                                            Spacing = AdaptiveSpacing.None,
                                        },
                                    },
                                },
                                new AdaptiveColumn
                                {
                                    Width = AdaptiveColumnWidth.Auto,
                                    Items = new List <AdaptiveElement>
                                    {
                                        new AdaptiveTextBlock
                                        {
                                            Size = AdaptiveTextSize.Medium,
                                            Wrap = true,
                                            Text = localizer.GetString("AddNoteEmptyNoteError"),
                                            HorizontalAlignment = AdaptiveHorizontalAlignment.Right,
                                            Color     = AdaptiveTextColor.Attention,
                                            IsVisible = isNoteEmpty,
                                        },
                                    },
                                },
                            },
                        },
                        new AdaptiveTextInput
                        {
                            Spacing     = AdaptiveSpacing.Small,
                            Id          = "personalgoalnotedescription",
                            MaxLength   = NotesInputMaximumLength,
                            IsMultiline = true,
                            Placeholder = localizer.GetString("AddNotePlaceHolder"),
                            Value       = personalGoalNoteDetail?.PersonalGoalNoteDescription,
                        },
                        new AdaptiveTextBlock
                        {
                            Text = localizer.GetString("SourceText"),
                            HorizontalAlignment = AdaptiveHorizontalAlignment.Left,
                            Wrap = true,
                        },
                        new AdaptiveTextInput
                        {
                            Spacing     = AdaptiveSpacing.Small,
                            Id          = "sourcename",
                            MaxLength   = SourceInputMaximumLength,
                            Placeholder = localizer.GetString("SourceNamePlaceHolder"),
                            Value       = personalGoalNoteDetail?.SourceName,
                        },
                    },
                };
                addNoteCard.Body.Add(container);

                addNoteCard.Actions = new List <AdaptiveAction>
                {
                    new AdaptiveSubmitAction
                    {
                        Title = localizer.GetString("SubmitActionText"),
                        Data  = new AdaptiveSubmitActionData
                        {
                            MsTeams = new CardAction
                            {
                                Type = Constants.TaskModuleSubmitType,
                            },
                            AdaptiveActionType = Constants.AddNoteCommand,
                            GoalNoteId         = personalGoalNoteDetail.PersonalGoalNoteId,
                        },
                    },
                };

                return(new Attachment
                {
                    ContentType = AdaptiveCard.ContentType,
                    Content = addNoteCard,
                });
            }
        }
Exemplo n.º 24
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);
        }
Exemplo n.º 25
0
        /// <summary>
        /// Creates the brand adaptive card.
        /// </summary>
        /// <returns></returns>
        private Attachment CreateBrandAdaptiveCard()
        {
            var card = new AdaptiveCard("1.0");
            List <AdaptiveElement> adaptiveElements = new List <AdaptiveElement>()
            {
                new AdaptiveColumnSet
                {
                    Columns = new List <AdaptiveColumn>()
                    {
                        new AdaptiveColumn
                        {
                            Items = new List <AdaptiveElement>
                            {
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/sterns.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/the_fix.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/hi.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/g-star-raw.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                            },
                            Separator = true
                        },
                        new AdaptiveColumn
                        {
                            Items = new List <AdaptiveElement>
                            {
                                //new AdaptiveImage
                                //{
                                //    Url = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/american-swiss.jpg?raw=true"),
                                //    Size = AdaptiveImageSize.Large
                                //},
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/at_home.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                //new AdaptiveImage
                                //{
                                //    Url = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/charles_keith.png?raw=true"),
                                //    Size = AdaptiveImageSize.Large
                                //},
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/donna.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/mat_may.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/soda_bloc.png?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                            },
                            Separator = true
                        },
                        new AdaptiveColumn
                        {
                            Items = new List <AdaptiveElement>
                            {
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/markham.jpg?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/fabiani.jpg?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/sportscene.jpg?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/Foschini.jpg?raw=true"),
                                    Size = AdaptiveImageSize.Large
                                },
                                //new AdaptiveImage
                                //{
                                //    Url = new Uri("https://github.com/enablers104/LiRi/blob/master/Images/totalsports_bw.png?raw=true"),
                                //    Size = AdaptiveImageSize.Large
                                //},
                            },
                            Separator = true
                        }
                    }
                }
            };

            AdaptiveContainer container = new AdaptiveContainer
            {
                Items = adaptiveElements
            };

            card.Body.Add(container);

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

            return(attachment);
        }
Exemplo n.º 26
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 = "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.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);
        }
Exemplo n.º 27
0
        private async Task SendApplicationsSummaryCard(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            var jobOpeningSummaries = await this.jobApplicationQuery.GetActiveJobApplications("24c4e3d5-821b-4b24-8be7-eaf530706f1d");

            string[] summaryNames = { "Total Applications", "Dispositioned Applications", "Applications In Review", "Interview Applications", "Applications in Assessment" };

            IMessageActivity replyincarousel;
            var attachments = new List <Attachment>();

            jobOpeningSummaries?.ForEach(jo =>
            {
                var card = new AdaptiveCard("1.2");

                card.Body.Add(new AdaptiveTextBlock()
                {
                    Text   = jo.ExternalJobOpeningID + ": " + jo.PositionTitle,
                    Size   = AdaptiveTextSize.ExtraLarge,
                    Color  = AdaptiveTextColor.Accent,
                    Weight = AdaptiveTextWeight.Bolder,
                });

                card.Body.Add(new AdaptiveTextBlock()
                {
                    Text   = "Summary",
                    Size   = AdaptiveTextSize.Medium,
                    Weight = AdaptiveTextWeight.Bolder,
                });

                string[] summarydata = { jo.TotalApplications.ToString(), jo.DispositionedApplications.ToString(), jo.ReviewApplications?.Count.ToString(), jo.InterviewApplications.ToString(), jo.AssessmentApplications.ToString() };

                for (int i = 0; i < summaryNames.Length; i++)
                {
                    List <AdaptiveElement> AdaptiveStaticElement = new List <AdaptiveElement>
                    {
                        new AdaptiveColumnSet()
                        {
                            Columns = new List <AdaptiveColumn>()
                            {
                                new AdaptiveColumn()
                                {
                                    Items = new List <AdaptiveElement>()
                                    {
                                        new AdaptiveTextBlock()
                                        {
                                            Text      = summaryNames[i],
                                            Weight    = AdaptiveTextWeight.Bolder,
                                            Separator = true,
                                            Size      = AdaptiveTextSize.Small,
                                            Wrap      = true,
                                        }
                                    }
                                },
                                new AdaptiveColumn()
                                {
                                    Items = new List <AdaptiveElement>()
                                    {
                                        new AdaptiveTextBlock()
                                        {
                                            Text      = summarydata[i],
                                            Weight    = AdaptiveTextWeight.Bolder,
                                            Separator = true,
                                            Size      = AdaptiveTextSize.Small,
                                        }
                                    }
                                }
                            }
                        }
                    };

                    AdaptiveContainer adaptiveStaticContainer = new AdaptiveContainer();

                    adaptiveStaticContainer.Items = AdaptiveStaticElement;
                    card.Body.Add(adaptiveStaticContainer);
                }


                //  var subcard = new AdaptiveCard("1.2");

                card.Body.Add(new AdaptiveTextBlock()
                {
                    Text  = "Applications For Review",
                    Size  = AdaptiveTextSize.ExtraLarge,
                    Color = AdaptiveTextColor.Accent,
                });

                List <AdaptiveElement> AdaptiveStaticElement1 = new List <AdaptiveElement>
                {
                    new AdaptiveColumnSet()
                    {
                        Columns = new List <AdaptiveColumn>()
                        {
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text      = "Cadidate Name",
                                        Weight    = AdaptiveTextWeight.Bolder,
                                        Separator = true,
                                        Size      = AdaptiveTextSize.Small,
                                        Wrap      = true,
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text      = "Email",
                                        Weight    = AdaptiveTextWeight.Bolder,
                                        Separator = true,
                                        Size      = AdaptiveTextSize.Small,
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                // Width=AdaptiveColumnWidth.Auto,
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text      = "Resume",
                                        Weight    = AdaptiveTextWeight.Bolder,
                                        Separator = true,
                                        Size      = AdaptiveTextSize.Small,
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                //  Width=AdaptiveColumnWidth.Auto,
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text      = "Current Stage",
                                        Weight    = AdaptiveTextWeight.Bolder,
                                        Separator = true,
                                        Size      = AdaptiveTextSize.Small,
                                        Wrap      = true,
                                    }
                                }
                            },
                            new AdaptiveColumn()
                            {
                                Items = new List <AdaptiveElement>()
                                {
                                    new AdaptiveTextBlock()
                                    {
                                        Text      = "",
                                        Weight    = AdaptiveTextWeight.Bolder,
                                        Separator = true,
                                        Size      = AdaptiveTextSize.Small,
                                    }
                                }
                            }
                        }
                    }
                };
                AdaptiveContainer adaptiveStaticContainer1 = new AdaptiveContainer();

                adaptiveStaticContainer1.Items = AdaptiveStaticElement1;
                card.Body.Add(adaptiveStaticContainer1);
                card.Actions.Add(new AdaptiveSubmitAction()
                {
                    Title = "<",
                });

                card.Actions.Add(new AdaptiveSubmitAction()
                {
                    Title = ">",
                });

                int reviewApplicationCount = 0;
                jo.ReviewApplications?.ForEach((reviewApplication) =>
                {
                    {
                        List <AdaptiveElement> AdaptiveDynamicElements = new List <AdaptiveElement>
                        {
                            new AdaptiveColumnSet()
                            {
                                Columns = new List <AdaptiveColumn>()
                                {
                                    new AdaptiveColumn()
                                    {
                                        Width = AdaptiveColumnWidth.Stretch,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextBlock()
                                            {
                                                Text      = reviewApplication.Candidate?.FullName?.GivenName + " " + reviewApplication.Candidate?.FullName?.Surname,
                                                Weight    = AdaptiveTextWeight.Lighter,
                                                Separator = true,
                                                Size      = AdaptiveTextSize.Small,
                                            }
                                        }
                                    },
                                    new AdaptiveColumn()
                                    {
                                        Width = AdaptiveColumnWidth.Stretch,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextBlock()
                                            {
                                                Text      = "[" + reviewApplication.Candidate?.EmailPrimary + "]" + "(https://docs.microsoft.com/en-us/adaptive-cards/templating/)", //"[[email protected]](https://docs.microsoft.com/en-us/adaptive-cards/templating/)",
                                                Weight    = AdaptiveTextWeight.Lighter,
                                                Separator = true,
                                                Size      = AdaptiveTextSize.Small,
                                            }
                                        },
                                    },
                                    new AdaptiveColumn()
                                    {
                                        Width = AdaptiveColumnWidth.Auto,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveActionSet()
                                            {
                                                Actions = new List <AdaptiveAction>()
                                                {
                                                    new AdaptiveSubmitAction()
                                                    {
                                                        Title = "Open",

                                                        Data = new JObject {
                                                            { "Action", "Resume" }
                                                        },
                                                    }
                                                }
                                            }
                                        },
                                    },
                                    new AdaptiveColumn()
                                    {
                                        Width = AdaptiveColumnWidth.Stretch,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextBlock()
                                            {
                                                Text      = reviewApplication.CurrentJobOpeningStage.ToString(),
                                                Weight    = AdaptiveTextWeight.Lighter,
                                                Separator = true,
                                                Size      = AdaptiveTextSize.Small,
                                            }
                                        }
                                    },
                                    new AdaptiveColumn()
                                    {
                                        Width = AdaptiveColumnWidth.Auto,
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveActionSet()
                                            {
                                                Actions = new List <AdaptiveAction>()
                                                {
                                                    new AdaptiveToggleVisibilityAction()
                                                    {
                                                        Title          = "v",
                                                        Type           = AdaptiveToggleVisibilityAction.TypeName,
                                                        TargetElements = new List <AdaptiveTargetElement>()
                                                        {
                                                            new AdaptiveTargetElement()
                                                            {
                                                                ElementId = reviewApplicationCount.ToString()
                                                            },
                                                            new AdaptiveTargetElement()
                                                            {
                                                                ElementId = "fullname",
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        };
                        AdaptiveContainer adaptiveDynamicContainer = new AdaptiveContainer();
                        adaptiveDynamicContainer.Items             = AdaptiveDynamicElements;


                        List <AdaptiveElement> ToggleElements = new List <AdaptiveElement>
                        {
                            new AdaptiveColumnSet()
                            {
                                Columns = new List <AdaptiveColumn>()
                                {
                                    new AdaptiveColumn()
                                    {
                                        Items = new List <AdaptiveElement>()
                                        {
                                            new AdaptiveTextInput()
                                            {
                                                Id          = "InputText" + reviewApplicationCount,
                                                Placeholder = "Comments",
                                            },
                                            new AdaptiveTextBlock()
                                            {
                                                Text      = "Stage Change",
                                                Weight    = AdaptiveTextWeight.Bolder,
                                                Separator = true,
                                                Size      = AdaptiveTextSize.Small,
                                            },
                                            new AdaptiveChoiceSetInput()
                                            {
                                                Id      = "InputCoice" + reviewApplicationCount,
                                                Choices = new List <AdaptiveChoice>()
                                                {
                                                    new AdaptiveChoice()
                                                    {
                                                        Title = "Schedule Interview",
                                                        Value = "1",
                                                    },
                                                    new AdaptiveChoice()
                                                    {
                                                        Title = "Disposition",
                                                        Value = "2",
                                                    },
                                                }
                                            },
                                            new AdaptiveActionSet()
                                            {
                                                Actions = new List <AdaptiveAction>()
                                                {
                                                    new AdaptiveSubmitAction()
                                                    {
                                                        Title = "Submit",
                                                    }
                                                }
                                            }
                                        }
                                    },
                                }
                            }
                        };


                        AdaptiveContainer toggleContainer = new AdaptiveContainer();
                        toggleContainer.Id        = reviewApplicationCount.ToString();
                        toggleContainer.Items     = ToggleElements;
                        toggleContainer.IsVisible = false;

                        // adding new rows in card body
                        card.Body.Add(adaptiveDynamicContainer);
                        card.Body.Add(toggleContainer);
                    }

                    reviewApplicationCount++;
                });


                attachments.Add(convertAdaptivetoAttacment(card));
            });

            replyincarousel = MessageFactory.Carousel(attachments);
            await turnContext.SendActivityAsync(replyincarousel, cancellationToken);
        }
        private AdaptiveCard ShowDetailsCard(IDialogContext context, Response viewBalanceResponse, string accrualCodeName)
        {
            var          message         = context.MakeMessage();
            var          vacationBalance = viewBalanceResponse?.AccrualData?.AccrualBalances?.AccrualBalanceSummary?.Find(x => x.AccrualCodeName == accrualCodeName);
            AdaptiveCard card            = new AdaptiveCard("1.0");

            var container = new AdaptiveContainer();
            var items     = new List <AdaptiveElement>();

            var title = new AdaptiveTextBlock
            {
                Size   = AdaptiveTextSize.Medium,
                Weight = AdaptiveTextWeight.Bolder,
                Text   = accrualCodeName == KronosResourceText.VacationBalanceCodePersonal ? KronosResourceText.VacationBalanceCardPersonalLabel : accrualCodeName,
            };

            var factList = new List <AdaptiveFact>
            {
                new AdaptiveFact
                {
                    Title = KronosResourceText.VacationBalanceCardVestedHoursLabel,
                    Value = $"{vacationBalance.VestedBalanceInTime} hours",
                },
                new AdaptiveFact
                {
                    Title = KronosResourceText.VacationBalanceCardProbationHoursLabel,
                    Value = $"{vacationBalance.ProbationaryBalanceInTime ?? "0:00"} hours",
                },
                new AdaptiveFact
                {
                    Title = KronosResourceText.VacationBalanceCardPlannedTakingsLabel,
                    Value = $"{vacationBalance.ProjectedTakingAmountInTime} hours",
                },
                new AdaptiveFact
                {
                    Title = KronosResourceText.VacationBalanceCardPendingGrantsLabel,
                    Value = $"{vacationBalance.ProjectedGrantAmountInTime} hours",
                },
            };

            var facts = new AdaptiveFactSet
            {
                Facts = factList,
            };

            items.Add(title);
            items.Add(facts);
            container.Items = items;
            card.Body.Add(container);

            card.Actions.Add(
                new AdaptiveSubmitAction()
            {
                Title = KronosResourceText.RequestTimeOff,
                Data  = new AdaptiveCardAction
                {
                    msteams = new Msteams
                    {
                        type        = "messageBack",
                        displayText = KronosResourceText.TimeOffRequest,
                        text        = Constants.CreateTimeOff,
                    },
                },
            });

            if (message.Attachments == null)
            {
                message.Attachments = new List <Attachment>();
            }

            message.Attachments.Add(new Attachment()
            {
                Content     = card,
                ContentType = "application/vnd.microsoft.card.adaptive",
                Name        = "Show Vacation Balance Details",
            });

            return(card);
        }
Exemplo n.º 29
0
        public void BackgroundImage()
        {
            var card = new AdaptiveCard("1.2");

            card.BackgroundImage = new AdaptiveBackgroundImage("http://adaptivecards.io/content/cats/1.png", AdaptiveBackgroundImageMode.Repeat, AdaptiveHorizontalAlignment.Right, AdaptiveVerticalAlignment.Bottom);

            var columnSet = new AdaptiveColumnSet();
            var column1   = new AdaptiveColumn();

            column1.BackgroundImage = new AdaptiveBackgroundImage("http://adaptivecards.io/content/cats/1.png", AdaptiveBackgroundImageMode.RepeatVertically, AdaptiveHorizontalAlignment.Center, AdaptiveVerticalAlignment.Top);
            columnSet.Columns.Add(column1);
            var column2 = new AdaptiveColumn();

            column2.BackgroundImage = new AdaptiveBackgroundImage("http://adaptivecards.io/content/cats/2.png", AdaptiveBackgroundImageMode.Stretch, AdaptiveHorizontalAlignment.Right, AdaptiveVerticalAlignment.Bottom);
            columnSet.Columns.Add(column2);
            card.Body.Add(columnSet);

            var container1 = new AdaptiveContainer();

            container1.BackgroundImage = new AdaptiveBackgroundImage("http://adaptivecards.io/content/cats/2.png", AdaptiveBackgroundImageMode.RepeatHorizontally, AdaptiveHorizontalAlignment.Left, AdaptiveVerticalAlignment.Center);
            card.Body.Add(container1);

            var container2 = new AdaptiveContainer();

            container2.BackgroundImage = new AdaptiveBackgroundImage("http://adaptivecards.io/content/cats/3.png");
            card.Body.Add(container2);

            var expected = @"{
  ""type"": ""AdaptiveCard"",
  ""version"": ""1.2"",
  ""backgroundImage"": {
    ""url"": ""http://adaptivecards.io/content/cats/1.png"",
    ""mode"": ""repeat"",
    ""horizontalAlignment"": ""right"",
    ""verticalAlignment"": ""bottom""
  },
  ""body"": [
    {
      ""type"": ""ColumnSet"",
      ""columns"": [
        {
          ""type"": ""Column"",
          ""backgroundImage"": {
            ""url"": ""http://adaptivecards.io/content/cats/1.png"",
            ""mode"": ""repeatVertically"",
            ""horizontalAlignment"": ""center""
          },
          ""items"": []
        },
        {
          ""type"": ""Column"",
          ""backgroundImage"": {
            ""url"": ""http://adaptivecards.io/content/cats/2.png"",
            ""horizontalAlignment"": ""right"",
            ""verticalAlignment"": ""bottom""
          },
          ""items"": []
        }
      ]
    },
    {
      ""type"": ""Container"",
      ""backgroundImage"": {
        ""url"": ""http://adaptivecards.io/content/cats/2.png"",
        ""mode"": ""repeatHorizontally"",
        ""verticalAlignment"": ""center""
      },
      ""items"": []
    },
    {
      ""type"": ""Container"",
      ""backgroundImage"": ""http://adaptivecards.io/content/cats/3.png"",
      ""items"": []
    }
  ]
}";

            Assert.AreEqual(expected, card.ToJson());
        }
Exemplo n.º 30
0
        /// <summary>
        /// Creates the stock adaptive card.
        /// </summary>
        /// <returns></returns>
        private Attachment CreateJobListAdaptiveCard()
        {
            var card = new AdaptiveCard("1.0");
            List <AdaptiveFact> facts = new List <AdaptiveFact>
            {
                new AdaptiveFact
                {
                    Title = "[Senior Manager Business Development Manufacturing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9754&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Value = "[Senior Manager: QA and Testing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=8012&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Value = "[Service Desk Team Manager](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9555&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Software Developer - eCommerce](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9829&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Test Analyst](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9462&localeCode=en-us)",
                },
                new AdaptiveFact
                {
                    Title = "[Scrum Master - Intelligent Automation](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9372&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Development Team Manager](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9354&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Front-end Developer](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9341&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Graphic Designer](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9343&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Senior Software Engineer-Manufacturing & Logistics](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9075&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Team Lead – Finance Systems Operations](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9001&localeCode=en-us)"
                },
                new AdaptiveFact
                {
                    Title = "[Senior Manager: QA and Testing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=8012&localeCode=en-us)"
                }
            };

            List <AdaptiveElement> adaptiveElements = new List <AdaptiveElement>()
            {
                new AdaptiveColumnSet
                {
                    Columns = new List <AdaptiveColumn>()
                    {
                        new AdaptiveColumn
                        {
                            Items = new List <AdaptiveElement>
                            {
                                new AdaptiveImage
                                {
                                    Url  = new Uri("https://github.com/enablers104/chatbot/blob/master/Images/Logo.png?raw=true"),
                                    Size = AdaptiveImageSize.Small
                                },
                                new AdaptiveTextBlock
                                {
                                    Text     = "Job listing",
                                    Spacing  = AdaptiveSpacing.Medium,
                                    Size     = AdaptiveTextSize.Default,
                                    Weight   = AdaptiveTextWeight.Bolder,
                                    Wrap     = true,
                                    MaxLines = 0
                                }
                                , CreateTextBlock("[Senior Manager Business Development Manufacturing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9754&localeCode=en-us)")
                                , CreateTextBlock("[Senior Manager: QA and Testing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=8012&localeCode=en-us)")
                                , CreateTextBlock("[Service Desk Team Manager](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9555&localeCode=en-us)")
                                , CreateTextBlock("[Software Developer - eCommerce](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9829&localeCode=en-us)")
                                , CreateTextBlock("[Test Analyst](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9462&localeCode=en-us)")
                                , CreateTextBlock("[Scrum Master - Intelligent Automation](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9372&localeCode=en-us)")
                                , CreateTextBlock("[Development Team Manager](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9354&localeCode=en-us)")
                                , CreateTextBlock("[Front-end Developer](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9341&localeCode=en-us)")
                                , CreateTextBlock("[Graphic Designer](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9343&localeCode=en-us)")
                                , CreateTextBlock("[Senior Software Engineer-Manufacturing & Logistics](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9075&localeCode=en-us)")
                                , CreateTextBlock("[Team Lead – Finance Systems Operations](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=9001&localeCode=en-us)")
                                , CreateTextBlock("[Senior Manager: QA and Testing](https://careers.peopleclick.eu.com/careerscp/client_thefoschinigroup/external/jobDetails/jobDetail.html?jobPostId=8012&localeCode=en-us)")
                            },
                            Separator = true
                        }
                    }
                }
            };

            AdaptiveContainer container = new AdaptiveContainer
            {
                Items = adaptiveElements
            };

            card.Body.Add(container);
            var attachment = new Attachment()
            {
                ContentType = AdaptiveCard.ContentType,
                Content     = card
            };

            return(attachment);
        }