private IEnumerable <SolicitudVacaciones> ObtenerSolicitudesPorFiltro(string filtrarPor, UserViewModel user, string fechaInicio, string fechaFinal) { if (filtrarPor == null) { return(solicitudService.ObtenerMisSolicitudes(user, fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("funcionarios", StringComparison.OrdinalIgnoreCase)) { if (!(user.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("manager", StringComparison.OrdinalIgnoreCase))) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesFuncionarios(fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("funcionariosporunidadtecnica", StringComparison.OrdinalIgnoreCase)) { // El rol de funcionario es el unico que no puede ver // solicitudes de funcionarios dentro de una unidad tecnica especifica if (user.Role.Name.Equals("funcionario", StringComparison.OrdinalIgnoreCase)) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesFuncionariosPorUnidad(fechaInicio, fechaFinal, user).ToList()); } if (filtrarPor.Equals("jefaturas", StringComparison.OrdinalIgnoreCase)) { if (!(user.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("manager", StringComparison.OrdinalIgnoreCase))) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesJefaturas(fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("recursoshumanos", StringComparison.OrdinalIgnoreCase)) { if (!(user.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("manager", StringComparison.OrdinalIgnoreCase))) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesRH(fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("directorgeneral", StringComparison.OrdinalIgnoreCase)) { if (!(user.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("manager", StringComparison.OrdinalIgnoreCase))) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesDirectorGeneral(fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("directoradministrativo", StringComparison.OrdinalIgnoreCase)) { if (!(user.Role.Name.Equals("director", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("recursos humanos", StringComparison.OrdinalIgnoreCase) || user.Role.Name.Equals("manager", StringComparison.OrdinalIgnoreCase))) { throw new Exception("Rol inválido"); } return(solicitudService.ObtenerSolicitudesDirectorAdministrativo(fechaInicio, fechaFinal).ToList()); } if (filtrarPor.Equals("todos", StringComparison.OrdinalIgnoreCase)) { return(solicitudService.ObtenerTodasSolicitudesPorRol(fechaInicio, fechaFinal, user).ToList()); } return(solicitudService.ObtenerMisSolicitudes(user, fechaInicio, fechaFinal)); }