using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Service; using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; namespace Ropin.Inspection.Api.Controllers { [Route("api/[controller]")] [ApiController] [Authorize] public class BaseController : ControllerBase { //private readonly IPushMsgService _pushMsgService; //public BaseController(IPushMsgService pushMsgService) //{ // _pushMsgService = pushMsgService; //} public static Guid GetUserId(ClaimsPrincipal claimsPrincipal) { try { //ClaimsPrincipal claimsPrincipal = context.HttpContext.User; var claim = claimsPrincipal?.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier); if (claim == null || string.IsNullOrEmpty(claim.Value)) { return Guid.Empty; } return Guid.Parse(claim.Value); } catch { return Guid.Empty; } } public TsysUserDetailViewModel CurrentUser { get { if (User != null && User.Claims.ToList().Count > 0) { var Claim = User.Claims.First(claim => claim.Type == ClaimValueTypes.String); return Claim == null ? new TsysUserDetailViewModel() : JsonConvert.DeserializeObject(Claim.Value); } else { return new TsysUserDetailViewModel(); } } } } }