Вытащил солюшен на уровень выше, чтобы прощё было дотнетить
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
9
Infrastructure/Common/DateTimeProvider.cs
Normal file
9
Infrastructure/Common/DateTimeProvider.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using ApplicationLayer.InfrastructureServicesInterfaces;
|
||||
|
||||
namespace Infrastructure.Common;
|
||||
|
||||
/// Implements <see cref="IDateTimeProvider"/>
|
||||
public class DateTimeProvider : IDateTimeProvider
|
||||
{
|
||||
DateTime IDateTimeProvider.Now() => DateTime.Now;
|
||||
}
|
||||
18
Infrastructure/Common/UserIdProvider.cs
Normal file
18
Infrastructure/Common/UserIdProvider.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.Security.Claims;
|
||||
using ApplicationLayer.InfrastructureServicesInterfaces;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
namespace Infrastructure.Common;
|
||||
|
||||
public class UserIdProvider(IHttpContextAccessor contextAccessor) : IUserIdProvider
|
||||
{
|
||||
Guid IUserIdProvider.GetUserId()
|
||||
{
|
||||
var claim = contextAccessor.HttpContext!.User.Claims.SingleOrDefault(claim => claim.Type == ClaimTypes.NameIdentifier);
|
||||
if (claim is null)
|
||||
{
|
||||
throw new InvalidOperationException("UserIdProvider call for request with no authorization");
|
||||
}
|
||||
return Guid.Parse(claim.Value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user