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 += "
"
For Each Estado As Models.Estados In Datos
html += ""
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