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:
@@ -40,10 +40,23 @@ namespace HermesSocketServer.Store
|
||||
|
||||
protected override void OnInitialAdd(string key, RedeemableAction value)
|
||||
{
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(key, nameof(key));
|
||||
ArgumentNullException.ThrowIfNull(value, nameof(value));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(value.UserId, nameof(value.UserId));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(value.Name, nameof(value.Name));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(value.Type, nameof(value.Type));
|
||||
ArgumentNullException.ThrowIfNull(value.Data, nameof(value.Data));
|
||||
}
|
||||
|
||||
protected override void OnInitialModify(string key, RedeemableAction value)
|
||||
protected override void OnInitialModify(string key, RedeemableAction oldValue, RedeemableAction newValue)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(newValue, nameof(newValue));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(newValue.UserId, nameof(newValue.UserId));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(newValue.Name, nameof(newValue.Name));
|
||||
ArgumentException.ThrowIfNullOrWhiteSpace(newValue.Type, nameof(newValue.Type));
|
||||
ArgumentNullException.ThrowIfNull(newValue.Data, nameof(newValue.Data));
|
||||
ArgumentOutOfRangeException.ThrowIfNotEqual(oldValue.UserId, newValue.UserId, nameof(oldValue.UserId));
|
||||
ArgumentOutOfRangeException.ThrowIfNotEqual(oldValue.Name, newValue.Name, nameof(oldValue.Name));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user