Imports System.Net Imports System.Net.Http Imports System.Net.Security Imports System.Threading.Tasks Imports Newtonsoft.Json Imports WebIntranet.Models Public Class listadoFich Public Property id As String Public Property fichero As String End Class Public Class SolicitudesComunicaciones Inherits System.Web.UI.Page 'Shared sessionUsuario As String 'Shared idInci As Integer 'Shared tipo As String 'Shared incidencia As Incidencia 'Shared idGrupo As Integer Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("Persona") Is Nothing Then Response.Redirect("default.aspx") End If Dim sessionUsuario As String = Session("usuario") Dim idInci = Request.QueryString("idInci") Session.Add("idInci", idInci) Dim tipo = Request.QueryString("t") Session.Add("tipo", tipo) If Not IsPostBack Then horaIniPI1.Value = "00:00" horaFinPI1.Value = "00:00" horaTotPI1.Value = "00:00" horaIniPI2.Value = "00:00" horaFinPI2.Value = "00:00" horaTotPI2.Value = "00:00" 'Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd") 'inpFechaInicio.Value = DateTime.Now.ToString("yyyy-MM") + "-01" 'inpFechaFin.Value = fechaToday 'inpFechaFinBolsa.Value = fechaToday 'inpIniRIM.Value = DateTime.Now.ToString("yyyy") + "-01-01" 'inpFinRIM.Value = fechaToday 'inpFechaIniBolsa.Value = DateTime.Now.ToString("yyyy") + "-01-01" 'fechaInicioListadoTeletrabajo.Value = DateTime.Now.ToString("yyyy") + "-01-01" 'inpAnyoVAAPBC.Value = DateTime.Now.ToString("yyyy") 'fechaFinListadoTeletrabajo.Value = fechaToday End If 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 incidencia = listaPicada.FirstOrDefault(Function(x) x.EsInciReloj = False And x.idIncidencias = idInci) listIncNoReloj.Value = JsonConvert.SerializeObject(incidencia) Session.Add("incidencia", incidencia) ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GruposIncidenciasControlHorario" Dim credenciales2 As New Net.CredentialCache() Dim clienteHTTP2 As New Net.WebClient() clienteHTTP2.Encoding = System.Text.Encoding.UTF8 clienteHTTP2.Credentials = credenciales2 Dim respuesta2 As String = clienteHTTP2.DownloadString(url2) Dim deserializador2 As New System.Web.Script.Serialization.JavaScriptSerializer() Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim Datos As List(Of Models.grupos) = deserializador2.Deserialize(Of List(Of Models.grupos))(respuesta2) Dim grupoInci = Datos.FirstOrDefault(Function(x) x.idGrupo = incidencia.idGrupo) Dim idGrupo = grupoInci.idGrupo ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/SubGruposIncidenciasControlHorario?idGrupo=" + idGrupo.ToString Dim credenciales1 As New Net.CredentialCache() Dim clienteHTTP1 As New Net.WebClient() clienteHTTP1.Encoding = System.Text.Encoding.UTF8 clienteHTTP1.Credentials = credenciales1 Dim respuesta1 As String = clienteHTTP1.DownloadString(url1) Dim deserializador1 As New System.Web.Script.Serialization.JavaScriptSerializer() Dim settings1 As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim Datos1 As ResultadoSubGruposIncidenciasControlHorario = deserializador2.Deserialize(Of ResultadoSubGruposIncidenciasControlHorario)(respuesta1) Dim subGrupos = Datos1.listaSubgrupos Session.Add("idGrupo", idGrupo) If incidencia.AdmiteIntervaloDias = False Then inputfechafinPI.Visible = False inputfechainiPI.Attributes.Add("class", "fechainiciosolo") dateIniPI.Attributes.Add("class", "fechainiciosolo") End If If incidencia.AdmiteIntervaloHoras = False Then If incidencia.AdmiteInstanteTemporal <> False Then textoHorario.InnerText = "Hora" horariotardePI.Visible = False inputMananaDiv2.Visible = False inputMananaDiv3.Visible = False Else horariomananaPI.Visible = False horariotardePI.Visible = False End If End If If incidencia.Adjunto = "NO" Then inputarchivoadjuntoPI.Visible = False End If If incidencia.AdmiteRangosFechas = False Then btnPlusTramo.Visible = False End If Dim htmlMigas = "" migasDePanPI.InnerHtml = htmlMigas tituloPI.InnerText = incidencia.Nombre cargarBarraLateral() End Sub Public Sub cargarBarraLateral() Dim usuario As String = "tecnosis" Dim contraseña As String = "patata2022" Dim tipo = Request.QueryString("t") 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 ListIncidenciasNoReloj = listaPicada.Where(Function(x) x.EsInciReloj = False).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList Dim lista Dim listaSub 'Dim descrip 'Dim sec Dim idGrupo = Session("idGrupo") If tipo = "p" Then 'sec = "Permisos" 'descrip = listaGruposSoli.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True And x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "" AndAlso x.visibleWeb = True) listaSub = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True And x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "" AndAlso x.visibleWeb = True) ElseIf tipo = "i" Then 'sec = "Incidencias" 'descrip = listaGruposInci.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = False And x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "" AndAlso x.visibleWeb = True) listaSub = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = False And x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "" AndAlso x.visibleWeb = True) ElseIf tipo Is Nothing OrElse tipo = "" Then lista = ListIncidenciasNoReloj.Where(Function(x) x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "") listaSub = ListIncidenciasNoReloj.Where(Function(x) x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "") End If 'Dim html As String = "" Dim idInci = Session("idInci") Dim html = "" navLateral.InnerHtml = html 'listMenu.InnerHtml = html End Sub Public Shared Function InpIncidencia(FechaInicio As String, FechaFin As String, cadenaFechas As String, cadenaHoras As String, inicio As String, final As String, incidencia As String, horaIniManana As String, horaFinManana As String, totalHoraManana As String, horaIniTarde As String, horaFinTarde As String, totalHoraTarde As String, inpObservaciones As String, fichero As Object, EsPropuesta As Boolean) As String Dim inciActual As Incidencia = HttpContext.Current.Session("incidencia") Dim rangosDeFechas As New List(Of String) Dim rangosDeHoras As New List(Of String) rangosDeFechas.Add(FechaInicio) If FechaFin = "" Then FechaFin = FechaInicio End If rangosDeFechas.Add(FechaFin) Dim fechas = cadenaFechas.Split(",") Dim Horas = cadenaHoras.Split(",") If fechas(0) <> "" Then If inciActual.AdmiteIntervaloDias = True Then For Each item As String In fechas rangosDeFechas.Add(item) Next Else For Each item As String In fechas rangosDeFechas.Add(item) rangosDeFechas.Add(item) Next End If End If If Horas(0) <> "" AndAlso Horas.Count > 1 Then If Horas.Count > 0 Then For Each item As String In Horas rangosDeHoras.Add(item) Next End If Else Dim cantidadHoras As Integer = rangosDeFechas.Count * 3 For i As Integer = 1 To cantidadHoras rangosDeHoras.Add("") Next End If Dim ficherosAdjuntos As New List(Of listadoFich) If inciActual.Adjunto <> "NO" Then For num As Integer = 0 To fichero.length - 1 Dim newfich As New listadoFich newfich.id = fichero(num)("id") newfich.fichero = fichero(num)("fichero") ficherosAdjuntos.Add(newfich) Next End If Dim txt = "" For numb As Integer = 0 To rangosDeFechas.Count - 1 Step 2 Dim inicioTick = rangosDeFechas(numb) Dim FinalTick = rangosDeFechas(numb + 1) Dim fechIni = rangosDeFechas(numb) Dim fechFin = rangosDeFechas(numb + 1) Dim sessionUsuario As String = HttpContext.Current.Session("usuario") ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim clienteHTTP1 As New Net.WebClient() clienteHTTP1.Encoding = System.Text.Encoding.UTF8 Dim nif = sessionUsuario If numb <> 0 Then horaIniManana = rangosDeHoras(0) horaFinManana = rangosDeHoras(1) totalHoraManana = rangosDeHoras(2) horaIniTarde = rangosDeHoras(3) horaFinTarde = rangosDeHoras(4) totalHoraTarde = rangosDeHoras(5) rangosDeHoras = rangosDeHoras.Skip(6).ToList End If Dim ficheroInci As String If inciActual.Adjunto <> "NO" Then End If If horaIniManana = "" Or horaIniManana = "undefined" Then horaIniManana = "00:00" End If If horaFinManana = "" Or horaFinManana = "undefined" Then horaFinManana = "00:00" End If If horaIniTarde = "" Or horaIniTarde = "undefined" Then horaIniTarde = "00:00" End If If horaFinTarde = "" Or horaFinTarde = "undefined" Then horaFinTarde = "00:00" End If If totalHoraManana = "" Or totalHoraManana = "undefined" Then totalHoraManana = "00:00" End If If totalHoraTarde = "" Or totalHoraTarde = "undefined" Then totalHoraTarde = "00:00" End If Dim tieneAdjunto = False Dim ficheroActual As String Dim respuesta For Each fc As listadoFich In ficherosAdjuntos Dim ficheroActual1 = ficherosAdjuntos.FirstOrDefault(Function(x) x.id = numb.ToString + "file") If ficheroActual1 IsNot Nothing Then tieneAdjunto = True ficheroActual = ficheroActual1.fichero End If Next Dim inpExpediente = "" Dim FechaIniciores = fechIni.Substring(5, 2) & "%2F" & fechIni.Substring(8, 2) & "%2F" & fechIni.Substring(0, 4) Dim FechaFinres = fechFin.Substring(5, 2) & "%2F" & fechFin.Substring(8, 2) & "%2F" & fechFin.Substring(0, 4) Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GenAsisEntreFechas?nif=" + nif + "&FechaInicio=" + FechaIniciores + "&FechaFin=" + FechaFinres + "&idincidencia=" + incidencia + "&horainiciomanana=" + horaIniManana.Replace(":", "%3A") + "&horafinmanana=" + horaFinManana.Replace(":", "%3A") + "&horastrabajadasmanana=" + totalHoraManana.Replace(":", "%3A") + "&horainiciotarde=" + horaIniTarde.Replace(":", "%3A") + "&horafintarde=" + horaFinTarde.Replace(":", "%3A") + "&horastrabajadastarde=" + totalHoraTarde.Replace(":", "%3A") + "&EsPropuesta=" + EsPropuesta.ToString.ToLower + "&observaciones=" + inpObservaciones + "&expediente=" & inpExpediente & "&Adjunto=" & tieneAdjunto.ToString Dim sRespuesta1 As String = clienteHTTP1.UploadString(url1, "") 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) Dim settings As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim objetoDatos As ResultadoGenAsisEntreFechas = Newtonsoft.Json.JsonConvert.DeserializeObject(Of ResultadoGenAsisEntreFechas)(sRespuesta1, settings) Debug.WriteLine("Resultado: " & objetoDatos.Resultado) Debug.WriteLine("Mensaje: " & objetoDatos.Mensaje) Dim clienteHTTP2 As New Net.WebClient() Dim idAsistencia = objetoDatos.idAsistencia 'Dim objetoaAlmacenar As New Models.AlmacenaFicheroIncidencia 'objetoaAlmacenar.idAsistencia = idAsistencia 'objetoaAlmacenar.Fichero = ficheroActual 'Dim jsonalmacenar As String = JsonConvert.SerializeObject(objetoaAlmacenar) If inciActual.Adjunto IsNot "NO" Then If ficheroActual IsNot Nothing OrElse ficheroActual IsNot "" Then respuesta = Almacenafichero(idAsistencia, ficheroActual) End If End If txt += "

" + objetoDatos.Mensaje + "

" Next Return txt End Function Public Shared Async Function Almacenafichero(id As String, cuerpo As String) As Task(Of String) Try Dim ruta = "incidencia/" + id + ".pdf" 'Dim archivo As Byte() = System.Text.Encoding.Unicode.GetBytes(file) Dim ObjetoConsulta As New FicheroAtrasnmitir ObjetoConsulta.idRegistro = id ObjetoConsulta.tabla = "INCIDENCIA" 'ObjetoConsulta.Fichero = System.Convert.ToBase64String(archivo) ObjetoConsulta.Fichero = cuerpo Dim jsonConsulta As String = JsonConvert.SerializeObject(ObjetoConsulta) Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/AlmacenaFicheroAtransmitir" 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 ResultadoAlmacenaFicheroAtransmitir = Newtonsoft.Json.JsonConvert.DeserializeObject(Of ResultadoAlmacenaFicheroAtransmitir)(sRespuesta, settings) 'ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) 'Dim clienteHTTP2 As New Net.WebClient() 'clienteHTTP2.Encoding = System.Text.Encoding.UTF8 'clienteHTTP2.Headers.Add("Content-Type", "application/json") 'Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/AlmacenaFicheroIncidencia" 'Dim sRespuesta2 As String = clienteHTTP2.UploadString(url2, cuerpo) Catch ex As Exception Debug.Print(ex.Message) Debug.Print(ex.StackTrace) End Try End Function End Class