- Se traslada versión a git desde tfs

This commit is contained in:
2025-05-30 12:06:37 +02:00
commit b93d857a6f
103 changed files with 86476 additions and 0 deletions

141
VentanaProgreso.xaml.vb Normal file
View File

@@ -0,0 +1,141 @@
Imports System.ComponentModel
Imports System.Threading
Imports DevExpress.Xpf.Core
Public Class VentanaProgreso
Public IVentana As IVentanaProgreso
Private AutoResetEvent As New AutoResetEvent(False)
Dim worker As New BackgroundWorker
Public Cancelar As Boolean
Dim TareasProgreso As New List(Of TareaProgreso)
Public MensajeError As String
'Private _UltimaLinea As TareaProgreso
'Property UltimaLinea As TareaProgreso
' Get
' Return _UltimaLinea
' End Get
' Set(value As TareaProgreso)
' _UltimaLinea = value
' RaisePropertyChanged("UltimaLinea")
' End Set
'End Property
'Public PropertyChanged As PropertyChangedEventHandler
'Protected Overloads Sub RaisePropertyChanged(propertyName As String)
' Dim handler As PropertyChangedEventHandler = Me.PropertyChanged
' If handler IsNot Nothing Then
' Dim e = New PropertyChangedEventArgs(propertyName)
' handler(Me, e)
' End If
'End Sub
Private Sub Window_ContentRendered(sender As Object, e As EventArgs)
' DevExpress.Xpf.Core.DXGridDataController.DisableThreadingProblemsDetection = True
worker.WorkerReportsProgress = True
worker.WorkerSupportsCancellation = True
AddHandler worker.DoWork, AddressOf worker_dowork
AddHandler worker.ProgressChanged, AddressOf worker_ProgressChanged
AddHandler worker.RunWorkerCompleted, AddressOf worker_RunWorkerCompleted
worker.RunWorkerAsync()
'AutoResetEvent.WaitOne()
End Sub
Private Sub worker_dowork(sender As Object, e As DoWorkEventArgs)
Try
IVentana.IniciarTareas(sender)
Me.AutoResetEvent.Set()
Catch ex As Exception
Throw New Exception(ex.Message, ex)
' DXMessageBox.Show(ex.Message, "Atención")
End Try
End Sub
Private Sub worker_ProgressChanged(sender As Object, e As ProgressChangedEventArgs)
Select Case e.UserState.GetType
Case GetType(TareaProgreso)
Me.ProgresoGeneral.EditValue = e.ProgressPercentage
Dim tp As TareaProgreso = e.UserState
Select Case tp.Tipo
Case TiposTareaProgresoEnum.LIMPIAR_FILAS
TareasProgreso.Clear()
Me.gc.RefreshData()
Case TiposTareaProgresoEnum.NUEVA_FILA
Dim tpe = TareasProgreso.Where(Function(t) t.id = tp.id)
If tpe.Count = 0 Then
Dim ntp As New TareaProgreso With {
.id = tp.id,
.Descripcion = tp.Descripcion,
.FechaInicio = tp.FechaInicio,
.Progreso = tp.Progreso}
tv.ScrollIntoView(gc.GetRowByListIndex(gc.VisibleRowCount - 1))
TareasProgreso.Add(ntp)
Else
tpe.First.Progreso = tp.Progreso
End If
Me.gc.RefreshData()
Case TiposTareaProgresoEnum.CAMBIO_TITULO
Me.Title = tp.Descripcion
Case TiposTareaProgresoEnum.EXCEPCION
If Not Cancelar Then
Me.MensajeError = tp.Descripcion
Cancelar = True
Me.worker.CancelAsync()
Me.AutoResetEvent.WaitOne()
End If
Case TiposTareaProgresoEnum.FINALIZAR
Cancelar = False
End Select
Case GetType([Delegate])
Dim proceso As [Delegate] = e.UserState
End Select
End Sub
Private Sub btCancelar_Click(sender As Object, e As RoutedEventArgs)
Cancelar = IVentana.Cancelar 'true
If Cancelar Then
Me.worker.CancelAsync()
Me.AutoResetEvent.WaitOne()
End If
End Sub
Private Sub worker_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
'Me.DialogResult = Not (Cancelar)
' DirectCast(sender, BackgroundWorker).Dispose()
Me.Close()
End Sub
Private Sub VentanaProgreso_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Me.gc.ItemsSource = TareasProgreso
End Sub
Public Sub New()
' Llamada necesaria para el diseñador.
Cancelar = False
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
End Class
Public Class TareaProgreso
Property id As Integer
Property Tipo As TiposTareaProgresoEnum
Property FechaInicio As DateTime
Property Descripcion As String
Property Progreso As Integer
End Class
Public Enum TiposTareaProgresoEnum
LIMPIAR_FILAS
NUEVA_FILA
CAMBIO_TITULO
EXCEPCION
FINALIZAR
End Enum