コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FaqPlusUserBot"/> class.
        /// </summary>
        /// <param name="optionsAccessor">A set of key/value application configuration properties for bot.</param>
        /// <param name="logger">Instance to send logs to the Application Insights service.</param>
        /// <param name="botCommandResolver">Resolves bot command.</param>
        /// <param name="conversationService">Conversation service to send welcome card.</param>
        /// <param name="taskModuleActivity">Instance to call teams activity when task module is invoked in teams chat.</param>
        /// <param name="turnContextExtension">Turn context extension object.</param>
        public FaqPlusUserBot(
            IOptionsMonitor <BotSettings> optionsAccessor,
            ILogger <FaqPlusUserBot> logger,
            IBotCommandResolver botCommandResolver,
            IConversationService conversationService,
            ITaskModuleActivity taskModuleActivity,
            TurnContextExtension turnContextExtension)
        {
            if (optionsAccessor == null)
            {
                throw new ArgumentNullException(nameof(optionsAccessor));
            }

            this.options              = optionsAccessor.CurrentValue;
            this.appBaseUri           = this.options.AppBaseUri;
            this.logger               = logger ?? throw new ArgumentNullException(nameof(logger));
            this.botCommandResolver   = botCommandResolver ?? throw new ArgumentNullException(nameof(botCommandResolver));
            this.conversationService  = conversationService ?? throw new ArgumentNullException(nameof(conversationService));
            this.taskModuleActivity   = taskModuleActivity ?? throw new ArgumentNullException(nameof(taskModuleActivity));
            this.turnContextExtension = turnContextExtension ?? throw new ArgumentNullException(nameof(turnContextExtension));
        }
コード例 #2
0
        public async Task OnBotAddedAsync(ITurnContext <IConversationUpdateActivity> turnContext)
        {
            switch (turnContext.Activity.Conversation.ConversationType)
            {
            case ChannelType:
            case groupChatType:

                var members = await turnContext.GetConversationMembers();

                var teamMembers = TurnContextExtension.AsTeamsChannelAccounts(members).ToList();

                await _userDetailsRepository.SaveAllUserDetailsInTeams(turnContext, teamMembers);

                break;

            case PersonalType:
                await this._userDetailsRepository.SaveUserDetailsAsync(turnContext);

                break;

            default: break;
            }
        }