91 lines
4.1 KiB
VB.net
91 lines
4.1 KiB
VB.net
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
Imports DevExpress.ExpressApp.Model
|
|
|
|
Imports DevExpress.ExpressApp.SystemModule
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports DevExpress.Data.Filtering
|
|
|
|
Public Class LockObjectBeforeeditVC
|
|
Inherits DevExpress.ExpressApp.ViewController
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
If TryCast(View, ListView) IsNot Nothing Then
|
|
Dim _ListView As ListView = TryCast(View, ListView)
|
|
Dim _IModelClass As IModelClass
|
|
|
|
_IModelClass = _ListView.Model.ModelClass
|
|
If TryCast(_IModelClass, IModelClassAllowSort).LockObjectBeforeEdit = True Then
|
|
AddHandler Frame.GetController(Of ListViewProcessCurrentObjectController).CustomProcessSelectedItem, AddressOf ListView_CustomProcessSelectedItem
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnDeactivated()
|
|
MyBase.OnDeactivated()
|
|
If TryCast(View, DetailView) IsNot Nothing Then
|
|
'// DetailView után a lock felszabadítása !
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
|
|
Dim _IModelClass As IModelClass = TryCast(View, DetailView).Model.ModelClass
|
|
If TryCast(_IModelClass, IModelClassAllowSort).LockObjectBeforeEdit = True Then
|
|
If View.SelectedObjects.Count > 0 Then
|
|
Dim _ActBusinessObject As Object = TryCast(View.SelectedObjects(0), Object)
|
|
LockingModule.UnLockObject(_uow_lock, _IModelClass.TypeInfo.Type, _ActBusinessObject.Oid.ToString, _User)
|
|
End If
|
|
End If
|
|
End If
|
|
If TryCast(View, ListView) IsNot Nothing Then
|
|
Dim _ListView As ListView = TryCast(View, ListView)
|
|
Dim _IModelClass As IModelClass
|
|
|
|
_IModelClass = _ListView.Model.ModelClass
|
|
If TryCast(_IModelClass, IModelClassAllowSort).LockObjectBeforeEdit = True Then
|
|
RemoveHandler Frame.GetController(Of ListViewProcessCurrentObjectController).CustomProcessSelectedItem, AddressOf ListView_CustomProcessSelectedItem
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ListView_CustomProcessSelectedItem(sender As Object, e As CustomProcessListViewSelectedItemEventArgs)
|
|
'// Objektum lockolása, ha nem megy akkor e.handled=True !
|
|
Try
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
|
|
Dim _IModelClass As IModelClass = TryCast(View, ListView).Model.ModelClass
|
|
Dim _ActBusinessObject As Object = TryCast(View.SelectedObjects(0), Object)
|
|
|
|
If Not LockingModule.LockObject(_uow_lock, _IModelClass.TypeInfo.Type, _ActBusinessObject.Oid.ToString, _User) Then
|
|
e.Handled = True
|
|
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("ObjectKey=?", _ActBusinessObject.Oid.ToString))
|
|
If _LockingObject IsNot Nothing Then
|
|
MsgBox(String.Format(TryCast(_IModelClass, IModelClassAllowSort).LockObjectBeforeEditErrorString, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba!")
|
|
Else
|
|
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Hiba!")
|
|
End Try
|
|
End Sub
|
|
|
|
End Class
|