Changed the default way to modify values in store. Added basic validation to stores. Using interfaces to DI store objects.

This commit is contained in:
Tom
2025-01-16 19:49:02 +00:00
parent b00c72ec2a
commit ee3f128a9f
24 changed files with 173 additions and 61 deletions

View File

@@ -39,13 +39,19 @@ namespace HermesSocketServer.Store
protected override void OnInitialAdd(string key, TTSVoice value)
{
ArgumentException.ThrowIfNullOrWhiteSpace(key, nameof(key));
ArgumentNullException.ThrowIfNull(value, nameof(value));
_idValidator.Check(value.Id);
_nameValidator.Check(value.Name);
}
protected override void OnInitialModify(string key, TTSVoice value)
protected override void OnInitialModify(string key, TTSVoice oldValue, TTSVoice newValue)
{
_nameValidator.Check(value.Name);
ArgumentNullException.ThrowIfNull(newValue, nameof(newValue));
_idValidator.Check(newValue.Id);
_nameValidator.Check(newValue.Name);
ArgumentOutOfRangeException.ThrowIfNotEqual(oldValue.Id, newValue.Id, nameof(oldValue.Id));
ArgumentOutOfRangeException.ThrowIfEqual(oldValue.Name, newValue.Name, nameof(oldValue.Name));
}
protected override void OnPostRemove(string key, TTSVoice value)