Files
Antifraude.Net/.codex-links/WebIntranet/intPicadaPersonal.aspx.vb
2026-04-30 08:55:00 +02:00

112 lines
5.1 KiB
VB.net

Imports System.Net
Imports System.Net.Security
Public Class intPicadaPersonal
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("usuario") = "" Then
Response.Redirect("default.aspx")
End If
estIncPicBL.Visible = False
If Session("modo") = "PERSONAL" Then
If Session("persona").Personas(0).Dni = "44286377S" Then
estIncPicBL.Visible = True
End If
Dim persons As List(Of Models.Personal) = Session("persona").Personas
Dim listaPersonas As New List(Of Models.Personal)
Dim listDni = Session("usuariosSeleccionados")
For Each pers As String In listDni
Dim per = persons.FirstOrDefault(Function(x) x.Dni = pers)
listaPersonas.Add(per)
Next
cbPersonas.DataSource = listaPersonas.OrderBy(Function(x) x.Nombre)
cbPersonas.DataBind()
'Dim DivSelect = "<select class='selectIn' style='width:100%'>"
'For Each pers As Models.Personal In listaPersonas
' DivSelect += "<option value='" + pers.Dni + "'>" + pers.Nombre + "</option>"
'Next
'DivSelect += "</select>"
'selPersonas.InnerHtml = DivSelect
Else
Li1.Visible = False
End If
End Sub
Private Sub selIncidencia_Init(sender As Object, e As EventArgs) Handles selIncidencia.Init
Dim ListadoIncidencias = CargarSelectIncidenciasControlHorario(True)
selIncidencia.DataSource = ListadoIncidencias
'selIncidencia.DataTextField = "Descripcion"
'selIncidencia.DataValueField = "idIncidencias"
selIncidencia.DataBind()
End Sub
Private Function CargarSelectIncidenciasControlHorario(Soloreloj As Boolean) As List(Of Models.Incidencia)
Dim usuario As String = "tecnosis"
Dim contraseña As String = "patata2022"
Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/IncidenciasControlHorario"
Dim credenciales3 As New Net.CredentialCache()
credenciales3.Add(New Uri(url3), "Basic", New Net.NetworkCredential(usuario, contraseña))
Dim clienteHTTP3 As New Net.WebClient()
clienteHTTP3.Encoding = System.Text.Encoding.UTF8
clienteHTTP3.Credentials = credenciales3
Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
deserializador3.MaxJsonLength = Integer.MaxValue
Dim listaPicada As List(Of Models.Incidencia) =
deserializador3.Deserialize(Of List(Of Models.Incidencia))(respuesta3)
Dim InciVacia As New Models.Incidencia
InciVacia.idIncidencias = 0
InciVacia.Descripcion = ""
InciVacia.EsInciReloj = True
listaPicada.Add(InciVacia)
Return listaPicada.Where(Function(x) x.EsInciReloj = Soloreloj).OrderBy(Function(x) x.Descripcion).ToList
End Function
<System.Web.Services.WebMethod()>
Public Shared Function Picar(incidencia As String, fecha As String, hora As String, dni As String) As String
'// A continuación, se realizará una petición al servicio REST
'// de la Oficina Antifraude para identificar al usuario "manuel".
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
Dim clienteHTTP1 As New Net.WebClient()
clienteHTTP1.Encoding = System.Text.Encoding.UTF8
Dim nif = dni
Dim thisDate = CDate(fecha)
Dim thisTime = If(hora IsNot Nothing AndAlso hora <> "", hora, "12:00:00")
Dim fechaActual = DateTime.Now
Dim FechahoraFormatoRest = thisDate.Month.ToString.PadLeft(2, "0") & "%2F" & thisDate.Day.ToString.PadLeft(2, "0") & "%2F" & thisDate.Year.ToString & "%20" & thisTime.Substring(0, 2) & "%3A" & thisTime.Substring(3, 2) & "%3A" & thisTime.Substring(6, 2)
Dim IdIncidencia As String = incidencia
If IdIncidencia = "null" Then
IdIncidencia = "0"
End If
Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/PicadaNueva?Nif=" + nif + "&FechaHora=" + FechahoraFormatoRest + "&idIncideniaReloj=" + IdIncidencia
Dim sRespuesta1 As String = clienteHTTP1.UploadString(url1, "")
Console.WriteLine(fechaActual)
'// Esta es una manera "genérica" de acceder a datos JSON mediante LINQ,
'// usando la biblioteca Newtonsoft.Json.
Dim datos As Newtonsoft.Json.Linq.JObject =
Newtonsoft.Json.JsonConvert.DeserializeObject(Of Newtonsoft.Json.Linq.JObject)(sRespuesta1)
Dim resultado = datos.Item("resultado").ToString
Dim errores = datos.Item("Mensaje").ToString
Dim MensPicada = ""
MensPicada = errores
Dim json = ""
json += "[{""result"":""" + resultado + """,""mensaje"":""" + errores + """}]"
Return json
'Return "hecho"
End Function
End Class