/// <summary> /// Initializes a new instance of the <see cref="NotificationHelper"/> class. /// </summary> /// <param name="logger">Logger implementation to send logs to the logger 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="storageProvider">Storage provider for Introduction storage.</param> /// <param name="userStorageProvider">User Storage provider for Introduction storage.</param> /// <param name="sharePointOptions">A set of key/value pair configuration properties for SharePoint.</param> /// <param name="teamStorageProvider">Provider for fetching information about team details from storage.</param> /// <param name="notificationCardHelper">Helper for working with bot notification card.</param> public NotificationHelper( IIntroductionStorageProvider storageProvider, IUserStorageProvider userStorageProvider, ILogger <NotificationHelper> logger, IStringLocalizer <Strings> localizer, IOptions <BotOptions> botOptions, IOptions <SharePointSettings> sharePointOptions, ITeamStorageProvider teamStorageProvider, INotificationCardHelper notificationCardHelper) { this.introductionStorageProvider = storageProvider; this.userStorageProvider = userStorageProvider; this.logger = logger; this.localizer = localizer; this.botOptions = botOptions ?? throw new ArgumentNullException(nameof(botOptions)); this.sharePointOptions = sharePointOptions ?? throw new ArgumentNullException(nameof(sharePointOptions)); this.teamStorageProvider = teamStorageProvider; this.notificationCardHelper = notificationCardHelper; }
/// <summary> /// Initializes a new instance of the <see cref="ActivityHandler{T}"/> class. /// </summary> /// <param name="logger">The logger.</param> /// <param name="localizer">The current culture's string localizer.</param> /// <param name="telemetryClient">Instance of telemetry client. </param> /// <param name="userState">State management object for maintaining user conversation state.</param> /// <param name="adapter">Bot adapter used to handle bot framework HTTP requests.</param> /// <param name="conversationState">State management object for maintaining conversation state.</param> /// <param name="botOptions">A set of key/value application configuration properties for bot.</param> /// <param name="storageOptions">A set of key/value application configuration properties for storage.</param> /// <param name="teamStorageProvider">Provider for fetching information about team details from storage.</param> /// <param name="userStorageProvider">Provider for fetching information about user details from storage.</param> /// <param name="learningPlanHelper">Instance of learning plan helper.</param> /// <param name="introductionStorageProvider">Provider for fetching information about new hire introduction details from storage.</param> /// <param name="tokenHelper">Helper for JWT token generation and validation.</param> /// <param name="activityHelper">Helper for working with bot activity handler.</param> /// <param name="notificationCardHelper">Helper for working with bot notification card.</param> /// <param name="introductionCardHelper">Helper for working with introduction cards.</param> /// <param name="sharePointOptions">A set of key/value application configuration properties for SharePoint.</param> /// <param name="dialog">Base class for all bot dialogs.</param> public ActivityHandler( ILogger <ActivityHandler> logger, IStringLocalizer <Strings> localizer, TelemetryClient telemetryClient, UserState userState, IBotFrameworkHttpAdapter adapter, ConversationState conversationState, IOptions <BotOptions> botOptions, IOptions <StorageSettings> storageOptions, ITeamStorageProvider teamStorageProvider, IUserStorageProvider userStorageProvider, ILearningPlanHelper learningPlanHelper, IIntroductionStorageProvider introductionStorageProvider, ITokenHelper tokenHelper, IActivityHelper activityHelper, INotificationCardHelper notificationCardHelper, IIntroductionCardHelper introductionCardHelper, IOptions <SharePointSettings> sharePointOptions, T dialog) { this.logger = logger; this.localizer = localizer; this.telemetryClient = telemetryClient; this.userState = userState; this.adapter = adapter; this.conversationState = conversationState; this.botOptions = botOptions ?? throw new ArgumentNullException(nameof(botOptions)); this.storageOptions = storageOptions ?? throw new ArgumentNullException(nameof(storageOptions)); this.teamStorageProvider = teamStorageProvider; this.userStorageProvider = userStorageProvider; this.learningPlanHelper = learningPlanHelper; this.introductionStorageProvider = introductionStorageProvider; this.tokenHelper = tokenHelper; this.activityHelper = activityHelper; this.notificationCardHelper = notificationCardHelper; this.introductionCardHelper = introductionCardHelper; this.sharePointOptions = sharePointOptions ?? throw new ArgumentNullException(nameof(sharePointOptions)); this.dialog = dialog; }
/// <summary> /// Initializes a new instance of the <see cref="ActivityHelper{T}"/> class. /// </summary> /// <param name="logger">Instance to send logs to the Application Insights service.</param> /// <param name="userState">State management object for maintaining user conversation state.</param> /// <param name="teamStorageProvider">Provider for fetching information about team details from storage.</param> /// <param name="localizer">The current culture's string localizer.</param> /// <param name="dialog">Base class for all bot dialogs.</param> /// <param name="conversationState">State management object for maintaining conversation state.</param> /// <param name="teamMembershipHelper">Helper for team operations with Microsoft Graph API.</param> /// <param name="userProfileGraphApiHelper">Helper for user profile operations with Microsoft Graph API.</param> /// <param name="introductionStorageProvider">Provider for fetching information about new joiner introduction details from storage.</param> /// <param name="sharePointHelper">Helper for working with SharePoint.</param> /// <param name="introductionCardHelper">Helper for working with introduction cards.</param> /// <param name="graphUtility">Instance of Microsoft Graph utility helper.</param> /// <param name="welcomeCardFactory">Factory for working with welcome card attachments.</param> /// <param name="botOptions">A set of key/value application configuration properties for bot.</param> /// <param name="userStorageProvider">Provider for fetching information about user details from storage.</param> /// <param name="securityGroupSettings"> A set of key/value application configuration properties for AAD security group settings.</param> /// <param name="feedbackProvider">Provider for fetching information about new joiner feedbacks from storage.</param> /// <param name="imageUploadProvider">Provider for uploading user image to blob storage.</param> public ActivityHelper( ILogger <ActivityHelper <T> > logger, UserState userState, ITeamStorageProvider teamStorageProvider, IStringLocalizer <Strings> localizer, T dialog, ConversationState conversationState, ITeamMembership teamMembershipHelper, IUserProfile userProfileGraphApiHelper, IIntroductionStorageProvider introductionStorageProvider, ISharePointHelper sharePointHelper, IIntroductionCardHelper introductionCardHelper, IGraphUtilityHelper graphUtility, IWelcomeCardFactory welcomeCardFactory, IOptions <BotOptions> botOptions, IUserStorageProvider userStorageProvider, IOptions <AadSecurityGroupSettings> securityGroupSettings, IFeedbackProvider feedbackProvider, IImageUploadProvider imageUploadProvider) { this.logger = logger; this.userState = userState; this.teamStorageProvider = teamStorageProvider; this.localizer = localizer; this.dialog = dialog; this.conversationState = conversationState; this.teamOperationGraphApiHelper = teamMembershipHelper; this.userProfileGraphApiHelper = userProfileGraphApiHelper; this.introductionStorageProvider = introductionStorageProvider; this.sharePointHelper = sharePointHelper; this.introductionCardHelper = introductionCardHelper; this.graphUtility = graphUtility; this.welcomeCardFactory = welcomeCardFactory; this.botOptions = botOptions ?? throw new ArgumentNullException(nameof(botOptions)); this.userStorageProvider = userStorageProvider; this.securityGroupSettings = securityGroupSettings ?? throw new ArgumentNullException(nameof(securityGroupSettings)); this.feedbackProvider = feedbackProvider; this.imageUploadProvider = imageUploadProvider; }