/// <summary> /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class. /// </summary> /// <param name="languageCode">Language code for the Qna service provider.</param> /// <param name="configurationProvider">ConfigurationProvider fetch and store information in storage table.</param> /// <param name="optionsAccessor">A set of key/value application configuration properties.</param> /// <param name="qnaMakerClient">Qna service client.</param> public QnaServiceProvider(string languageCode, IConfigurationDataProvider configurationProvider, IOptionsMonitor <QnAMakerSettings> optionsAccessor, IQnAMakerClient qnaMakerClient) { this.languageCode = languageCode; this.configurationProvider = configurationProvider; this.qnaMakerClient = qnaMakerClient; this.options = optionsAccessor.CurrentValue; }
/// <summary> /// Initializes a new instance of the <see cref="QnaServiceProvider"/> class. /// </summary> /// <param name="configurationProvider">ConfigurationProvider fetch and store information in storage table.</param> /// <param name="optionsAccessor">A set of key/value application configuration properties.</param> /// <param name="qnaMakerClient">Qna service client.</param> /// <param name="qnaMakerRuntimeClient">Qna service runtime client.</param> public QnaServiceProvider(IConfigurationDataProvider configurationProvider, IOptionsMonitor <QnAMakerSettings> optionsAccessor, IQnAMakerClient qnaMakerClient, IQnAMakerRuntimeClient qnaMakerRuntimeClient) { this.configurationProvider = configurationProvider; this.qnaMakerClient = qnaMakerClient; this.options = optionsAccessor.CurrentValue; this.qnaMakerRuntimeClient = qnaMakerRuntimeClient; }
public void ConfigureServices(IServiceCollection services) { ConfigureSession(services); services.AddMvc(); ILuisSettings luisSettings = new LuisSettings(Configuration.GetSection("Luis")); services.AddSingleton(luisSettings); IBingSettings bingSettings = new BingSettings(Configuration.GetSection("Bing")); services.AddSingleton(bingSettings); IShareSettings shareSettings = new ShareSettings(Configuration.GetSection("Share")); services.AddSingleton(shareSettings); IKeyVaultSettings keyVaultSettings = new KeyVaultSettings(Configuration.GetSection("KeyVault")); services.AddSingleton(keyVaultSettings); IAdminSettings adminSettings = new AdminSettings(Configuration.GetSection("Admin")); services.AddSingleton(adminSettings); IOnboardingInfoSettings onboardingInfoSettings = new OnboardingInfoSettings(Configuration.GetSection("EmailService"), Configuration.GetSection("KeyVault")); services.AddSingleton(onboardingInfoSettings); IQnAMakerSettings qnAMakerSettings = new QnAMakerSettings(Configuration.GetSection("QnAMaker")); services.AddSingleton(qnAMakerSettings); services.AddSingleton <ILuisProxy, LuisProxy>(); services.AddSingleton <ILuisBusinessLogic, LuisBusinessLogic>(); services.AddSingleton <ITopicsResourcesBusinessLogic, TopicsResourcesBusinessLogic>(); services.AddSingleton <IWebSearchBusinessLogic, WebSearchBusinessLogic>(); services.AddSingleton <ICuratedExperienceConvertor, A2JAuthorBusinessLogic>(); services.AddSingleton <ICuratedExperienceBusinessLogic, CuratedExperienceBuisnessLogic>(); services.AddTransient <IHttpClientService, HttpClientService>(); services.AddSingleton <IUserProfileBusinessLogic, UserProfileBusinessLogic>(); services.AddSingleton <IPersonalizedPlanBusinessLogic, PersonalizedPlanBusinessLogic>(); services.AddSingleton <IStaticResourceBusinessLogic, StaticResourceBusinessLogic>(); services.AddSingleton <IShareBusinessLogic, ShareBusinessLogic>(); services.AddSingleton <ICuratedExperienceConvertor, A2JAuthorBusinessLogic>(); services.AddSingleton <IPersonalizedPlanEngine, PersonalizedPlanEngine>(); services.AddSingleton <IA2JAuthorLogicParser, LogicParser>(); services.AddSingleton <IA2JAuthorLogicInterpreter, LogicInterpreter>(); services.AddSingleton <IPersonalizedPlanViewModelMapper, PersonalizedPlanViewModelMapper>(); services.AddSingleton <IUserRoleBusinessLogic, UserRoleBusinessLogic>(); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <ISessionManager, SessionManager>(); services.AddSingleton <IAdminBusinessLogic, AdminBusinessLogic>(); services.AddSingleton <IStateProvinceBusinessLogic, StateProvinceBusinessLogic>(); services.AddSingleton <IOnboardingInfoBusinessLogic, OnboardingInfoBusinessLogic>(); services.AddSingleton <IQnABotBusinessLogic, QnABotBusinessLogic>(); services.AddAuthentication(sharedOptions => { sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }).AddAzureAdBearer(options => Configuration.Bind("AzureAd", options)); services.AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser() .Build(); }); ConfigureCosmosDb(services); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Access2Justice API", Version = "1.0.0", Description = "List of all APIs for Access2Justice", TermsOfService = "None" }); c.TagActionsBy(api => api.GroupName); c.DescribeAllEnumsAsStrings(); c.OrderActionsBy((apiDesc) => $"{apiDesc.RelativePath}_{apiDesc.HttpMethod}"); c.OperationFilter <FileUploadOperation>(); //Register File Upload Operation Filter c.OperationFilter <FileUploadOperationResource>(); c.CustomSchemaIds(x => x.FullName); var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); }); }