📄 hasrulesmanager.vb
字号:
Imports CSLA.BrokenRules
<Serializable()> _
Public Class HasRulesManager
Inherits BusinessBase
Private mName As String = ""
Public Property Name() As String
Get
Return mName
End Get
Set(ByVal Value As String)
If mName <> Value Then
mName = Value
BrokenRules.CheckRules("Name")
MarkDirty()
End If
End Set
End Property
Protected Overrides Sub AddBusinessRules()
With BrokenRules
.SetTargetObject(Me)
.AddRule(AddressOf NameRequired, "Name")
.AddRule(AddressOf NameLength, "Name", New MaxLengthArgs(10))
.CheckRules()
End With
End Sub
<Description("{0} required")> _
Private Function NameRequired(ByVal target As Object, ByVal e As RuleArgs) As Boolean
Return Len(mName) > 0
End Function
<Description("{0} too long")> _
Private Function NameLength(ByVal target As Object, ByVal e As RuleArgs) As Boolean
If Len(mName) <= DirectCast(e, MaxLengthArgs).MaxLength Then
Return True
Else
e.Description = "The value for {0} is too long"
Return False
End If
End Function
<Serializable()> _
Private Class Criteria
Public Name As String
Public Sub New()
Name = "<new>"
End Sub
Public Sub New(ByVal Name As String)
Me.Name = Name
End Sub
End Class
Public Shared Function NewHasRulesManager() As HasRulesManager
Return DirectCast(DataPortal.Create(New Criteria), HasRulesManager)
End Function
Public Shared Function GetHasRulesManager(ByVal Name As String) As HasRulesManager
Return DirectCast(DataPortal.Fetch(New Criteria(Name)), HasRulesManager)
End Function
Public Shared Sub DeleteHasRulesManager(ByVal Name As String)
DataPortal.Delete(New Criteria(Name))
End Sub
Private Sub New()
' prevent direct creation
AddBusinessRules()
End Sub
Protected Overrides Sub DataPortal_Create(ByVal Criteria As Object)
Dim crit As Criteria = DirectCast(Criteria, Criteria)
mName = crit.Name
Session.Add("HasRulesManager", "Created")
End Sub
Protected Overrides Sub DataPortal_Fetch(ByVal Criteria As Object)
Dim crit As Criteria = DirectCast(Criteria, Criteria)
mName = crit.Name
MarkOld()
Session.Add("HasRulesManager", "Fetched")
End Sub
Protected Overrides Sub DataPortal_Update()
If IsDeleted Then
' we would delete here
Session.Add("HasRulesManager", "Deleted")
MarkNew()
Else
If IsNew Then
' we would insert here
Session.Add("HasRulesManager", "Inserted")
Else
' we would update here
Session.Add("HasRulesManager", "Updated")
End If
MarkOld()
End If
End Sub
Protected Overrides Sub DataPortal_Delete(ByVal Criteria As Object)
' we would delete here
Session.Add("HasRulesManager", "Deleted")
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -