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 += "
"
For Each grupo As grupos In lista
If grupo.idGrupo = idGrupo Then
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 = 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 += "
"
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 += "