/// <summary>
 /// Initializes a new instance of the <see cref="PublishFunction"/> class.
 /// </summary>
 /// <param name="searchServiceDataProvider">search service data provider.</param>
 /// <param name="qnaServiceProvider">qna service provider.</param>
 /// <param name="configurationStorageProvider">configuration storage provider.</param>
 /// <param name="searchService">search service.</param>
 public PublishFunction(IConfigurationStorageProvider configurationStorageProvider, IQnaServiceProvider qnaServiceProvider, ISearchServiceDataProvider searchServiceDataProvider, ISearchService searchService)
 {
     this.configurationStorageProvider = configurationStorageProvider;
     this.qnaServiceProvider           = qnaServiceProvider;
     this.searchServiceDataProvider    = searchServiceDataProvider;
     this.searchService = searchService;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class.
 /// </summary>
 /// <param name="configurationStorageProvider">storage provider.</param>
 /// <param name="configuration">configuration.</param>
 /// <param name="qnaMakerClient">qna service client.</param>
 /// <param name="qnaMakerRuntimeClient">qna service runtime client.</param>
 public QnaServiceProvider(IConfigurationStorageProvider configurationStorageProvider, IConfiguration configuration, IQnAMakerClient qnaMakerClient, IQnAMakerRuntimeClient qnaMakerRuntimeClient)
 {
     this.configurationStorageProvider = configurationStorageProvider;
     this.qnaMakerClient        = qnaMakerClient;
     this.qnaMakerRuntimeClient = qnaMakerRuntimeClient;
     this.scoreThreshold        = Convert.ToDouble(configuration["ScoreThreshold"]);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CrowdSourcerBot"/> class.
 /// </summary>
 /// <param name="telemetryClient">telemetry client.</param>
 /// <param name="qnaServiceProvider">qnA maker service provider.</param>
 /// <param name="configuration">configuration settings.</param>
 /// <param name="configurationStorageProvider">Knowledge base configuration storage provider.</param>
 /// <param name="nameMappingStorageProvider">name mapping storage provider.</param>
 /// <param name="searchService">serach service.</param>
 /// <param name="cards">all cards.</param>
 public CrowdSourcerBot(TelemetryClient telemetryClient, IQnaServiceProvider qnaServiceProvider, IConfiguration configuration, IConfigurationStorageProvider configurationStorageProvider, IObjectIdToNameMapper nameMappingStorageProvider, ISearchService searchService, CrowdSourcerCards cards)
 {
     this.telemetryClient              = telemetryClient;
     this.qnaServiceProvider           = qnaServiceProvider;
     this.configuration                = configuration;
     this.configurationStorageProvider = configurationStorageProvider;
     this.nameMappingStorageProvider   = nameMappingStorageProvider;
     this.searchService                = searchService;
     this.cards = cards;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class.
 /// </summary>
 /// <param name="configurationStorageProvider">storage provider.</param>
 /// <param name="qnaMakerClient">qna client.</param>
 public QnaServiceProvider(IConfigurationStorageProvider configurationStorageProvider, IQnAMakerClient qnaMakerClient)
 {
     this.configurationStorageProvider = configurationStorageProvider;
     this.qnaMakerClient = qnaMakerClient;
 }