Imports Newtonsoft.Json
Imports System.Net
Imports System.Net.Http
Imports System.Net.Security
Imports System.Threading.Tasks

Public Class resumenSolicitudesComunicacionesEntreFechas
    Inherits System.Web.UI.Page
    'Shared usuariosSeleccionados As List(Of 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
            'bolsaDeHorasBL.Visible = False
            VAAPBCBL.Visible = False
            intPicadaBL.Visible = False
            'informPicadasBL.Visible = False
        Else
            estIncPicBL.visible = False
            VAAPBCBLpers.Visible = false
            intPicadaPersBL.Visible = False
            Li1.Visible = False
        End If
        'usuariosSeleccionados = Session("usuariosSeleccionados")
        Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd")
        inpIniRIM.Value = DateTime.Now.ToString("yyyy") + "-01-01"
        inpFinRIM.Value = fechaToday
    End Sub
    <System.Web.Services.WebMethod()>
    Public Shared Async Function ObtenerRIM(ini As Date, fin As Date) As Task(Of String)
        Dim usuariosSeleccionados As List(Of String) = HttpContext.Current.Session("usuariosSeleccionados")
        Dim DNI = usuariosSeleccionados
        If DNI.Contains(HttpContext.Current.Session("persona").Personas(0).Dni) = False Then
            DNI.Add(HttpContext.Current.Session("persona").Personas(0).Dni)
        End If
        Try


            ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)

            '// Aquí preparamos el objeto para la consulta.
            Dim objetoConsulta As New Models.Consulta
            objetoConsulta.fechaInicio = ini
            objetoConsulta.fechaFin = fin
            objetoConsulta.listaNif = DNI 'New List(Of String)

            '// Aquí convertimos el objeto en una cadena JSON.
            Dim jsonConsulta As String = JsonConvert.SerializeObject(objetoConsulta)
            Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/ExcelResumenAsistencia"

            Dim clienteHTTP As New HttpClient
            Dim contenidoConsultaHTTP As New StringContent(jsonConsulta, Encoding.UTF8, "application/json")
            Debug.WriteLine("CargarListadodePicadasAsync:1===" + Now.ToLongTimeString)
            Dim respuestaHTTP As HttpResponseMessage = Await clienteHTTP.PostAsync(url, contenidoConsultaHTTP).ConfigureAwait(False)
            Debug.WriteLine("CargarListadodePicadasAsync:2===" + Now.ToLongTimeString)
            Dim sRespuesta As String = Await respuestaHTTP.Content.ReadAsStringAsync().ConfigureAwait(False)
            Debug.WriteLine("CargarListadodePicadasAsync:3===" + Now.ToLongTimeString)
            '// danmun: Aquí SÍ hay que poner `.ConfigureAwait(False)` al final de las llamadas a métodos Async()
            '// para que el control de ejecución vuelva a este hilo.

            ''// Deserializar a una clase.
            Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
            settings.CheckAdditionalContent = True
            Dim objetoDatos As Models.ResultadoExcelResumenAsistencia =
                Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoExcelResumenAsistencia)(sRespuesta, settings)

            Debug.WriteLine("Resultado: " & objetoDatos.Resultado)
            Return sRespuesta
        Catch ex As Exception

        End Try
    End Function
End Class