37 lines
899 B
C#
37 lines
899 B
C#
namespace MyOffice.Web.Controllers;
|
|
|
|
using System.Security.Authentication;
|
|
using Core.Extensions;
|
|
using IdentityModel;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using MyOffice.Web.Models;
|
|
using static IdentityServer4.Models.IdentityResources;
|
|
|
|
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<T>(IEnumerable<T> response) where T : IResponseModel
|
|
{
|
|
return Ok(response);
|
|
}
|
|
} |