Class MultipleUniqueAttribute
Enforces validation that the combination of specified property names must be unique for each instance of this object
Inheritance
MultipleUniqueAttribute
Inherited Members
Namespace: LemonEdge.API.Attributes.Validation
Assembly: LemonEdge.API.dll
Syntax
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Interface, Inherited = false, AllowMultiple = true)]
public class MultipleUniqueAttribute : DatabaseValidationAttribute
Remarks
For example:
[MultipleUnique(new string[] { nameof(Key1), nameof(Key2) }, AllowNullOrEmpty = false)]
public interface IMyItem
{
string Key1 { get; set; }
string Key2 { get; set; }
int Value { get; set; }
}
Constructors
MultipleUniqueAttribute(params string[])
Declaration
public MultipleUniqueAttribute(params string[] jointUniqueProperties)
Parameters
Type | Name | Description |
---|---|---|
string[] | jointUniqueProperties |
Properties
AllowNullOrEmpty
Indicates that null or empty values are allowed on the referenced JointUniqueProperties
Declaration
public bool AllowNullOrEmpty { get; set; }
Property Value
Type | Description |
---|---|
bool |
JointUniqueProperties
The list of properties to ensure the combination of is always unique in the database
Declaration
public virtual string[] JointUniqueProperties { get; set; }
Property Value
Type | Description |
---|---|
string[] |
TypeId
Have to override this if AllowMultiple is true
Declaration
public override object TypeId { get; }
Property Value
Type | Description |
---|---|
object |
Overrides
Methods
GetItemsToCheckFilter(List<IBaseEntity>, IReadOnlyCache)
Declaration
protected virtual Task<QueryableFilter> GetItemsToCheckFilter(List<IBaseEntity> items, IReadOnlyCache cache)
Parameters
Type | Name | Description |
---|---|---|
List<IBaseEntity> | items | |
IReadOnlyCache | cache |
Returns
Type | Description |
---|---|
Task<QueryableFilter> |
IsValid(object, IEntityUpdater, IReadOnlyCache, UserInfo, ValidationContext)
The validation method to return if the item, and changes, are valid or not
Declaration
protected override Task<ValidationResult> IsValid(object value, IEntityUpdater dbCon, IReadOnlyCache cache, UserInfo user, ValidationContext validationContext)
Parameters
Type | Name | Description |
---|---|---|
object | value | The item to be validated |
IEntityUpdater | dbCon | A connection to the database to use for validation |
IReadOnlyCache | cache | A local cache of current items to speed validation |
UserInfo | user | The current logged in user who made the changes |
ValidationContext | validationContext | The validation context across all changes |
Returns
Type | Description |
---|---|
Task<ValidationResult> | A task holding the validation result |