Exemplo n.º 1
0
        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));
            }
        }