using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XF.Domain.Authentications
{
    public interface ISessionContextProvider
    {
        //public ISessionContext SessionContext { get; set; }

        //public void SetContext(string key);

        HttpContext ChangeSessionByUserId(string id, HttpContext httpContext);
        Task ChangeSessionByUserIdAsync(string userId, CancellationToken cancellation);
        void ChangeSession(string userId, string username, string orgId, string orgname, int orgLevel, string orgAreaCode, string orgAreaName, string[] roles);
        void ChangeSession(ISessionContext sessionContext);
    }
}
