public async Task <IOperationResult <ISet <User> > > GetTutorNotInCurMeeting(int meetingId) { var meeting = await _meetingRepository.Find( m => m.Id == meetingId && m.Status == MeetingStatus.Rejected, m => m.Subject, m => m.Subject.Tutors); if (meeting == null) { return(BasicOperationResult <ISet <User> > .Fail("La tutoría rechazada no fue encontrada")); } var tutorsResult = await GetTutorsBySubjectId(meeting.SubjectId); if (!tutorsResult.Success) { return(tutorsResult); } var rejections = await _rejectedMeetingRepository.FindAll(r => r.MeetingId == meeting.Id); ISet <User> tutors = tutorsResult .Entity .Where(t => t.Id != meeting.TutorId && rejections.All(r => r.TutorId != t.Id)) .ToHashSet(); if (!tutors.Any()) { return(BasicOperationResult <ISet <User> > .Fail("No hay más tutores disponibles para esta matería, lo sentimos, estamos trabajando por obtener más")); } return(BasicOperationResult <ISet <User> > .Ok(tutors)); }