Imports System.Text.RegularExpressions Public Class frmDetalleHit Private Util As New ClassMyUtils Public Id As Integer Public IdOT As String Public CadenaOT As String Public Detalles As String Public IdUsuario1 As Integer Public IdUsuario2 As Integer Public IdUsuarioOC As Integer Public calif1 As Boolean Public calif2 As Boolean Public califOC As Boolean Public IsOk As Boolean Private review As Boolean Private compli As Boolean Private IdUser As Integer Private Enum IdUsr Usr1 Usr2 UsrOC Calificado Err End Enum Private EIdUsr As IdUsr Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnSalir.Click Salir() End Sub Private Sub frmDetalleHit_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Util.LogProcesoHit("frmDetalleHit_Load", "Iniciando") review = VariablesGlobales.breview Util.LogProcesoHit("frmDetalleHit_Load", "Review: " & review) compli = VariablesGlobales.bcompli Util.LogProcesoHit("frmDetalleHit_Load", "Compliance: " & compli) IdUser = VariablesGlobales.gblIdUsuario Util.LogProcesoHit("frmDetalleHit_Load", "IdUser: " & IdUser) verificarCalificado() CadenaDetalle() Util.LogProcesoHit("frmDetalleHit_Load", "Finalizando") End Sub Private Function verificarCalificado() As Boolean Util.LogProcesoHit("verificarCalificado", "Iniciando") Try If IsOk Then EIdUsr = IdUsr.Calificado ElseIf IdUsuario1 <> 0 And IdUsuario2 <> 0 And IdUsuarioOC <> 0 Then EIdUsr = IdUsr.Calificado ElseIf IdUsuario1 <> 0 And IdUsuario2 <> 0 And Not calif1 And Not calif2 Then EIdUsr = IdUsr.Calificado ElseIf (IdUsuario1 = 0 Or IdUsuario2 = 0) And compli Then EIdUsr = IdUsr.Calificado ElseIf IdUser = IdUsuario1 Or IdUser = IdUsuario2 Then EIdUsr = IdUsr.Calificado ElseIf IdUsuario1 = 0 And review Then EIdUsr = IdUsr.Usr1 ElseIf IdUsuario2 = 0 And review Then EIdUsr = IdUsr.Usr2 ElseIf IdUsuarioOC = 0 And compli Then EIdUsr = IdUsr.UsrOC Else EIdUsr = IdUsr.Err End If Util.LogProcesoHit("verificarCalificado", "EIdUsr: " & EIdUsr) If EIdUsr = IdUsr.Calificado Or EIdUsr = IdUsr.Err Then btnHit.Enabled = False btnNoHit.Enabled = False End If Catch ex As Exception MessageBox.Show(ex.Message) Util.LogProcesoHit("verificarCalificado", "Error: " & ex.Message) End Try End Function Private Function CadenaDetalle() As Boolean Dim Detalle() As String Util.LogProcesoHit("CadenaDetalle", "Iniciando") Try Util.LogProcesoHit("CadenaDetalle", "Preparando cadena detalle") Label1.Text = "IdOT: " & IdOT rtxtDetalle.Text = "" rtxtCadena.Text = Regex.Replace(CadenaOT, "-(.*?)}", New MatchEvaluator(AddressOf UpperEvaluator)) Detalle = Regex.Split(Detalles, "~", RegexOptions.IgnoreCase) For Each s As String In Detalle Dim detallito() As String = s.Split("|") If detallito.Length = 1 And s.Trim().Length > 0 Then rtxtDetalle.Text += "País Hit: " & vbCr & s & vbCr & vbCr End If If detallito.Length = 9 Then rtxtDetalle.Text += detallito(8) & vbCr rtxtDetalle.Text += "Buscado: " & detallito(7) & vbCr rtxtDetalle.Text += "Porcentaje Nombre: " & detallito(5) & "%" & vbCr rtxtDetalle.Text += "Porcentaje Observaciones: " & detallito(6) & "%" & vbCr rtxtDetalle.Text += "Coincidencia: " & detallito(1) & vbCr rtxtDetalle.Text += detallito(2) & vbCr rtxtDetalle.Text += detallito(3) & vbCr & vbCr End If Next Util.LogProcesoHit("CadenaDetalle", "Fin") Catch ex As Exception MessageBox.Show("Error cargando datos." & vbCr & ex.Message) Util.LogProcesoHit("CadenaDetalle", "Error: " & ex.Message) End Try 'rtxtDetalle.Text = Detalles.Replace("¿|?", vbCr).Replace("|", vbCr) End Function Function UpperEvaluator(ByVal match As Match) As String Return match.Value + vbCr End Function Private Sub rtxtCadena_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles rtxtCadena.KeyPress e.KeyChar = vbNullChar End Sub Private Sub rtxtDetalle_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles rtxtDetalle.KeyPress e.KeyChar = vbNullChar End Sub Private Sub btnHit_Click(sender As System.Object, e As System.EventArgs) Handles btnHit.Click Calificar(True) End Sub Private Function EnviaServicio(resultado As String) As Boolean Dim DTO As New ServiceMT.MindsResponseDTO Dim srv As New ServiceMT.ServiceMTmessageIntegratorClient("BasicHttpBinding_IServiceMTmessageIntegrator") Dim respuesta As String Util.LogProcesoHit("EnviaServicio", "Iniciando") EnviaServicio = False Try Util.LogProcesoHit("EnviaServicio", "Enviando mensaje a ServiceMTmessageIntegratorClient") DTO.MtMessageId = IdOT Util.LogProcesoHit("EnviaServicio", "Enviando IdOT: " & IdOT) DTO.Comments = "" Util.LogProcesoHit("EnviaServicio", "Comments: ") DTO.Response = resultado Util.LogProcesoHit("EnviaServicio", "Response: " & resultado) Util.LogProcesoHit("EnviaServicio", "URL: " & srv.Endpoint.Address.ToString()) respuesta = srv.SetMindsResponse(DTO) Util.LogProcesoHit("EnviaServicio", "Hubo Respuesta") Util.LogProcesoHit("EnviaServicio", "Respuesta: " & respuesta) srv.Close() If respuesta = "OK" Then EnviaServicio = True Else MessageBox.Show("Ocurrió un error intente nuevamente más tarde." & vbCr & respuesta, "EnviaServicio Else") Util.LogProcesoHit("EnviaServicio", "Reversando") ReversoCalificar() End If GuardarRespuestaIntegrador(respuesta) Util.LogProcesoHit("EnviaServicio", "Fin") Catch ex As Exception MessageBox.Show(ex.Message, "EnviaServicio Error") ReversoCalificar() Util.LogProcesoHit("CadenaDetalle", "Error: " & ex.Message) End Try End Function Private Function GuardarRespuestaIntegrador(respuesta As String) As Boolean Dim Ssql As String Dim cls As clsComplejo GuardarRespuestaIntegrador = False Util.LogProcesoHit("GuardarRespuestaIntegrador", "Inicio") Try cls = New clsComplejo() Ssql = "spU_procesoHITCalificarIntegrador " & Id & ",'" & respuesta & "'" cls.fnInserta(Ssql) GuardarRespuestaIntegrador = True Util.LogProcesoHit("GuardarRespuestaIntegrador", "Fin") Catch ex As Exception MessageBox.Show(ex.Message) Util.LogProcesoHit("GuardarRespuestaIntegrador", "Error: " & ex.Message) End Try End Function Private Function ReversoCalificar() As Boolean Dim Ssql As String Dim cls As clsComplejo ReversoCalificar = False Util.LogProcesoHit("ReversoCalificar", "Inicio") Try cls = New clsComplejo() Util.LogProcesoHit("ReversoCalificar", "Reversando Id: " & Id & "EIdUsr: " & EIdUsr) Ssql = "spU_procesoHITCalificarReverso " & Id & "," & EIdUsr cls.fnInserta(Ssql) ReversoCalificar = True Util.LogProcesoHit("ReversoCalificar", "Fin") Catch ex As Exception MessageBox.Show(ex.Message) Util.LogProcesoHit("ReversoCalificar", "Error: " & ex.Message) End Try End Function Private Function Calificar(calificacion As Boolean) As Boolean Dim Usuario As Integer Dim Ssql As String Dim cls As clsComplejo Dim ds As New DataSet Dim resultado As String Calificar = False Cursor = Cursors.WaitCursor Util.LogProcesoHit("Calificar", "Inicio") Try cls = New clsComplejo() Util.LogProcesoHit("Calificando", "ID: " & Int(calificacion) & " IdUser: " & IdUser & " EIdUsr:" & EIdUsr) Ssql = "spI_procesoHITCalificar " & Id & "," & Int(calificacion) & "," & IdUser & "," & EIdUsr If EIdUsr = IdUsr.Usr1 Then resultado = cls.fnInserta(Ssql) If resultado.Trim.Length = 0 Then MessageBox.Show("Calificación registrada con éxito") End If End If If EIdUsr = IdUsr.Usr2 Or EIdUsr = IdUsr.UsrOC Then ds = cls.fdtDataSetTablaESP(Ssql) resultado = IIf(IsDBNull(ds.Tables(0).Rows(0)(0)), "", ds.Tables(0).Rows(0)(0)) If resultado.Trim.Length > 0 Then If Not EnviaServicio(resultado) Then Exit Function End If End If MessageBox.Show("Calificación registrada con éxito") Util.LogProcesoHit("Calificar", "Calificación registrada con éxito") End If Me.Close() Calificar = True Util.LogProcesoHit("Calificar", "Fin") Catch ex As Exception MessageBox.Show(ex.Message) Util.LogProcesoHit("Calificar", "Error: " & ex.Message) Finally Cursor = Cursors.Default End Try End Function Private Sub btnNoHit_Click(sender As System.Object, e As System.EventArgs) Handles btnNoHit.Click Calificar(False) End Sub Private Function Salir() As Boolean Me.Close() End Function End Class