protected async Task RegisterSubscription(IMessageActivity message, string groupName) { var subscriptionFacade = new SubscriptionFacade(); var botSubscription = new BotSubscription() { ChannelId = message.ChannelData.channel.id, TeamId = message.ChannelData.team.id, TenantId = message.ChannelData.tenant.id, ServiceUrl = message.ServiceUrl, GroupName = groupName }; await subscriptionFacade.RegisterBotSubscription(botSubscription); }
private BotSubscriptionEntity CreateBotSubscription(BotSubscription subscription) { return(new BotSubscriptionEntity() { ChannelId = subscription.ChannelId, GroupName = subscription.GroupName, ServiceUrl = subscription.ServiceUrl, TeamId = subscription.TeamId, TenantId = subscription.TenantId, LastActivityDate = subscription.LastActivity?.Created, ActitityId = subscription.LastActivity?.ActitityId, ConversationId = subscription.LastActivity?.ConversationId }); }
public async Task SendMessageToChannel(string title, BotSubscription subscription) { var subscriptionFacade = new SubscriptionFacade(); var channelData = new TeamsChannelData { Channel = new ChannelInfo(subscription.ChannelId), Team = new TeamInfo(subscription.TeamId), Tenant = new TenantInfo(subscription.TenantId) }; var newMessageText = await Build(); var newMessage = new Activity { Type = ActivityTypes.Message, Text = newMessageText.FixNewLines(), }; var conversationParams = new ConversationParameters( isGroup: true, bot: null, members: null, topicName: title, activity: (Activity)newMessage, channelData: channelData); var connector = new ConnectorClient(new Uri(subscription.ServiceUrl), Environment.GetEnvironmentVariable("MicrosoftAppId"), Environment.GetEnvironmentVariable("MicrosoftAppPassword")); MicrosoftAppCredentials.TrustServiceUrl(subscription.ServiceUrl, DateTime.MaxValue); if (subscription.LastActivity == null) { var result = await connector.Conversations.CreateConversationAsync(conversationParams); subscription.LastActivity = new LastActivity { ConversationId = result.Id, ActitityId = result.ActivityId }; } else { var result = await connector.Conversations.UpdateActivityAsync(subscription.LastActivity.ConversationId, subscription.LastActivity.ActitityId, newMessage); subscription.LastActivity.ActitityId = result.Id; } await subscriptionFacade.UpdateBotSubscription(subscription); }
public async Task UpdateBotSubscription(BotSubscription subscription) { var entity = CreateBotSubscription(subscription); await SubscriptionDataSource.UpdateSubscription(entity); }
public async Task RegisterBotSubscription(BotSubscription subscription) { var entity = CreateBotSubscription(subscription); await SubscriptionDataSource.RegisterSubscription(entity); }