Update
This commit is contained in:
86
.gitignore
vendored
86
.gitignore
vendored
@@ -1,42 +1,44 @@
|
||||
################################################################################
|
||||
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
|
||||
################################################################################
|
||||
|
||||
/Back/skydiveLogs-api/obj
|
||||
/Back/.vs/skydiveLogs-api/v15
|
||||
/Back/skydiveLogs-api/bin
|
||||
/Back/.vs
|
||||
/Back/skydiveLogs-api.DomainBusiness/obj
|
||||
/Back/skydiveLogs-api.Infrastructure/obj
|
||||
/Back/skydiveLogs-api.Model/obj
|
||||
/Back/skydiveLogs-api.Model/bin
|
||||
/Back/skydiveLogs-api.Ioc/bin
|
||||
/Back/skydiveLogs-api.Ioc/obj
|
||||
/Back/skydiveLogs-api.Infrastructure/bin
|
||||
/Back/skydiveLogs-api.DomainBusiness/bin
|
||||
/Back/dist
|
||||
/Back/skydiveLogs-api.v3.ncrunchsolution.user
|
||||
/Back/skydiveLogs-api/Init/twinOtter.jpg
|
||||
/Back/skydiveLogs-api/Init/skyvan.jpg
|
||||
/Back/skydiveLogs-api/Init/Pilatus.png
|
||||
/Back/skydiveLogs-api/Init/pac.jpg
|
||||
/Back/skydiveLogs-api/Init/dornier.jpg
|
||||
/Back/skydiveLogs-api/Init/casa.jpg
|
||||
/Back/skydiveLogs-api/Init/caravan.jpg
|
||||
/Back/skydiveLogs-api/Init/206.jpg
|
||||
/Back/skydiveLogs-api/Data
|
||||
/Back/skydiveLogs-api.DomainService/bin
|
||||
/Back/skydiveLogs-api.DomainService/obj
|
||||
/Back/skydiveLogs-api.Data/obj
|
||||
/Back/skydiveLogs-api.Business/obj
|
||||
/Back/skydiveLogs-api.Domain/obj
|
||||
/Back/skydiveLogs-api.Domain/bin/Debug/net5.0
|
||||
/Back/skydiveLogs-api.Data/bin/Debug/net5.0
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/ref/skydiveLogs-api.Domain.dll
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.dll
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.pdb
|
||||
/Back/skydiveLogs-api/Data/JumpsDb-log.db
|
||||
/Back/skydiveLogs-api/Data/JumpsDb.db
|
||||
Back/skydiveLogs-api/Data/JumpsDb.db
|
||||
Back/skydiveLogs-api/Data/JumpsDb-log.db
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.deps.json
|
||||
################################################################################
|
||||
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
|
||||
################################################################################
|
||||
|
||||
/Back/skydiveLogs-api/obj
|
||||
/Back/.vs/skydiveLogs-api/v15
|
||||
/Back/skydiveLogs-api/bin
|
||||
/Back/.vs
|
||||
/Back/skydiveLogs-api.DomainBusiness/obj
|
||||
/Back/skydiveLogs-api.Infrastructure/obj
|
||||
/Back/skydiveLogs-api.Model/obj
|
||||
/Back/skydiveLogs-api.Model/bin
|
||||
/Back/skydiveLogs-api.Ioc/bin
|
||||
/Back/skydiveLogs-api.Ioc/obj
|
||||
/Back/skydiveLogs-api.Infrastructure/bin
|
||||
/Back/skydiveLogs-api.DomainBusiness/bin
|
||||
/Back/dist
|
||||
/Back/skydiveLogs-api.v3.ncrunchsolution.user
|
||||
/Back/skydiveLogs-api/Init/twinOtter.jpg
|
||||
/Back/skydiveLogs-api/Init/skyvan.jpg
|
||||
/Back/skydiveLogs-api/Init/Pilatus.png
|
||||
/Back/skydiveLogs-api/Init/pac.jpg
|
||||
/Back/skydiveLogs-api/Init/dornier.jpg
|
||||
/Back/skydiveLogs-api/Init/casa.jpg
|
||||
/Back/skydiveLogs-api/Init/caravan.jpg
|
||||
/Back/skydiveLogs-api/Init/206.jpg
|
||||
/Back/skydiveLogs-api/Data
|
||||
/Back/skydiveLogs-api.DomainService/bin
|
||||
/Back/skydiveLogs-api.DomainService/obj
|
||||
/Back/skydiveLogs-api.Data/obj
|
||||
/Back/skydiveLogs-api.Business/obj
|
||||
/Back/skydiveLogs-api.Domain/obj
|
||||
/Back/skydiveLogs-api.Domain/bin/Debug/net5.0
|
||||
/Back/skydiveLogs-api.Data/bin/Debug/net5.0
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/ref/skydiveLogs-api.Domain.dll
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.dll
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.pdb
|
||||
/Back/skydiveLogs-api/Data/JumpsDb-log.db
|
||||
/Back/skydiveLogs-api/Data/JumpsDb.db
|
||||
Back/skydiveLogs-api/Data/JumpsDb.db
|
||||
Back/skydiveLogs-api/Data/JumpsDb-log.db
|
||||
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.deps.json
|
||||
/Back/skydiveLogs-api.Domain/bin/Debug/net6.0
|
||||
Back/skydiveLogs-api/Data/JumpsDb.db
|
||||
|
||||
35
Back/.vscode/launch.json
vendored
Normal file
35
Back/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||
// Use hover for the description of the existing attributes
|
||||
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
|
||||
"name": ".NET Core Launch (web)",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "build",
|
||||
// If you have changed target frameworks, make sure to update the program path.
|
||||
"program": "${workspaceFolder}/skydiveLogs-api/bin/Debug/net6.0/skydiveLogs-api.dll",
|
||||
"args": [],
|
||||
"cwd": "${workspaceFolder}/skydiveLogs-api",
|
||||
"stopAtEntry": false,
|
||||
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
|
||||
"serverReadyAction": {
|
||||
"action": "openExternally",
|
||||
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
|
||||
},
|
||||
"env": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/Views": "${workspaceFolder}/Views"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach"
|
||||
}
|
||||
]
|
||||
}
|
||||
41
Back/.vscode/tasks.json
vendored
Normal file
41
Back/.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "build",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"build",
|
||||
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "publish",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"publish",
|
||||
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "watch",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"watch",
|
||||
"run",
|
||||
"--project",
|
||||
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Domain</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Domain</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.DomainBusiness</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.DomainService</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.DomainService</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Infrastructure</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LiteDB" Version="5.0.11" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainService\skydiveLogs-api.DomainService.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Infrastructure</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LiteDB" Version="5.0.12" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainService\skydiveLogs-api.DomainService.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Ioc</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.Infrastructure\skydiveLogs-api.Infrastructure.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Extensions.Configuration.Abstractions">
|
||||
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.abstractions\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
|
||||
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.dependencyinjection.abstractions\2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>skydiveLogs_api.Ioc</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.Infrastructure\skydiveLogs-api.Infrastructure.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,129 +1,129 @@
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using skydiveLogs_api.DomainBusiness.Interfaces;
|
||||
using skydiveLogs_api.Ioc;
|
||||
using skydiveLogs_api.Settings;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace skydiveLogs_api
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
Configuration = configuration;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
if (env.EnvironmentName == "Development")
|
||||
{
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
else
|
||||
{
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
app.UseCors();
|
||||
app.UseAuthentication();
|
||||
|
||||
app.UseMvc();
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddMvc(options => { options.EnableEndpointRouting = false; })
|
||||
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
|
||||
|
||||
services.AddHttpContextAccessor();
|
||||
|
||||
// JWT
|
||||
var jwtSection = Configuration.GetSection("JWT");
|
||||
services.Configure<JwtSettings>(jwtSection);
|
||||
|
||||
var jwtSettings = new JwtSettings();
|
||||
jwtSection.Bind(jwtSettings);
|
||||
|
||||
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||
.AddJwtBearer(options =>
|
||||
{
|
||||
options.SaveToken = true;
|
||||
options.TokenValidationParameters = new TokenValidationParameters()
|
||||
{
|
||||
ValidateIssuer = true,
|
||||
ValidateAudience = true,
|
||||
ValidateLifetime = true,
|
||||
ValidateIssuerSigningKey = true,
|
||||
ValidIssuer = jwtSettings.Issuer,
|
||||
ValidAudience = jwtSettings.Issuer,
|
||||
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Passphrase))
|
||||
};
|
||||
});
|
||||
|
||||
// CORS
|
||||
var corsSettings = new CorsSettings();
|
||||
Configuration.GetSection("Cors").Bind(corsSettings);
|
||||
|
||||
services.AddCors(options =>
|
||||
{
|
||||
options.AddDefaultPolicy(
|
||||
builder =>
|
||||
{
|
||||
builder.WithOrigins(corsSettings.FrontUrl)
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod();
|
||||
});
|
||||
});
|
||||
|
||||
// IoC
|
||||
var iocService = new IocService(services, Configuration);
|
||||
iocService.Configure();
|
||||
|
||||
// AutoMapper
|
||||
services.AddAutoMapper(typeof(Mapper.ModelProfile));
|
||||
|
||||
CheckAndInitDb(services);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void CheckAndInitDb(IServiceCollection services)
|
||||
{
|
||||
string connectionString = Configuration.GetConnectionString("DefaultConnection");
|
||||
string dbFile = connectionString.Replace("Filename=", string.Empty);
|
||||
|
||||
if (!File.Exists(dbFile))
|
||||
{
|
||||
var serviceProvider = services.BuildServiceProvider();
|
||||
var initDbService = serviceProvider.GetRequiredService<IInitDbService>();
|
||||
initDbService.GenerateDb();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public IConfiguration Configuration { get; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using skydiveLogs_api.DomainBusiness.Interfaces;
|
||||
using skydiveLogs_api.Ioc;
|
||||
using skydiveLogs_api.Settings;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace skydiveLogs_api
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
Configuration = configuration;
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
if (env.EnvironmentName == "Development")
|
||||
{
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
else
|
||||
{
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
app.UseCors();
|
||||
app.UseAuthentication();
|
||||
|
||||
app.UseMvc();
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddMvc(options => { options.EnableEndpointRouting = false; });
|
||||
//.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
|
||||
|
||||
services.AddHttpContextAccessor();
|
||||
|
||||
// JWT
|
||||
var jwtSection = Configuration.GetSection("JWT");
|
||||
services.Configure<JwtSettings>(jwtSection);
|
||||
|
||||
var jwtSettings = new JwtSettings();
|
||||
jwtSection.Bind(jwtSettings);
|
||||
|
||||
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||
.AddJwtBearer(options =>
|
||||
{
|
||||
options.SaveToken = true;
|
||||
options.TokenValidationParameters = new TokenValidationParameters()
|
||||
{
|
||||
ValidateIssuer = true,
|
||||
ValidateAudience = true,
|
||||
ValidateLifetime = true,
|
||||
ValidateIssuerSigningKey = true,
|
||||
ValidIssuer = jwtSettings.Issuer,
|
||||
ValidAudience = jwtSettings.Issuer,
|
||||
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Passphrase))
|
||||
};
|
||||
});
|
||||
|
||||
// CORS
|
||||
var corsSettings = new CorsSettings();
|
||||
Configuration.GetSection("Cors").Bind(corsSettings);
|
||||
|
||||
services.AddCors(options =>
|
||||
{
|
||||
options.AddDefaultPolicy(
|
||||
builder =>
|
||||
{
|
||||
builder.WithOrigins(corsSettings.FrontUrl)
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod();
|
||||
});
|
||||
});
|
||||
|
||||
// IoC
|
||||
var iocService = new IocService(services, Configuration);
|
||||
iocService.Configure();
|
||||
|
||||
// AutoMapper
|
||||
services.AddAutoMapper(typeof(Mapper.ModelProfile));
|
||||
|
||||
CheckAndInitDb(services);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void CheckAndInitDb(IServiceCollection services)
|
||||
{
|
||||
string connectionString = Configuration.GetConnectionString("DefaultConnection");
|
||||
string dbFile = connectionString.Replace("Filename=", string.Empty);
|
||||
|
||||
if (!File.Exists(dbFile))
|
||||
{
|
||||
var serviceProvider = services.BuildServiceProvider();
|
||||
var initDbService = serviceProvider.GetRequiredService<IInitDbService>();
|
||||
initDbService.GenerateDb();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#region Public Properties
|
||||
|
||||
public IConfiguration Configuration { get; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
}
|
||||
@@ -1,34 +1,34 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
||||
<RootNamespace>skydiveLogs_api</RootNamespace>
|
||||
<UserSecretsId>9d7d268e-ee4d-43a2-a9b7-5b00b516f6f8</UserSecretsId>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="Data\JumpsDb.db" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="Data\JumpsDb.db">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="10.1.1" />
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.9" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.12.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Ioc\skydiveLogs-api.Ioc.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
||||
<RootNamespace>skydiveLogs_api</RootNamespace>
|
||||
<UserSecretsId>9d7d268e-ee4d-43a2-a9b7-5b00b516f6f8</UserSecretsId>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="Data\JumpsDb.db" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="Data\JumpsDb.db">
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="12.0.0" />
|
||||
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.10" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.25.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Ioc\skydiveLogs-api.Ioc.csproj" />
|
||||
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Controller_SelectedScaffolderID>ApiControllerWithActionsScaffolder</Controller_SelectedScaffolderID>
|
||||
<Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath>
|
||||
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
|
||||
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
|
||||
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
|
||||
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
|
||||
<WebStackScaffolding_LayoutPageFile />
|
||||
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
|
||||
<NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile>
|
||||
<ShowAllFiles>false</ShowAllFiles>
|
||||
<ActiveDebugProfile>skydiveLogs_api</ActiveDebugProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Controller_SelectedScaffolderID>ApiControllerWithActionsScaffolder</Controller_SelectedScaffolderID>
|
||||
<Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath>
|
||||
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
|
||||
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
|
||||
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
|
||||
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
|
||||
<WebStackScaffolding_LayoutPageFile />
|
||||
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
|
||||
<NameOfLastUsedPublishProfile>C:\Projects\SkydiveLogs\Back\skydiveLogs-api\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||
<ShowAllFiles>false</ShowAllFiles>
|
||||
<ActiveDebugProfile>skydiveLogs_api</ActiveDebugProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
56
Dockerfile
56
Dockerfile
@@ -1,29 +1,29 @@
|
||||
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:5.0.6-buster-slim-amd64 AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 80
|
||||
|
||||
RUN apt-get -y update
|
||||
RUN apt-get -y install nginx
|
||||
|
||||
RUN mkdir /app/Front
|
||||
RUN mkdir /app/API
|
||||
|
||||
WORKDIR /app/Front
|
||||
COPY Front/skydivelogs-app/dist .
|
||||
|
||||
WORKDIR /app/API
|
||||
COPY Back/dist .
|
||||
|
||||
COPY start-docker.sh /start-docker.sh
|
||||
RUN chmod +x /start-docker.sh
|
||||
|
||||
RUN update-rc.d nginx defaults
|
||||
|
||||
COPY nginx.conf /etc/nginx/sites-available/default
|
||||
|
||||
VOLUME /app/API/Data
|
||||
VOLUME /app/Front/config
|
||||
|
||||
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:7.0.4-buster-slim-amd64 AS base
|
||||
WORKDIR /app
|
||||
EXPOSE 80
|
||||
|
||||
RUN apt-get -y update
|
||||
RUN apt-get -y install nginx
|
||||
|
||||
RUN mkdir /app/Front
|
||||
RUN mkdir /app/API
|
||||
|
||||
WORKDIR /app/Front
|
||||
COPY Front/skydivelogs-app/dist .
|
||||
|
||||
WORKDIR /app/API
|
||||
COPY Back/dist .
|
||||
|
||||
COPY start-docker.sh /start-docker.sh
|
||||
RUN chmod +x /start-docker.sh
|
||||
|
||||
RUN update-rc.d nginx defaults
|
||||
|
||||
COPY nginx.conf /etc/nginx/sites-available/default
|
||||
|
||||
VOLUME /app/API/Data
|
||||
VOLUME /app/Front/config
|
||||
|
||||
CMD ["/start-docker.sh"]
|
||||
12
doc.txt
12
doc.txt
@@ -1,6 +1,6 @@
|
||||
To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.2.6
|
||||
To run ab image to container with volume : docker run -v C:\toto\logs\config:/app/Front/config -v C:\toto\logs\db:/app/API/Data -p 5080:80/tcp --name Test -it skydivelogs:0.1
|
||||
|
||||
docker save --output skydivelogs-1.2.6.tar skydivelogs:1.2.6
|
||||
|
||||
scp -P 5022 skydivelogs-1.2.6.tar administrator@51.75.68.58:~
|
||||
To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.3.2
|
||||
To run ab image to container with volume : docker run -v C:\toto\logs\config:/app/Front/config -v C:\toto\logs\db:/app/API/Data -p 5080:80/tcp --name Test -it skydivelogs:0.1
|
||||
|
||||
docker save --output skydivelogs-1.3.2.tar skydivelogs:1.3.2
|
||||
|
||||
scp -P 5022 skydivelogs-1.3.2.tar administrator@51.75.68.58:~
|
||||
|
||||
Reference in New Issue
Block a user