Updated Default TTS requests to use stores. Added a modify method for grouped save stores.
This commit is contained in:
@ -43,15 +43,15 @@ namespace HermesSocketServer.Store
|
||||
_logger.Information($"Loaded {_store.Count} TTS chatter voices from database.");
|
||||
}
|
||||
|
||||
public override void OnInitialAdd(string key, ChatterVoice value)
|
||||
protected override void OnInitialAdd(string key, ChatterVoice value)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnInitialModify(string key, ChatterVoice value)
|
||||
protected override void OnInitialModify(string key, ChatterVoice value)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnInitialRemove(string key)
|
||||
protected override void OnInitialRemove(string key)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -25,9 +25,9 @@ namespace HermesSocketServer.Store
|
||||
}
|
||||
|
||||
public abstract Task Load();
|
||||
public abstract void OnInitialAdd(K key, V value);
|
||||
public abstract void OnInitialModify(K key, V value);
|
||||
public abstract void OnInitialRemove(K key);
|
||||
protected abstract void OnInitialAdd(K key, V value);
|
||||
protected abstract void OnInitialModify(K key, V value);
|
||||
protected abstract void OnInitialRemove(K key);
|
||||
public abstract Task<bool> Save();
|
||||
|
||||
public V? Get(K key)
|
||||
@ -48,6 +48,31 @@ namespace HermesSocketServer.Store
|
||||
}
|
||||
}
|
||||
|
||||
public bool Modify(K? key, Action<V> action)
|
||||
{
|
||||
if (key == null)
|
||||
return false;
|
||||
|
||||
lock (_lock)
|
||||
{
|
||||
if (_store.TryGetValue(key, out V? value))
|
||||
{
|
||||
if (value == null)
|
||||
return false;
|
||||
|
||||
action(value);
|
||||
if (!_added.Contains(key) && !_modified.Contains(key))
|
||||
{
|
||||
_modified.Add(key);
|
||||
_logger.Information($"added key to _modified {key}");
|
||||
}
|
||||
OnInitialModify(key, value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Remove(K? key)
|
||||
{
|
||||
if (key == null)
|
||||
|
@ -5,6 +5,7 @@ namespace HermesSocketServer.Store
|
||||
V? Get(K key);
|
||||
IDictionary<K, V> Get();
|
||||
Task Load();
|
||||
bool Modify(K? key, Action<V> action);
|
||||
void Remove(K? key);
|
||||
Task<bool> Save();
|
||||
bool Set(K? key, V? value);
|
||||
|
@ -44,15 +44,15 @@ namespace HermesSocketServer.Store
|
||||
_logger.Information($"Loaded {_store.Count} users from database.");
|
||||
}
|
||||
|
||||
public override void OnInitialAdd(string key, User value)
|
||||
protected override void OnInitialAdd(string key, User value)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnInitialModify(string key, User value)
|
||||
protected override void OnInitialModify(string key, User value)
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnInitialRemove(string key)
|
||||
protected override void OnInitialRemove(string key)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -43,18 +43,18 @@ namespace HermesSocketServer.Store
|
||||
_logger.Information($"Loaded {_store.Count} TTS voices from database.");
|
||||
}
|
||||
|
||||
public override void OnInitialAdd(string key, Voice value)
|
||||
protected override void OnInitialAdd(string key, Voice value)
|
||||
{
|
||||
_idValidator.Check(value.Id);
|
||||
_nameValidator.Check(value.Name);
|
||||
}
|
||||
|
||||
public override void OnInitialModify(string key, Voice value)
|
||||
protected override void OnInitialModify(string key, Voice value)
|
||||
{
|
||||
_nameValidator.Check(value.Name);
|
||||
}
|
||||
|
||||
public override void OnInitialRemove(string key)
|
||||
protected override void OnInitialRemove(string key)
|
||||
{
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user