AyCode.Core/AyCode.Models.Server/Logins/AcLoggedInModelServer.cs

38 lines
1.4 KiB
C#

using AyCode.Core.Consts;
using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users;
using AyCode.Interfaces.Server.Logins;
namespace AyCode.Models.Server.Logins;
public class AcLoggedInModelServer<TResultLoggedInModel, TUser, TUserToken, TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcLoggedInModelBase<TUser, TUserToken, TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
where TUserToken : class, IAcUserTokenBase
where TProfile : class, IAcProfile<TProfileAddress>
where TServiceProvider : class, IAcServiceProviderBase
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
where TProfileAddress : class, IAcAddress
{
public bool IsLoggedIn => LoggedInUser != null;
public TUser LoggedInUser { get; private set; }
public string AccessToken { get; private set; }
public AcErrorCode LoginErrorCode { get; set; }
public void AddLoggedInUser(TUser user, string accessToken)
{
LoggedInUser = user;
AccessToken = accessToken;
}
public void Logout()
{
AccessToken = string.Empty;
LoggedInUser = null;
LoginErrorCode = AcErrorCode.Unset;
}
}