public ServiceRepositoryClient(RepositoryAgentOptions options, IHttpClientFactory httpClientFactory, ILogger <ServiceRepositoryClient> logger, IApiDescriptionProvider apiDescriptionProvider)
 {
     _options                = options ?? throw new ArgumentNullException(nameof(options));
     _httpClientFactory      = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory));
     _logger                 = logger ?? throw new ArgumentNullException(nameof(logger));
     _apiDescriptionProvider = apiDescriptionProvider ?? throw new ArgumentNullException(nameof(apiDescriptionProvider));
 }
        internal static IReadOnlyList <ApiDescription> Execute(this IApiDescriptionProvider apiDescriptionProvider, ActionDescriptor actionDescriptor)
        {
            var context = new ApiDescriptionProviderContext(new[] { actionDescriptor });

            apiDescriptionProvider.OnProvidersExecuting(context);
            apiDescriptionProvider.OnProvidersExecuted(context);

            return(context.Results.ToArray());
        }
Beispiel #3
0
 public ApiDescController(
     IApiDescriptionGroupCollectionProvider apiDescriptionGroupCollectionProvider
     , IApiDescriptionProvider apiDescriptionProvider
     , IActionDescriptorCollectionProvider actionDescriptorCollectionProvider
     )
 {
     _apiDescriptionGroupCollectionProvider = apiDescriptionGroupCollectionProvider;
     _apiDescriptionProvider             = apiDescriptionProvider;
     _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider;
 }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApiDescriptionProvider prov, IServiceProvider serviceProvider)
        {
            //if (env.IsDevelopment())
            //{
            app.UseCors(options => options.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
            //app.addRequestIdHeader()
            app.UseDeveloperExceptionPage();
            app.UseSwagger(c =>
            {
                c.SerializeAsV2 = true;
            });
            //app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                //c.DocExpansion(DocExpansion.None);
                //var swaggerFilePath = Path.Combine(env.WebRootPath ?? "", "swagger.json");
                //foreach(var desc in prov.ApiVersionDescriptions)
                //{

                //}
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Hahn Applicant Api v1");
                //c.RoutePrefix = string.Empty;
            });
            //}

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
            var context = serviceProvider.GetService <ApiContext>();

            AddTestData(context);
            //app.UseMvc();
        }