Imports System.Net Imports System.Net.Security Public Class bolsaDeHoras 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 VAAPBCBL.Visible = False 'bolsaDeHorasBL.Visible = False End If 'sessionUsuario = Session("usuario") Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd") inpFechaFinBolsa.Value = fechaToday inpFechaIniBolsa.Value = DateTime.Now.ToString("yyyy") + "-01-01" End Sub Public Shared Function ListaBolsaHoras(fechaInit As String, fechaEnd As String) As String Dim sessionUsuario As String = HttpContext.Current.Session("usuario") 'Dim url1 As String = "https://172.16.89.216:81/api/HorasExtrasEntreFechas?Nif=28466610Q&FechaInicio=06%2F01%2F2022&FechaFin=06%2F30%2F2022" Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/HorasExtrasEntreFechas?Nif=" + sessionUsuario + "&FechaInicio=" + fechaInit + "&FechaFin=" + fechaEnd ' Dim url1 As String = "https://192.168.41.122/api/HorasExtrasEntreFechas?Nif=28466610Q&FechaInicio=06%2F01%2F2022&FechaFin=06%2F30%2F2022" ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim clienteHTTP1 As New Net.WebClient() clienteHTTP1.Encoding = System.Text.Encoding.UTF8 Dim sRespuesta1 As String = clienteHTTP1.DownloadString(url1) 'Me.TextBoxResultados.Text = sRespuesta1 '// 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 sbResultado As New Text.StringBuilder() sbResultado.AppendFormat("Resultado: {0}{1}", datos.Item("Resultado").ToString, vbCrLf) sbResultado.AppendFormat("Mensaje: {0}{1}", datos.Item("Mensaje"), vbCrLf) sbResultado.AppendFormat("ListadoEF: {0}{1}", datos.Item("ListadoEF"), vbCrLf) '// Deserializar a una clase. Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim objetoDatos As Models.ResultadoHorasExtrasEntreFechas = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoHorasExtrasEntreFechas)(sRespuesta1, settings) Debug.WriteLine("Resultado: " & objetoDatos.Resultado) Debug.WriteLine("Mensaje: " & objetoDatos.Mensaje) ' Debug.WriteLine("ListadoEF.FechaInicio: " & objetoDatos.ListadoEF.FechaInicio) objetoDatos.HorasEF.ListadoHorasExtras.Sort(Function(x, y) x.Fecha.CompareTo(y.Fecha)) Dim json = "" json += "[{""Nombre"":""" + objetoDatos.HorasEF.Nombre + """,""HorasExtra"":" Dim cont = 0 json += "[" If Not objetoDatos.HorasEF.ListadoHorasExtras.Count = 0 Then For Each item As Models.HoraExtra In objetoDatos.HorasEF.ListadoHorasExtras If cont >= 1 Then json += "," End If cont += 1 json += "{""Fecha"":""" + item.Fecha + """,""Horas"":""" + item.Horas + """,""Descripcion"":""" + item.Descripcion + """}" Next Else json += "" End If json += "]," json += """SaldoPeriodo"":""" + objetoDatos.HorasEF.SaldoPeriodo + """,""SaldoAcumulado"":""" + objetoDatos.HorasEF.SalcoAcumulado + """}]" Return json End Function End Class