-
Notifications
You must be signed in to change notification settings - Fork 175
Expand file tree
/
Copy pathMultiSelectAdaptiveChoice.cs
More file actions
74 lines (61 loc) · 2.45 KB
/
MultiSelectAdaptiveChoice.cs
File metadata and controls
74 lines (61 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System.Collections.Generic;
using AdaptiveCards;
using Bot.Builder.Community.Components.Dialogs.Input.MultiSelectChoice.Action;
using Bot.Builder.Community.Components.Dialogs.Input.MultiSelectChoice.ControlStyle;
using Bot.Builder.Community.Components.Dialogs.Input.MultiSelectChoice.Header;
using Bot.Builder.Community.Components.Dialogs.Input.MultiSelectChoice.Setting;
using Microsoft.Bot.Schema;
using Newtonsoft.Json.Linq;
namespace Bot.Builder.Community.Components.Dialogs.Input.MultiSelectChoice
{
public class MultiSelectAdaptiveChoice : IMultiSelectAdaptiveChoice
{
private const int MajorVersion = 1;
private const int MinorVersion = 3;
private IAdaptiveControl _adaptiveControl;
private IAdaptiveAction _adaptiveAction;
private IAdaptiveHeader _adaptiveHeader;
public MultiSelectAdaptiveChoice()
{
InitializeObject();
}
public Attachment CreateAttachment(CardSetting cardSetting)
{
var adaptiveCard = PrepareChoiceList(cardSetting);
var attachment = new Attachment
{
ContentType = AdaptiveCard.ContentType,
Content = JObject.FromObject(adaptiveCard)
};
return attachment;
}
private AdaptiveCard PrepareChoiceList(CardSetting cardSetting)
{
var cardObj = new AdaptiveCard(new AdaptiveSchemaVersion(MajorVersion, MinorVersion))
{
Body = new List<AdaptiveElement>()
};
cardObj.Body.Add(_adaptiveHeader.PrepareControl(cardSetting.Title));
var adaptiveElement = _adaptiveControl.PrepareControl(cardSetting.OrientationType, cardSetting.ChoiceList);
if (adaptiveElement?.Count > 0)
{
foreach (var item in adaptiveElement)
{
cardObj.Body.Add(item);
}
}
cardObj.Actions = _adaptiveAction.PrepareActionList(cardSetting.ActionName);
return cardObj;
}
private void InitializeObject()
{
_adaptiveAction = new AdaptiveActionList();
_adaptiveHeader = new AdaptiveHeader();
_adaptiveControl = new AdaptiveToggleOption();
}
public List<ResultSet> ResultSet(object validateText)
{
return _adaptiveControl.ResultSet(validateText);
}
}
}