Moved projects to their own separate subdirectories

This commit is contained in:
2023-03-27 21:48:25 -05:00
parent baf38aa3cd
commit 9b590bb4fa
134 changed files with 0 additions and 0 deletions

View File

@ -0,0 +1,41 @@
using System.Security.Claims;
using YABA.API.Extensions;
using YABA.Common.Extensions;
using YABA.Common.Lookups;
using YABA.Service.Interfaces;
namespace YABA.API.Middlewares
{
public class AddCustomClaimsMiddleware
{
private readonly RequestDelegate _next;
public AddCustomClaimsMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext httpContext, IUserService userService)
{
if (httpContext.User != null && httpContext.User.Identity.IsAuthenticated)
{
var userAuthProviderId = httpContext.User.Identity.GetAuthProviderId();
if (!string.IsNullOrEmpty(userAuthProviderId))
{
var userId = userService.GetUserId(userAuthProviderId);
if(userId <= 0)
{
var registedUser = await userService.RegisterUser(userAuthProviderId);
userId = registedUser.Id;
}
httpContext.User.Identities.FirstOrDefault().AddClaim(new Claim(ClaimsLookup.UserId.GetClaimName(), userId.ToString()));
}
}
await _next(httpContext);
}
}
}

View File

@ -0,0 +1,26 @@
using Serilog.Context;
using YABA.Common.Extensions;
namespace YABA.API.Middlewares
{
public class AddCustomLoggingPropertiesMiddleware
{
private readonly RequestDelegate _next;
public AddCustomLoggingPropertiesMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext httpContext)
{
if(httpContext.Request.Path.HasValue && httpContext.Request.Path.Value.Contains("/api"))
{
LogContext.PushProperty("UserId", httpContext.User.Identity.IsAuthenticated ? httpContext.User.Identity.GetUserId() : "Anonymous");
LogContext.PushProperty("RemoteIpAddress", httpContext.Connection.RemoteIpAddress.MapToIPv4());
}
await _next(httpContext);
}
}
}