Imports System.Net Imports System.Net.Security Imports WebIntranet.Models Public Class Menu Inherits System.Web.UI.Page Public sessionUsuario As String Public usuariosSeleccionados As List(Of String) Public idGrupo As Integer Public listaGruposInci As List(Of grupos) Public listaGruposSoli As List(Of grupos) Public listaGruposGene As List(Of grupos) Public idSubgrupo As String Public subgrupos As List(Of subGrupos) 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 sessionUsuario = Session("usuario") idGrupo = Request.QueryString("g") Dim tipo = Request.QueryString("t") idSubgrupo = Request.QueryString("sg") ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GruposIncidenciasControlHorario" 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.grupos) = deserializador3.Deserialize(Of List(Of Models.grupos))(respuesta3) listaGruposInci = Datos.Where(Function(x) x.NumIncidencias <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList listaGruposSoli = Datos.Where(Function(x) x.NumSolicitudes <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList listaGruposGene = Datos.OrderBy(Function(x) x.orden AndAlso (x.NumIncidencias <> 0 OrElse x.NumSolicitudes <> 0)).ThenBy(Function(x) x.Descripcion).ToList ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True) Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/SubGruposIncidenciasControlHorario?idGrupo=" + idGrupo.ToString 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 = clienteHTTP3.DownloadString(url2) Dim deserializador2 As New System.Web.Script.Serialization.JavaScriptSerializer() Dim settings2 As New Newtonsoft.Json.JsonSerializerSettings() settings.CheckAdditionalContent = True Dim Datos2 As ResultadoSubGruposIncidenciasControlHorario = deserializador2.Deserialize(Of ResultadoSubGruposIncidenciasControlHorario)(respuesta2) subgrupos = Datos2.listaSubgrupos subgrupos = If(tipo = "p", subgrupos.Where(Function(x) x.numSol <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.descripcion).ToList, subgrupos.Where(Function(x) x.numCom <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.descripcion).ToList) cargarBarraLateral(tipo) cargarMenu(tipo) End Sub Public Sub cargarBarraLateral(tipo As String) Dim lista If tipo = "p" Then lista = listaGruposSoli ElseIf tipo = "i" Then lista = listaGruposInci ElseIf tipo Is Nothing OrElse tipo = "" Then lista = listaGruposGene End If Dim html = "" html += "" navLateral.InnerHtml = html End Sub Public Sub cargarMenu(tipo As String) 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 ListIncidenciasNoReloj = listaPicada.Where(Function(x) x.EsInciReloj = False).OrderBy(Function(x) x.Descripcion).ToList Dim lista As List(Of Incidencia) Dim htmlMigas = "" 'Dim htmlTituloMob = "" Dim descrip Dim sec Dim titulo If tipo = "p" Then sec = "Permisos" descrip = listaGruposSoli.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True AndAlso x.idGrupo IsNot "" AndAlso x.idGrupo = idGrupo AndAlso x.visibleWeb = True).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre).ToList htmlMigas += "" titulo = listaGruposSoli.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion ElseIf tipo = "i" Then sec = "Incidencias" descrip = listaGruposInci.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = False AndAlso x.idGrupo IsNot "" AndAlso x.idGrupo = idGrupo AndAlso x.visibleWeb = True).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre).ToList htmlMigas += "" titulo = listaGruposInci.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion ElseIf tipo Is Nothing OrElse tipo = "" Then sec = "Incidencias y comunicaciones" descrip = listaGruposGene.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion lista = ListIncidenciasNoReloj.Where(Function(x) x.idGrupo IsNot "" AndAlso x.idGrupo = idGrupo AndAlso x.visibleWeb = True).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre).ToList htmlMigas += "" titulo = listaGruposGene.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion End If Dim htmlSubgrupos = "" If subgrupos.Count > 0 Then For Each subgrp As subGrupos In subgrupos Dim listainciSubgrupo = lista.Where(Function(x) x.idSubgrupo IsNot "" AndAlso x.idSubgrupo = subgrp.idSubGrupo) If listainciSubgrupo.All(Function(x) x.visibleWeb <> False) = True Then htmlSubgrupos += "
" + If(subgrp.ayudaWeb IsNot Nothing, "" + subgrp.ayudaWeb + "", "") + "
" + "
" + "" + "" + "
" + "
" + "
" + "
" + "
    " For Each itemSub As Incidencia In listainciSubgrupo.OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre) htmlSubgrupos += "
  • " + If(itemSub.ayudaWeb IsNot Nothing, "" + itemSub.ayudaWeb + "", "") + "" + itemSub.Nombre.Replace("""", "") + "
  • " Next htmlSubgrupos += "
" + "
" + "
" + "
" End If Next End If Dim html = "" 'Dim listaSinSG = lista.Where(Function(x) x.idSubgrupo = "") ''SERGIO:El agu me dijo que tenian que salir ordenados por campo orden Dim listaSinSG = lista.Where(Function(x) x.idSubgrupo = "").OrderBy(Function(x) x.orden) If listaSinSG.Count > 0 Then html += "
" + "
" + "
" + "" + "" + "
" + "
" + "
" + "
" + "
    " For Each item As Incidencia In listaSinSG.OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre) html += "
  • " + If(item.ayudaWeb IsNot Nothing, "" + item.ayudaWeb + "", "") + "" + item.Nombre.Replace("""", "") + "
  • " Next html += "
" + "
" + "
" + "
" End If migasDePan.InnerHtml = htmlMigas 'tituloMenu.InnerText = titulo listMenu.InnerHtml = "
" + html + htmlSubgrupos + "
" tituloMob.InnerText = titulo End Sub End Class