public void SetExpired(string appId)
        {
            AccessTokenBag bag = Load(appId);

            bag.SetExpired();
            Store(appId, bag);
        }
        public void Store(string appId, AccessTokenBag bag)
        {
            if (!_AccessTokenBags.Keys.Contains(appId))
            {
                lock (_lockBagInitializing)
                {
                    if (!_AccessTokenBags.Keys.Contains(appId))
                    {
                        _AccessTokenBags.Add(appId, null);
                    }
                }
            }

            _AccessTokenBags[appId] = bag;
        }
        public AccessTokenBag Load(string appId)
        {
            if (string.IsNullOrEmpty(appId))
            {
                throw new ArgumentNullException(nameof(appId));
            }

            AccessTokenBag bag = new AccessTokenBag();

            if (_AccessTokenBags.Keys.Contains(appId))
            {
                bag = _AccessTokenBags[appId];
            }
            return(bag);
        }
 public void Store(string appId, AccessTokenBag bag)
 {
     try
     {
         string filePath = Path.Combine(_FolderPath, appId);
         using (var fs = new FileStream(filePath, FileMode.OpenOrCreate))
             using (var sw = new StreamWriter(fs))
             {
                 sw.WriteLine(bag.AccessTokenJson.access_token);
                 sw.WriteLine(bag.AccessTokenJson.expires_in);
                 sw.WriteLine(bag.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
             }
     }
     catch
     {
     }
 }
        public AccessTokenBag Load(string appId)
        {
            AccessTokenBag bag = new AccessTokenBag();

            try
            {
                string filePath = Path.Combine(_FolderPath, appId);
                using (var fs = new FileStream(filePath, FileMode.Open))
                    using (var sr = new StreamReader(fs))
                    {
                        bag.AccessTokenJson.access_token = sr.ReadLine();
                        bag.AccessTokenJson.expires_in   = int.Parse(sr.ReadLine());
                        bag.CreateTime = DateTime.Parse(sr.ReadLine());
                    }
            }
            catch
            {
            }
            return(bag);
        }
        public string GetToken(string appId)
        {
            AccessTokenBag bag = Load(appId);

            return(bag.AccessTokenJson.access_token);
        }
        public bool IsExpired(string appId)
        {
            AccessTokenBag bag = Load(appId);

            return(bag.IsExpired);
        }