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

@@ -38,10 +38,21 @@ namespace HermesSocketServer.Store
protected override void OnInitialAdd(string key, ChatterVoice value)
{
ArgumentException.ThrowIfNullOrWhiteSpace(key, nameof(key));
ArgumentNullException.ThrowIfNull(value, nameof(value));
ArgumentException.ThrowIfNullOrWhiteSpace(value.UserId, nameof(value.UserId));
ArgumentOutOfRangeException.ThrowIfNegativeOrZero(value.ChatterId, nameof(value.ChatterId));
ArgumentException.ThrowIfNullOrWhiteSpace(value.VoiceId, nameof(value.VoiceId));
}
protected override void OnInitialModify(string key, ChatterVoice value)
protected override void OnInitialModify(string key, ChatterVoice oldValue, ChatterVoice newValue)
{
ArgumentNullException.ThrowIfNull(newValue, nameof(newValue));
ArgumentException.ThrowIfNullOrWhiteSpace(newValue.UserId, nameof(newValue.UserId));
ArgumentOutOfRangeException.ThrowIfNegativeOrZero(newValue.ChatterId, nameof(newValue.ChatterId));
ArgumentException.ThrowIfNullOrWhiteSpace(newValue.VoiceId, nameof(newValue.VoiceId));
ArgumentOutOfRangeException.ThrowIfNotEqual(oldValue.UserId, newValue.UserId, nameof(oldValue.UserId));
ArgumentOutOfRangeException.ThrowIfNotEqual(oldValue.ChatterId, newValue.ChatterId, nameof(oldValue.ChatterId));
}
}
}