using System; using System.Security.Principal; using BO.AppServer.Data.Entity; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Logging; using Quadarax.Foundation.Core.Business; namespace BO.AppServer.Business.Services.Base { public abstract class UserContextService : AbstractService { protected UserManager _manUser; protected UserRepo _repoUser; protected UserContextService(UserRepo repoUser, UserManager userManager, IPrincipal currentPrincipal, ILoggerFactory logger) : base(currentPrincipal, logger) { _manUser = userManager ?? throw new ArgumentNullException(nameof(userManager)); _repoUser = repoUser ?? throw new ArgumentNullException(nameof(repoUser)); } protected User GetCurrentUser() { var userIdt = _manUser.FindByNameAsync(CurrentPrincipal.Identity.Name).Result; return _repoUser.GetByIfReference(userIdt.Id); } protected long GetCurrentUserId() { var user = GetCurrentUser(); return user.Id; } } }