This commit is contained in:
68
server/util/VizCache.cs
Normal file
68
server/util/VizCache.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sockeye.Util
|
||||
{
|
||||
//Viz cache - used by biz objects during get report data to temporarily cache values from database for single request
|
||||
//saves db calls and formatting
|
||||
internal class VizCache
|
||||
{
|
||||
private Dictionary<string, string> _vizCache = new Dictionary<string, string>();
|
||||
// internal VizCache()
|
||||
// {
|
||||
// System.Diagnostics.Debug.WriteLine("constructing vizcache");
|
||||
// }
|
||||
internal void Clear()
|
||||
{
|
||||
_vizCache.Clear();
|
||||
}
|
||||
internal void Add(string value, string key, long? id = 0)
|
||||
{
|
||||
if (value == null) value = string.Empty;
|
||||
_vizCache[$"{key}{id}"] = value;
|
||||
// System.Diagnostics.Debug.WriteLine($"ADD {key}{id} - {value}");
|
||||
}
|
||||
internal string Get(string key, long? id = 0)
|
||||
{
|
||||
string value = null;
|
||||
if (_vizCache.TryGetValue($"{key}{id}", out value))
|
||||
{
|
||||
//System.Diagnostics.Debug.WriteLine($"vizGet cache hit {key}{id}");
|
||||
return value;
|
||||
}
|
||||
else
|
||||
{
|
||||
//System.Diagnostics.Debug.WriteLine($"vizGet cache miss {key}{id}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
internal bool Has(string key, long? id = 0)
|
||||
{
|
||||
return _vizCache.ContainsKey($"{key}{id}");
|
||||
}
|
||||
|
||||
internal bool GetAsBool(string key, long? id = 0)
|
||||
{
|
||||
var s = Get(key, id);
|
||||
if (string.IsNullOrWhiteSpace(s)) return false;
|
||||
return bool.Parse(s);
|
||||
}
|
||||
|
||||
internal decimal? GetAsDecimal(string key, long? id = 0)
|
||||
{
|
||||
var s = Get(key, id);
|
||||
if (string.IsNullOrWhiteSpace(s)) return null;
|
||||
return decimal.Parse(s);
|
||||
}
|
||||
|
||||
internal long? GetAsLong(string key, long? id = 0)
|
||||
{
|
||||
var s = Get(key, id);
|
||||
if (string.IsNullOrWhiteSpace(s)) return null;
|
||||
return long.Parse(s);
|
||||
}
|
||||
|
||||
}//eoc
|
||||
|
||||
}//eons
|
||||
Reference in New Issue
Block a user