-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStartup.cs
106 lines (85 loc) · 3.64 KB
/
Startup.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using FInSearchAPI.Models;
using FInSearchAPI.Services;
using FinSearchDataAcessLibrary.DataAccess;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using FInSearchAPI.Commands;
using FInSearchAPI.Validators;
using FluentValidation;
using Microsoft.OpenApi.Models;
using FInSearchAPI.Interfaces;
using MediatR;
using System.Collections.Generic;
using FInSearchAPI.Handlers;
using FinSearchDataAccessLibrary.Models.Database;
using Microsoft.Extensions.Logging;
using Autofac.Extensions.DependencyInjection;
using System.Reflection;
namespace FInSearchAPI
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
var server = Configuration["DBServer"] ?? "ms-sql-server";
var port = Configuration["DBPort"] ?? "1433";
var user = Configuration["DBUser"] ?? "SA";// use actual user logic for publishing
var password = Configuration["DBPassword"] ?? "Pa55w0rd2021"; // erase for publishing
var database = Configuration["Database"] ?? "FinSearchDb"; // erase for publishing
services.AddDbContext<FinSearchDBContext>(options =>
options.UseSqlServer($"Server={server},{port};Initial Catalog={database};User ID ={user};Password={password}"));
services.AddSingleton(new LoggerFactory());
services.AddLogging();
services.AddMvc();
services.AddAutofac();
services.AddMediatR(this.GetType().GetTypeInfo().Assembly);
/*
services.AddDbContext<FinSearchDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("FinDBContext")));*/
services.AddScoped<ApiHelper>();
services.AddScoped<PermIDService>();
services.AddScoped<OpenFigiService>();
services.AddScoped<MappingService>();
/*
services.AddScoped<IRequest<IEnumerable<Company>>, GetCompanyLevelInfoCommand>();
services.AddScoped<IRequest<IEnumerable<Figi>>, GetSecurityLevelInfoCommand>();*/
services.AddValidatorsFromAssemblyContaining(this.GetType());
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "FinSearch API", Version = "v1" });
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
PrepDb.PreparePopulation(app);
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "FinSearch API v1");
});
/* else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}*/
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}