/// <summary> /// Initializes a new instance of the <see cref="MustBeTeamMemberUserPolicyHandler"/> class. /// </summary> /// <param name="botAdapter">Bot adapter for getting team members.</param> /// <param name="microsoftAppCredentials">Microsoft application credentials.</param> /// <param name="teamTagStorageProvider">Provider to fetch team configuration for tab.</param> /// <param name="memoryCache">MemoryCache instance for caching authorization result.</param> public MustBeTeamMemberUserPolicyHandler(IBotFrameworkHttpAdapter botAdapter, MicrosoftAppCredentials microsoftAppCredentials, ITeamTagStorageProvider teamTagStorageProvider, IMemoryCache memoryCache) { this.teamTagStorageProvider = teamTagStorageProvider; this.memoryCache = memoryCache; this.botAdapter = botAdapter; this.microsoftAppCredentials = microsoftAppCredentials; }
/// <summary> /// Initializes a new instance of the <see cref="TeamTagController"/> class. /// </summary> /// <param name="logger">Used to perform logging of errors and information.</param> /// <param name="telemetryClient">The Application Insights telemetry client.</param> /// <param name="teamTagStorageProvider">Provider to fetch, delete and upsert tags configured for team.</param> public TeamTagController( ILogger <TeamTagController> logger, TelemetryClient telemetryClient, ITeamTagStorageProvider teamTagStorageProvider) : base(telemetryClient) { this.logger = logger; this.teamTagStorageProvider = teamTagStorageProvider; }
/// <summary> /// Initializes a new instance of the <see cref="TeamPostController"/> class. /// </summary> /// <param name="logger">Used to perform logging of errors and information.</param> /// <param name="telemetryClient">The Application Insights telemetry client.</param> /// <param name="postStorageHelper">Helper for creating models and filtering posts as per criteria.</param> /// <param name="postSearchService">Post search service for fetching post with search criteria and filters.</param> /// <param name="teamTagStorageProvider">Provides method for fetching tags configured for team.</param> public TeamPostController( ILogger <TeamPostController> logger, TelemetryClient telemetryClient, IPostStorageHelper postStorageHelper, IPostSearchService postSearchService, ITeamTagStorageProvider teamTagStorageProvider) : base(telemetryClient) { this.logger = logger; this.postStorageHelper = postStorageHelper; this.postSearchService = postSearchService; this.teamTagStorageProvider = teamTagStorageProvider; }
/// <summary> /// Initializes a new instance of the <see cref="GoodReadsActivityHandler"/> class. /// </summary> /// <param name="logger">Instance to send logs to the Application Insights service.</param> /// <param name="localizer">The current cultures' string localizer.</param> /// <param name="telemetryClient">The Application Insights telemetry client.</param> /// <param name="options">>A set of key/value application configuration properties for activity handler.</param> /// <param name="messagingExtensionHelper">Messaging Extension helper dependency injection.</param> /// <param name="userState">State management object for maintaining user conversation state.</param> /// <param name="teamPreferenceStorageHelper">Team preference storage helper dependency injection.</param> /// <param name="teamPreferenceStorageProvider">Team preference storage provider dependency injection.</param> /// <param name="teamTagStorageProvider">Team tags storage provider dependency injection.</param> /// <param name="botOptions">A set of key/value application configuration properties for activity handler.</param> public GoodReadsActivityHandler( ILogger <GoodReadsActivityHandler> logger, IStringLocalizer <Strings> localizer, TelemetryClient telemetryClient, IOptions <GoodReadsActivityHandlerOptions> options, IMessagingExtensionHelper messagingExtensionHelper, UserState userState, ITeamPreferenceStorageHelper teamPreferenceStorageHelper, ITeamPreferenceStorageProvider teamPreferenceStorageProvider, ITeamTagStorageProvider teamTagStorageProvider, IOptions <BotSettings> botOptions) { this.logger = logger; this.localizer = localizer; this.telemetryClient = telemetryClient; this.options = options ?? throw new ArgumentNullException(nameof(options)); this.messagingExtensionHelper = messagingExtensionHelper; this.userState = userState; this.teamPreferenceStorageHelper = teamPreferenceStorageHelper; this.teamPreferenceStorageProvider = teamPreferenceStorageProvider; this.teamTagStorageProvider = teamTagStorageProvider; this.botOptions = botOptions ?? throw new ArgumentNullException(nameof(botOptions)); }
/// <summary> /// Initializes a new instance of the <see cref="DigestNotificationHelper"/> class. /// </summary> /// <param name="logger">Instance to send logs to the Application Insights service.</param> /// <param name="localizer">The current cultures' string localizer.</param> /// <param name="botOptions">A set of key/value application configuration properties for bot.</param> /// <param name="adapter">Bot adapter.</param> /// <param name="teamPreferenceStorageProvider">Storage provider for team preference.</param> /// <param name="teamPostSearchService">The team post search service dependency injection.</param> /// <param name="teamPostStorageHelper">Team post storage helper dependency injection.</param> /// <param name="teamTagStorageProvider">Provider to fetch tab configuration for team.</param> /// <param name="options">A set of key/value application configuration properties.</param> public DigestNotificationHelper( ILogger <DigestNotificationHelper> logger, IStringLocalizer <Strings> localizer, IOptions <BotSettings> botOptions, IBotFrameworkHttpAdapter adapter, ITeamPreferenceStorageProvider teamPreferenceStorageProvider, IPostSearchService teamPostSearchService, IPostStorageHelper teamPostStorageHelper, ITeamTagStorageProvider teamTagStorageProvider, IOptions <GoodReadsActivityHandlerOptions> options) { this.logger = logger; this.localizer = localizer; this.botOptions = botOptions ?? throw new ArgumentNullException(nameof(botOptions)); this.adapter = adapter; this.teamPreferenceStorageProvider = teamPreferenceStorageProvider; this.teamPostSearchService = teamPostSearchService; this.teamTagStorageProvider = teamTagStorageProvider; this.teamPostStorageHelper = teamPostStorageHelper; this.options = options; this.retryPolicy = Policy.Handle <Exception>() .WaitAndRetryAsync(Backoff.DecorrelatedJitterBackoffV2(TimeSpan.FromMilliseconds(this.botOptions.Value.MedianFirstRetryDelay), this.botOptions.Value.RetryCount)); }