You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
Imports System.ComponentModel.DataAnnotations
|
|
|
|
|
Imports System.Web.Mvc
|
|
|
|
|
Imports System.Web.Security
|
|
|
|
|
|
|
|
|
|
Public NotInheritable Class AccountNameUniqueAttribute
|
|
|
|
|
Inherits ValidationAttribute
|
|
|
|
|
Implements IClientValidatable
|
|
|
|
|
|
|
|
|
|
Private Const strDefaultErrorMessage As String = "Dieser Benutzername existiert bereits"
|
|
|
|
|
|
|
|
|
|
Public Sub New()
|
|
|
|
|
MyBase.New(strDefaultErrorMessage)
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Protected Overrides Function IsValid(ByVal value As Object, context As ValidationContext) As ValidationResult
|
|
|
|
|
|
|
|
|
|
'--ClientValidation: AccountController.IsAccountNameUnique
|
|
|
|
|
|
|
|
|
|
Dim strWantedName As String = CType(value, String)
|
|
|
|
|
|
|
|
|
|
Dim usr As MembershipUser = Membership.GetUser(strWantedName)
|
|
|
|
|
|
|
|
|
|
If usr IsNot Nothing Then
|
|
|
|
|
Return New ValidationResult(FormatErrorMessage(context.DisplayName))
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Return ValidationResult.Success
|
|
|
|
|
|
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
Public Overrides Function FormatErrorMessage(name As String) As String
|
|
|
|
|
Return String.Format(ErrorMessageString, name)
|
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
Public Function GetClientValidationRules(metadata As System.Web.Mvc.ModelMetadata,
|
|
|
|
|
context As System.Web.Mvc.ControllerContext) As IEnumerable(Of ModelClientValidationRule) Implements IClientValidatable.GetClientValidationRules
|
|
|
|
|
|
|
|
|
|
Dim rule As New ModelClientValidationRule() With {.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
|
|
|
|
|
.ValidationType = "accountnameunique"}
|
|
|
|
|
Return New ModelClientValidationRule() {rule}
|
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
End Class
|