private bool CheckSessionValidity(string key, ZuoraSession session)
        {
            bool valid = DateTime.Now - session.LastLogin > SessionStoragePolicy.SessionStorageExpiration;
            if (!valid) _store.Remove(key);

            return valid;
        }
        public bool StoreSession(ZuoraSession session)
        {
            string key = GenerateCacheKey(session.Environment);
            if (_store.Contains(key)) _store.Remove(key);

            return _store.Add(key, session, new CacheItemPolicy
            {
                AbsoluteExpiration = DateTime.Now.Add(SessionStoragePolicy.SessionStorageExpiration)
            });
        }
        private bool CheckSessionValidity(string key, ZuoraSession session)
        {
            bool valid = DateTime.Now - session.LastLogin > SessionStoragePolicy.SessionStorageExpiration;

            if (!valid)
            {
                _store.Remove(key);
            }

            return(valid);
        }
        public ZuoraSession RetrieveSession(string environment)
        {
            string key = GenerateCacheKey(environment);

            if (!_store.Contains(key))
            {
                return(null);
            }

            ZuoraSession session = (ZuoraSession)_store[key];

            return(CheckSessionValidity(key, session) ? session : null);
        }
        public bool StoreSession(ZuoraSession session)
        {
            string key = GenerateCacheKey(session.Environment);

            if (_store.Contains(key))
            {
                _store.Remove(key);
            }

            return(_store.Add(key, session, new CacheItemPolicy
            {
                AbsoluteExpiration = DateTime.Now.Add(SessionStoragePolicy.SessionStorageExpiration)
            }));
        }
        public static HttpRequest GetCreateExportRequest(string query, ZuoraSession session, string name = "Export")
        {
            HttpRequest request = new HttpRequest
            {
                Url = session.InstanceUrl + SoapUrl,
                Body = ExportCommands.CreateExport(new Export
                {
                    Format = "csv",
                    Name = name,
                    Query = query
                }, session.SessionId),
                Method = RequestType.POST,
            };
            request.Headers.Add("SOAPAction", "create");

            return request;
        }