Ejemplo n.º 1
0
 public void SaveSettings <T>(string moduleName, T settings)
 {
     RememberMe <T>(moduleName);
     lock (_Cache)
     {
         using (var f = File.Open($"{_SettingsBaseAddress}{moduleName}.json", FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
         {
             f.Position = 0;
             var tmp = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(settings));
             f.Write(tmp, 0, tmp.Length);
             f.Flush();
             f.SetLength(f.Position);
         }
         _Cache.Cache(_DefaultSettingsKey, moduleName, settings);
     }
 }
Ejemplo n.º 2
0
        public async Task <object> ExecuteScalarAsync(IDbProcedure procedure)
        {
            if (UseCache)
            {
                var cacheResult = CacheProvider.Get <object>(procedure);
                if (cacheResult != null)
                {
                    return(cacheResult);
                }
            }
            using (var connection = await ConnectAsync())
            {
                var command = CreateCommand(procedure);
                command.Connection = connection;
                var result = await command.ExecuteScalarAsync();

                if (UseCache)
                {
                    CacheProvider.Cache(procedure, result);
                }
                return(result);
            }
        }
Ejemplo n.º 3
0
        public object ExecuteScalar(IDbProcedure procedure)
        {
            if (UseCache)
            {
                var cacheResult = CacheProvider.Get <object>(procedure);
                if (cacheResult != null)
                {
                    return(cacheResult);
                }
            }
            var connection = Connect();

            var command = CreateCommand(procedure);

            command.Connection = connection;
            var result = command.ExecuteScalar();

            if (UseCache)
            {
                CacheProvider.Cache(procedure, result);
            }
            return(result);
        }
Ejemplo n.º 4
0
        public void ReadWrite()
        {
            var tmp = new testObj[_Rounds];

            for (int i = 0; i < _Rounds; i++)
            {
                cache.Cache(i.ToString(), tmp[i] = new testObj {
                    I = i
                });
            }
            for (int i = 0; i < _Rounds; i++)
            {
                Assert.Equal(tmp[i].I, cache.Get <testObj>(i.ToString()).I);
            }
        }