namespace MyOffice.Web.Controllers; using System.Security.Authentication; using Core.Extensions; using IdentityModel; using Microsoft.AspNetCore.Mvc; using MyOffice.Web.Models; public class BaseApiController : ControllerBase { public Guid UserId { get { var subject = User.Claims.FirstOrDefault(x => x.Type == JwtClaimTypes.Subject)?.Value; if (subject.IsPresent() && Guid.TryParse(subject, out var guid)) return guid; throw new AuthenticationException("Get UserId failed"); } } public ObjectResult ProblemBadResponse(string? detail = null) { return Problem(detail, statusCode: StatusCodes.Status400BadRequest); } public ObjectResult OkResponse(IResponseModel response) { return Ok(response); } public ObjectResult OkResponse(IEnumerable response) where T : IResponseModel { return Ok(response); } }