/// <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;
 }
Esempio n. 2
0
 /// <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;
 }
Esempio n. 3
0
        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);
            });
        }