public async Task <IHttpActionResult> GetAllTodas(int id, string clave) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); //0)AdminCH 1 //1)Gerente 4 //2)Admin CP 19 var claveUnidad = clave; List <Solicitud> ListaSol = new List <Solicitud>(); if (id == 0) //ADMINISTRADORES { /**PENDIENTES**/ //Dependiendo del rol del administrador seran las solicitudes pendientes a cargar if (claveUnidad != null) { if (claveUnidad == "1") //Admin CH { var registros = await _SolicitudRepository.GetPendientesAdministradorCH(); ListaSol.AddRange(registros); } if (claveUnidad == "1026") //Admin sindicalizado { var registros = await _SolicitudRepository.GetPendientesAdministradorSindicalizados(); ListaSol.AddRange(registros); } } else //Caso default, para no afectar el funcionamiento de este metodo, ya que como lleva bastante tiempo es dificil ver que otros metodos hacen referencia a el { var registros = await _SolicitudRepository.GetAll(); ListaSol.AddRange(registros); } /**ACEPTADAS**/ var resultadosBitacorasAcpetadas = await _bita.GetByRol(1); var SolicitudesAceptadas = await _SolicitudRepository.getbyId(resultadosBitacorasAcpetadas, clave); ListaSol.AddRange(SolicitudesAceptadas); /**RECHAZADAS**/ var resultadosBitacoras = await _bita.GetByRolRechazadas(1); var Solicitudes = await _SolicitudRepository.getbyId(resultadosBitacoras, clave, 3); ListaSol.AddRange(Solicitudes); foreach (var soli in ListaSol) { var p = await _PersonasRepository.GetByClave(soli.ClavePersona); soli.NombreCompleto = p.NombreCompleto; } } if (id == 1) //GERENTES { /**PENDIENTES*/ var SolicitudPen = await _SolicitudRepository.GetAllGerenteByClave(claveUnidad); ListaSol.AddRange(SolicitudPen); /**ACEPTADAS*/ var resultadosBitacorasAceptadas = await _bita.GetByRolGerente(4); var SolicitudesAceptadasGerente = await _SolicitudRepository.getbyIdUnidad(resultadosBitacorasAceptadas, claveUnidad); ListaSol.AddRange(SolicitudesAceptadasGerente); /**RECHAZADAS*/ var resultadosBitacoras = await _bita.GetByRolRechazadasGerente(4); var Solicitudes = await _SolicitudRepository.getRechazadasbyIdUnidad(resultadosBitacoras, claveUnidad); ListaSol.AddRange(Solicitudes); //var ValidarEstado = await _SolicitudRepository.validarEstadoRechazadas(Solicitudes); foreach (var soli in ListaSol) { var p = await _PersonasRepository.GetByClave(soli.ClavePersona); soli.NombreCompleto = p.NombreCompleto; } } if (id == 2) //ADMIN CENTRO POSGRADO { /**PENDIENTES*/ var SolicitudPen = await _SolicitudRepository.GetAllCursosCP(); ListaSol.AddRange(SolicitudPen); /**ACEPTADAS*/ var resultadosBitacorasAcep = await _bita.GetByRol(19); var SolicitudesAcept = await _SolicitudRepository.getbyId(resultadosBitacorasAcep); ListaSol.AddRange(SolicitudesAcept); /**RECHAZADAS*/ var resultadosBitacoras = await _bita.GetByRolRechazadas(19); var Solicitudes = await _SolicitudRepository.getbyId(resultadosBitacoras, 3); ListaSol.AddRange(Solicitudes); foreach (var soli in ListaSol) { var p = await _PersonasRepository.GetByClave(soli.ClavePersona); soli.NombreCompleto = p.NombreCompleto; } } return(Ok(ListaSol)); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }