コード例 #1
0
        /// <summary>
        /// Loads the specified local cache.
        /// </summary>
        /// <param name="_localCache">The local cache.</param>
        /// <param name="dbAllPageUrlRepository">The database all page URL repository.</param>
        /// <param name="dbPageUrlRepository">The database page URL repository.</param>
        /// <param name="restoresstyle">The restoresstyle.</param>
        public static void Load(IMemoryCache _localCache, IAllPageURLRepository dbAllPageUrlRepository, IPageURLRepository dbPageUrlRepository, RestoreStoreStyleEnum restoresstyle)
        {
            if (restoresstyle == RestoreStoreStyleEnum.File)
            {
                if (File.Exists(@"storevalues.json"))
                {
                    List <PageURL> _allKeys = JsonConvert.DeserializeObject <List <PageURL> >(File.ReadAllText(@"storevalues.json"));
                    _localCache.Set("AllKeys", _allKeys);
                }
            }

            if (restoresstyle == RestoreStoreStyleEnum.Db)
            {
                var _allKeys = dbAllPageUrlRepository.GetAllPageURL().Result;
                _localCache.Set("AllKeys", _allKeys);
                if (_allKeys != null)
                {
                    if (_allKeys.AllUrls != null)
                    {
                        _allKeys.AllUrls.ForEach(item =>
                        {
                            _localCache.Set(item.ShortURL, item);
                        });
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Stores the specified local cache.
        /// </summary>
        /// <param name="_localCache">The local cache.</param>
        /// <param name="storestyle">The storestyle.</param>
        /// <param name="alldatabase">The alldatabase.</param>
        /// <param name="database">The database.</param>
        public static void Store(IMemoryCache _localCache, RestoreStoreStyleEnum storestyle, IAllPageURLRepository alldatabase, IPageURLRepository database)
        {
            bool blanklist = true;

            var _allKeys = new AllPageUrls();

            _localCache.TryGetValue("AllKeys", out _allKeys);



            if (storestyle == RestoreStoreStyleEnum.File)
            {
                using FileStream fs = File.Create("storevalues.json");

                var    _output = JsonConvert.SerializeObject(_allKeys.AllUrls);
                byte[] bytes   = Encoding.UTF8.GetBytes(_output);
                fs.Write(bytes, 0, bytes.Length);
            }
            if (storestyle == RestoreStoreStyleEnum.Db)
            {
                var allDbkey  = alldatabase.GetAllPageURL();
                var allDbkeys = database.GetAllPageURL();

                Guid originalId = Guid.NewGuid();

                if (allDbkey.Result != null)
                {
                    originalId = allDbkey.Result.Id;
                    blanklist  = false;
                }


                var Allkeys = new AllPageUrls()
                {
                    Id = originalId, AllUrls = new List <PageURL>()
                };

                Allkeys.AllUrls.AddRange(_allKeys.AllUrls);
                if (blanklist)
                {
                    alldatabase.SetAllUrls(Allkeys);
                }
                else
                {
                    alldatabase.Update(Allkeys);
                }
            }
        }