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); } }
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); } }
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); }
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); } }