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);
 }
Esempio n. 2
0
 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);
        }
Esempio n. 4
0
 public async Task UpdateBotSubscription(BotSubscription subscription)
 {
     var entity = CreateBotSubscription(subscription);
     await SubscriptionDataSource.UpdateSubscription(entity);
 }
Esempio n. 5
0
 public async Task RegisterBotSubscription(BotSubscription subscription)
 {
     var entity = CreateBotSubscription(subscription);
     await SubscriptionDataSource.RegisterSubscription(entity);
 }