Imports System.Net Imports System.Net.Security Public Class intPicada Inherits System.Web.UI.Page 'Shared sessionUsuario As String 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 If Session("modo") = "PERSONAL" Then 'intPicadaBL.Visible = False 'intTeletrabajoBL.Visible = False End If 'sessionUsuario = Session("usuario") 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 Public Shared Function Picar(incidencia 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 = sessionUsuario Dim fechaActual = DateTime.Now Dim FechahoraFormatoRest = fechaActual.Month.ToString.PadLeft(2, "0") & "%2F" & fechaActual.Day.ToString.PadLeft(2, "0") & "%2F" & fechaActual.Year.ToString & "%20" & fechaActual.Hour.ToString.PadLeft(2, "0") & "%3A" & fechaActual.Minute.ToString.PadLeft(2, "0") & "%3A" & fechaActual.Second.ToString.PadLeft(2, "0") 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 End Function End Class