示例#1
0
        public async Task GenPcas()
        {
            throw new NotImplementedException();

            // 此接口不开放,省市区数据同样执行省市区脚本导入至数据库

            //“省份、城市、区县” 三级联动数据 pca-code.json
            //“省份、城市、区县、乡镇” 四级联动数据 pcas-code.json
            var countryId = (int)CountryWithId.China;
            var path      = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SampleContent", "pca-code.json");

            if (!File.Exists(path))
            {
                return;
            }

            var content = File.ReadAllText(path);
            var pcas    = JsonConvert.DeserializeObject <List <SampleDataPcasDto> >(content);

            var list = new List <StateOrProvince>();

            Gen(list, pcas, StateOrProvinceLevel.Default, countryId);

            _provinceRepository.AddRange(list);
            await _provinceRepository.SaveChangesAsync();

            _cache.Clear();
        }
示例#2
0
        public async Task <Result> Upload()
        {
            _cache.Clear();
            await Task.CompletedTask;

            return(Result.Ok());
        }
示例#3
0
        public async Task ResetToSampleData(SampleDataOption model)
        {
            var usePostgres = _sqlRepository.GetDbConnectionType() == "Npgsql.NpgsqlConnection";
            var useSQLite   = _sqlRepository.GetDbConnectionType() == "Microsoft.Data.Sqlite.SqliteConnection";
            var useMySql    = _sqlRepository.GetDbConnectionType().Contains("MySql");

            //var sampleContentFolder = Path.Combine(GlobalConfiguration.ContentRootPath, "Modules", "Shop.Module.SampleData", "SampleContent", model.Industry);
            //Directory.GetCurrentDirectory()

            var sampleContentFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SampleContent", model.Industry);
            var filePath            = usePostgres ? Path.Combine(sampleContentFolder, "ResetToSampleData_Postgres.sql") :
                                      useSQLite?Path.Combine(sampleContentFolder, "ResetToSampleData_SQLite.sql") :
                                          useMySql?Path.Combine(sampleContentFolder, "ResetToSampleData_MySql.sql") :
                                              Path.Combine(sampleContentFolder, "ResetToSampleData.sql");

            var lines    = File.ReadLines(filePath);
            var commands = usePostgres || useSQLite?_sqlRepository.PostgresCommands(lines) :
                               useMySql?_sqlRepository.MySqlCommand(lines) :
                                   _sqlRepository.ParseCommand(lines);

            _sqlRepository.RunCommands(commands);

            await CopyImages(sampleContentFolder);

            _cache.Clear();
        }
示例#4
0
        public async Task ResetToSampleData(SampleDataOption model)
        {
            if (_options.Value.ShopEnv == ShopEnv.PRO)
            {
                throw new Exception("正式环境不允许此操作!");
            }

            var usePostgres = _sqlRepository.GetDbConnectionType() == "Npgsql.NpgsqlConnection";
            var useSQLite   = _sqlRepository.GetDbConnectionType() == "Microsoft.Data.Sqlite.SqliteConnection";
            var useMySql    = _sqlRepository.GetDbConnectionType().Contains("MySql");

            var sampleContentFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SampleContent", model.Industry);
            var filePath            = usePostgres ? Path.Combine(sampleContentFolder, "ResetToSampleData_Postgres.sql") :
                                      useSQLite?Path.Combine(sampleContentFolder, "ResetToSampleData_SQLite.sql") :
                                          useMySql?Path.Combine(sampleContentFolder, "ResetToSampleData_MySql.sql") :
                                              Path.Combine(sampleContentFolder, "ResetToSampleData.sql");

            var lines    = File.ReadLines(filePath);
            var commands = usePostgres || useSQLite?_sqlRepository.PostgresCommands(lines) :
                               useMySql?_sqlRepository.MySqlCommand(lines) :
                                   _sqlRepository.ParseCommand(lines);

            _sqlRepository.RunCommands(commands);

            await CopyImages(sampleContentFolder);

            _cache.Clear();
        }
示例#5
0
 public virtual IActionResult ClearCache(string returnUrl = "")
 {
     _cacheManager.Clear();
     //home page
     if (string.IsNullOrEmpty(returnUrl))
     {
         return(RedirectToAction("Index", "Home", new { area = AreaNames.Admin }));
     }
     //prevent open redirection attack
     if (!Url.IsLocalUrl(returnUrl))
     {
         return(RedirectToAction("Index", "Home", new { area = AreaNames.Admin }));
     }
     return(Redirect(returnUrl));
 }
示例#6
0
        public virtual IActionResult ClearCache(string returnUrl = "")
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageMaintenance))
            //    return AccessDeniedView();

            _cacheManager.Clear();

            //home page
            //if (string.IsNullOrEmpty(returnUrl))
            //    return RedirectToAction("Index", "Home", new { area = AreaNames.Admin });

            ////prevent open redirection attack
            //if (!Url.IsLocalUrl(returnUrl))
            //    return RedirectToAction("Index", "Home", new { area = AreaNames.Admin });

            return(Redirect(returnUrl));
        }
示例#7
0
        /// <summary>
        /// Clear all cache data
        /// </summary>
        protected virtual async Task ClearAsync()
        {
            _perRequestCacheManager.Clear();

            foreach (var endPoint in _connectionWrapper.GetEndPoints())
            {
                var server = _connectionWrapper.GetServer(endPoint);

                //we can use the code below (commented), but it requires administration permission - ",allowAdmin=true"
                //server.FlushDatabase();

                //that's why we manually delete all elements
                var keys = server.Keys(database: _database.Database);

                //we should always persist the data protection key list
                keys = keys.Where(key => !key.ToString().Equals(RedisConfiguration.DataProtectionKeysName, StringComparison.OrdinalIgnoreCase));

                await _database.KeyDeleteAsync(keys.ToArray());
            }
        }
示例#8
0
 /// <summary>
 /// Executes a task
 /// </summary>
 public void Execute()
 {
     _staticCacheManager.Clear();
 }
示例#9
0
 /// <summary>
 /// Clear cache
 /// </summary>
 public virtual void ClearCache()
 {
     _cacheManager.Clear();
 }
示例#10
0
        public async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            _staticCacheManager.Clear();

            await Task.Delay(5000, cancellationToken);
        }