private void SetSessionData(StateManagementModel stateManagementModel)
 {
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyId, stateManagementModel.Id.ToString());
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyFirstName, stateManagementModel.FirstName);
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyLastName, stateManagementModel.LastName);
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyUserName, stateManagementModel.UserName);
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyJwtToken, stateManagementModel.JwtToken);
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyJwtExpiresOn, handler.ReadJwtToken(stateManagementModel.JwtToken).ValidTo.ToString());
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyRefreshToken, stateManagementModel.RefreshToken);
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyRtExpiresOn, stateManagementModel.RtExpiresOn.ToString());
     _httpContextAccessor.HttpContext.Session.SetString(SessionKeyRoles, string.Join(",", stateManagementModel.Roles));
 }
        public void SetState(PostAuthenticateResponseModel postAuthenticateResponseModel)
        {
            string refreshToken = postAuthenticateResponseModel.RefreshToken.Split(';').Single(x => x.Contains("MovieMind.RefreshToken=")).Substring(24);
            string rtExpiresOn  = postAuthenticateResponseModel.RefreshToken.Split(';').Single(x => x.Contains("expires=")).Substring(9);

            StateManagementModel stateManagementModel = new StateManagementModel
            {
                Id           = postAuthenticateResponseModel.Id,
                FirstName    = postAuthenticateResponseModel.FirstName,
                LastName     = postAuthenticateResponseModel.LastName,
                UserName     = postAuthenticateResponseModel.UserName,
                JwtToken     = postAuthenticateResponseModel.JwtToken,
                JwtExpiresOn = handler.ReadJwtToken(postAuthenticateResponseModel.JwtToken).ValidTo,
                RefreshToken = refreshToken,
                RtExpiresOn  = Convert.ToDateTime(rtExpiresOn).ToUniversalTime(),
                Roles        = postAuthenticateResponseModel.Roles
            };

            SetSessionData(stateManagementModel);
        }
        public void SetSession(string stateManagementModelJson)
        {
            StateManagementModel stateManagementModel = JsonSerializer.Deserialize <StateManagementModel>(stateManagementModelJson);

            SetSessionData(stateManagementModel);
        }