Imports Newtonsoft.Json Imports System.Net Imports System.Net.Http Imports System.Net.Security Imports System.Threading.Tasks Imports WebIntranet.Clases Imports WebIntranet.Models Public Class listSolicitudesComunicaciones Inherits System.Web.UI.Page Private usuarioPrincipal As Models.Personal 'Shared listaEstados As List(Of Models.Estados) 'Shared sessionUsuario As String 'Shared usuariosSeleccionados As New 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 estIncPicBL.Visible = False Dim sessionUsuario As String = Session("usuario") Dim usuariosSeleccionados = Session("usuariosSeleccionados") If Session("modo") = "PERSONAL" Then intPicadaBL.Visible = False 'bolsaDeHorasBL.Visible = False VAAPBCBL.Visible = False 'informPicadasBL.Visible = False If Session("persona").Personas(0).Dni = "44286377S" Then estIncPicBL.Visible = True End If Else VAAPBCBLpers.Visible = False Li1.Visible = False intPicadaPersBL.Visible = False End If Dim pendientes = Request.QueryString("pnd") usuarioPrincipal = Session("persona").Personas(0) fechaInicioListInc.Value = DateTime.Now.ToString("yyyy-MM") + "-01" fechaFinListInc.Value = DateTime.Now.ToString("yyyy-MM-dd") If pendientes = "true" Then Session.Add("modo", "PERSONAL") Dim persona = Session("persona") Dim personasPendientes = Session("listaPersonasIncPend") Session.Add("usuariosSeleccionados", personasPendientes) fechaInicioListInc.Value = CDate(persona.FeIniInciPorAceptar).ToString("yyyy-MM-dd") fechaFinListInc.Value = CDate(persona.FeFinInciPorAceptar).ToString("yyyy-MM-dd") usuariosSeleccionados = personasPendientes End If If pendientes = "borr" Then Dim persona = Session("persona") fechaInicioListInc.Value = If(CDate(persona.personas(0).FeIniInciBorrador).ToString("yyyy-MM-dd") <> "0001-01-01", CDate(persona.personas(0).FeIniInciBorrador).ToString("yyyy-MM-dd"), Now.Year.ToString() + "-01-01") fechaFinListInc.Value = If(CDate(persona.personas(0).FeFinInciBorrador).ToString("yyyy-MM-dd") <> "0001-01-01", CDate(persona.personas(0).FeFinInciBorrador).ToString("yyyy-MM-dd"), Now.Year.ToString() + "-01-01") End If TIPOUSU.Value = Session("persona").Personas(0).Roll MODO.Value = Session("modo") 'Dim usuario As String = "tecnosis" 'Dim contraseña As String = "patata2022" 'Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/IncidenciasControlHorario" '' Dim url3 As String = "http://192.168.41.14:81/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 Incidencia) = ' deserializador3.Deserialize(Of List(Of Incidencia))(respuesta3) 'Dim inciVacia As New Incidencia 'listaPicada = listaPicada.Where(Function(x) x.EsInciReloj = False).OrderBy(Function(x) x.Nombre).ToList cargarEstados() End Sub Function cargarEstados() ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/EstadosAsistencias" Dim credenciales3 As New Net.CredentialCache() 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() Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim Datos As List(Of Models.Estados) = deserializador3.Deserialize(Of List(Of Models.Estados))(respuesta3) Dim html = "" Dim listaEstados = Datos Session.Add("listEstados", listaEstados) html += "

TODOS

" For Each Estado As Models.Estados In Datos html += "

" + Estado.Descripcion + "

" Next filtroEstados.InnerHtml = html End Function Public Shared Async Function CargarListadodeIncidencias(fechaInit As String, fechaEnd As String, checkTodas As Boolean) As Task(Of String) Try If UtilAntifraude.CheckCred() = False Then Return "ERROR--1" Exit Function End If Dim listIncis As New List(Of String) If checkTodas = True Then ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim usuariosSeleccionados As List(Of String) = HttpContext.Current.Session("usuariosSeleccionados") Dim objetoConsulta As New Models.Consulta objetoConsulta.fechaInicio = New Date(fechaInit) objetoConsulta.fechaFin = New Date(fechaEnd) objetoConsulta.listaNif = usuariosSeleccionados Dim jsonConsulta As String = JsonConvert.SerializeObject(objetoConsulta) Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/ListAsisEntreFechas" 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) Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim objetoDatos As Models.ResultadoListAsisEntreFechas = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoListAsisEntreFechas)(sRespuesta, settings) Debug.WriteLine("Resultado: " & objetoDatos.Resultado) Dim listaPersonas = objetoDatos.ListadoEFNoAceptada.ListaPersonas Dim Json = "" Json += "[" Dim cont = 0 For Each persona As Models.PersonaAsi In listaPersonas If cont > 0 Then Json += "," End If cont += 1 Json += "{""Persona"":""" + persona.ApellidosNombre + """,""LisAsistencias"":[" Dim listadoAsistencias = persona.LisAsistencias.OrderBy(Function(x) x.FechaInicio).Reverse().ToList If persona.LisAsistencias IsNot Nothing Then Dim contAsis = 0 For Each Asistencia As Models.Asistencia In listadoAsistencias If listIncis.Contains(Asistencia.DesAsistencia.ToUpper.Replace(" ", "-")) = False Then listIncis.Add(Asistencia.DesAsistencia.ToUpper.Replace(" ", "-")) End If Dim urlDesg = "/desgSolicitudesComunicaciones.aspx?idAsis=" + Asistencia.idAsistencia.ToString + "&cl=" + tsl5.crypt.SHA1("M3Soft." & Asistencia.idAsistencia) If contAsis > 0 Then Json += "," End If contAsis += 1 Json += "{""DesAsistencia"":""" + Asistencia.DesAsistencia + """,""numDias"":""" + Asistencia.Ndias.ToString + """,""Estado"":""" + Asistencia.Estado + """,""tipo"":""" + Asistencia.Tipo + """,""ExpedienteECO"":""" + Asistencia.ExpedienteECO + """,""FechaFin"":""" + Asistencia.FechaFin.ToString("dd/MM/yyyy") + """" + ",""FechaInicio"":""" + Asistencia.FechaInicio.ToString("dd/MM/yyyy") + """,""HorasTraManana"":""" + Asistencia.HorasTraManana + """,""HorasTraTarde"":""" + Asistencia.HorasTraTarde + """," Dim Observaciones = "" If Asistencia.Observaciones IsNot Nothing Then Observaciones = Asistencia.Observaciones.Replace("""", "'") End If Json += """Observaciones"":""" + Observaciones + """,""idAsistencia"":""" + Asistencia.idAsistencia.ToString + """,""linkDesglose"":""" + urlDesg + """,""tipo"":""tipo" + Asistencia.Tipo + """}" Next Json += "]}" Else Json += "{}]}" End If Next Json += "]" Return Json Else ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim usuariosSeleccionados As List(Of String) = HttpContext.Current.Session("usuariosSeleccionados") Dim objetoConsulta As New Models.Consulta objetoConsulta.fechaInicio = New Date(fechaInit) objetoConsulta.fechaFin = New Date(fechaEnd) objetoConsulta.listaNif = usuariosSeleccionados Dim jsonConsulta As String = JsonConvert.SerializeObject(objetoConsulta) Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/ListAsisEntreFechas" 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) Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim objetoDatos As Models.ResultadoListAsisEntreFechas = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoListAsisEntreFechas)(sRespuesta, settings) Debug.WriteLine("Resultado: " & objetoDatos.Resultado) Dim listaPersonas = objetoDatos.ListadoEF.ListaPersonas Dim Json = "" Json += "[" Dim cont = 0 For Each persona As Models.PersonaAsi In listaPersonas If cont > 0 Then Json += "," End If cont += 1 Json += "{""Persona"":""" + persona.ApellidosNombre + """,""LisAsistencias"":[" Dim listadoAsistencias = persona.LisAsistencias.OrderBy(Function(x) x.FechaInicio).Reverse().ToList If persona.LisAsistencias IsNot Nothing Then Dim contAsis = 0 For Each Asistencia As Models.Asistencia In listadoAsistencias If listIncis.Contains(Asistencia.DesAsistencia.ToUpper.Replace(" ", "-")) = False Then listIncis.Add(Asistencia.DesAsistencia.ToUpper.Replace(" ", "-")) End If Dim urlDesg = "/desgSolicitudesComunicaciones.aspx?idAsis=" + Asistencia.idAsistencia.ToString + "&cl=" + tsl5.crypt.SHA1("M3Soft." & Asistencia.idAsistencia) If contAsis > 0 Then Json += "," End If contAsis += 1 Json += "{""DesAsistencia"":""" + Asistencia.DesAsistencia + """,""numDias"":""" + Asistencia.Ndias.ToString + """,""Estado"":""" + Asistencia.Estado + """,""tipo"":""" + Asistencia.Tipo + """,""ExpedienteECO"":""" + Asistencia.ExpedienteECO + """,""FechaFin"":""" + Asistencia.FechaFin.ToString("dd/MM/yyyy") + """" + ",""FechaInicio"":""" + Asistencia.FechaInicio.ToString("dd/MM/yyyy") + """,""HorasTraManana"":""" + Asistencia.HorasTraManana + """,""HorasTraTarde"":""" + Asistencia.HorasTraTarde + """," Dim Observaciones = "" If Asistencia.Observaciones IsNot Nothing Then Observaciones = Asistencia.Observaciones.Replace("""", "'") End If Json += """Observaciones"":""" + Observaciones + """,""idAsistencia"":""" + Asistencia.idAsistencia.ToString + """,""linkDesglose"":""" + urlDesg + """,""tipo"":""" + Asistencia.Tipo + """}" Next Json += "]}" Else Json += "{}]}" End If Next Json += "]" Return Json End If Catch ex As Exception Debug.Print(ex.StackTrace) End Try End Function End Class