Skip to content

Commit 2cd5337

Browse files
authored
Merge pull request #220 from Deep-Blue-2013/master
RichMessageBase and Welcome message.
2 parents b7d9469 + cf08261 commit 2cd5337

File tree

35 files changed

+209
-59
lines changed

35 files changed

+209
-59
lines changed

src/Infrastructure/BotSharp.Abstraction/Conversations/ConversationHookBase.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,9 @@ public virtual Task OnConversationInitialized(Conversation conversation)
8181
{
8282
return Task.CompletedTask;
8383
}
84+
85+
public virtual Task OnUserAgentConnectedInitially(Conversation conversation)
86+
{
87+
return Task.CompletedTask;
88+
}
8489
}

src/Infrastructure/BotSharp.Abstraction/Conversations/IConversationHook.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ public interface IConversationHook
1010
Conversation Conversation { get; }
1111
IConversationHook SetConversation(Conversation conversation);
1212

13+
/// <summary>
14+
/// Triggered when user connects with agent first time.
15+
/// This hook is the good timing to show welcome infomation.
16+
/// </summary>
17+
/// <param name="conversation"></param>
18+
/// <returns></returns>
19+
Task OnUserAgentConnectedInitially(Conversation conversation);
20+
1321
/// <summary>
1422
/// Triggered once for every new conversation.
1523
/// </summary>

src/Infrastructure/BotSharp.Abstraction/Conversations/IConversationService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public interface IConversationService
55
IConversationStateService States { get; }
66
string ConversationId { get; }
77
Task<Conversation> NewConversation(Conversation conversation);
8+
Task MarkConnectionReady(string conversationId);
89
void SetConversationId(string conversationId, List<string> states);
910
Task<Conversation> GetConversation(string id);
1011
Task<List<Conversation>> GetConversations();

src/Infrastructure/BotSharp.Abstraction/Messaging/IRichMessage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ namespace BotSharp.Abstraction.Messaging;
22

33
public interface IRichMessage
44
{
5+
string Type { get; }
56
string Text { get; set; }
67
}

src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/QuickReplyMessage.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
namespace BotSharp.Abstraction.Messaging.Models.RichContent
22
{
3-
public class QuickReplyMessage : IRichMessage
3+
public class QuickReplyMessage : RichMessageBase, IRichMessage
44
{
5-
public string Text { get; set; } = string.Empty;
5+
public override string Type => "quick reply";
66

77
[JsonPropertyName("quick_replies")]
88
public List<QuickReplyElement> QuickReplies { get; set; } = new List<QuickReplyElement>();

src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ButtonTemplateMessage.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template
33
/// <summary>
44
/// https://developers.facebook.com/docs/messenger-platform/send-messages/buttons
55
/// </summary>
6-
public class ButtonTemplateMessage : IRichMessage
6+
public class ButtonTemplateMessage : RichMessageBase, IRichMessage, ITemplateMessage
77
{
8-
public string Text { get; set; } = string.Empty;
8+
public override string Type => "template";
99

1010
[JsonPropertyName("template_type")]
11-
public string TemplateType => "button";
11+
public override string TemplateType => "button";
1212
public List<ButtonElement> Buttons { get; set; } = new List<ButtonElement>();
1313
}
1414

src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/CouponTemplateMessage.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template;
44
/// Coupon Template
55
/// https://developers.facebook.com/docs/messenger-platform/send-messages/template/coupon
66
/// </summary>
7-
public class CouponTemplateMessage : IRichMessage, ITemplateMessage
7+
public class CouponTemplateMessage : RichMessageBase, IRichMessage, ITemplateMessage
88
{
9+
public override string Type => "template";
10+
11+
[JsonPropertyName("template_type")]
12+
public override string TemplateType => "coupon";
13+
914
[JsonIgnore]
10-
public string Text { get; set; }
15+
public override string Text { get; set; }
1116
public string Title { get; set; }
1217
public string Subtitle { get; set; }
1318

14-
[JsonPropertyName("template_type")]
15-
public string TemplateType => "coupon";
16-
1719
[JsonPropertyName("coupon_code")]
1820
public string CouponCode { get; set; }
1921

src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/MultiSelectTemplateMessage.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template
22
{
3-
public class MultiSelectTemplateMessage : IRichMessage
3+
public class MultiSelectTemplateMessage : RichMessageBase, IRichMessage
44
{
5-
public string Text { get; set; } = string.Empty;
5+
public override string Type => "template";
66

77
[JsonPropertyName("template_type")]
88
public string TemplateType => "multi-select";

src/Infrastructure/BotSharp.Abstraction/Messaging/Models/RichContent/Template/ProductTemplateMessage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template;
22

33
public class ProductTemplateMessage : TemplateMessageBase<ProductElement>, IRichMessage
44
{
5+
[JsonPropertyName("template_type")]
56
public override string TemplateType => "product";
67
}
78

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
namespace BotSharp.Abstraction.Messaging.Models.RichContent.Template
22
{
3-
public class TemplateMessageBase<T>
3+
public class TemplateMessageBase<T> : RichMessageBase
44
{
55
[JsonIgnore]
66
public string Text { get; set; }
77

8+
public override string Type => "template";
9+
810
[JsonPropertyName("template_type")]
911
public virtual string TemplateType => string.Empty;
12+
1013
public T[] Elements { get; set; }
1114
}
1215
}

0 commit comments

Comments
 (0)