API oldaláról sokminden

This commit is contained in:
2025-01-29 16:56:10 +01:00
parent 3669267898
commit d5cbeea8f4
46 changed files with 848 additions and 16 deletions
+6 -5
View File
@@ -9,22 +9,23 @@ using Serilog;
using WorkFlowCheck.BL.Mappings;
using WorkFlowCheck.BL.Infra;
using WorkFlowCheck.DL.Seed;
using WorkFlowCheck.Common.RequestContext;
using WorkFlowCheck.API.RequestContext;
var builder = WebApplication.CreateBuilder(args);
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.CreateLogger();
builder.Services.AddAutoMapper(typeof(MapperProfile));
builder.Services.AddMemoryCache();
builder.Services.AddHttpContextAccessor();
builder.Services.AddScoped<IRequestContext, HttpRequestContext>();
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(connectionString));
options.UseSqlServer(connectionString, x => x.MigrationsAssembly("WorkFlowCheck.DL")));
//DI
DIConfig.DIInit(builder.Services);
@@ -0,0 +1,37 @@
using Microsoft.Extensions.Caching.Memory;
using System.Diagnostics;
using System.Security.Claims;
using WorkFlowCheck.Common.Constants;
using WorkFlowCheck.Common.DTO;
using WorkFlowCheck.Common.RequestContext;
namespace WorkFlowCheck.API.RequestContext
{
public class HttpRequestContext : IRequestContext
{
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IMemoryCache _memoryCache;
public HttpRequestContext(IHttpContextAccessor httpContextAccessor, IMemoryCache memoryCache)
{
_httpContextAccessor = httpContextAccessor;
_memoryCache = memoryCache;
TraceId = Activity.Current?.Id;
}
public string TraceId { get; }
public int? CurrentUserId => CurrentDbUser?.Id;
public string CurrentUsername => CurrentHttpUser?.Identity.Name;
public string CurrentUserEmail => CurrentHttpUser?.FindFirst(System.Security.Claims.ClaimTypes.Email)?.Value;
public CancellationToken RequestAborted => _httpContextAccessor.HttpContext.RequestAborted;
private UserDTO CurrentDbUser => _memoryCache.Get<UserDTO>(MemoryCacheNames.UsersNamePrefix + CurrentUserEmail);
private ClaimsPrincipal CurrentHttpUser => _httpContextAccessor.HttpContext.User;
}
}
@@ -18,6 +18,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.12">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Serilog.AspNetCore" Version="8.0.3" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
+1 -1
View File
@@ -1,6 +1,6 @@
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=WS2016DC\\SQLEXPRESS;Initial Catalog=WFC;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"
"DefaultConnection": "Data Source=WS2016DC\\SQLEXPRESS;Initial Catalog=WFCUAT;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"
},
"ApiKey": "RUJeLSpSMzVASUdaRCEzUyYxRSE0VyFISFRSJC0zRzhLM1hCSDU=",
"Logging": {