public async Task <ServiceResponse <object> > SearchTutor(SearchTutorDto model) { var subjectDetails = await _context.TutorSubjects.FirstOrDefaultAsync(m => m.Id == model.SubjectId); var users = await(from user in _context.Users join pr in _context.TutorProfiles on user.Id equals pr.CreatedById join subject in _context.TutorSubjects on user.Id equals subject.CreatedById where pr.GradeLevels.Contains(model.Class) && pr.CityId == model.CityId && subject.Name == subjectDetails.Name && user.Active == true && user.UserTypeId == (int)Enumm.UserType.Tutor //&& user.Gender.ToLower() == model.Gender.ToLower() select new TutorProfileForListDto { Id = user.Id, FullName = user.FullName, Email = user.Email, Gender = user.Gender, CityId = pr.CityId, CityName = _context.Cities.FirstOrDefault(m => m.Id == pr.CityId).Name, Subjects = string.Join(',', _context.TutorSubjects.Where(m => m.CreatedById == user.Id).Select(m => m.Name)), About = pr.About, AreasToTeach = pr.AreasToTeach, CommunicationSkillRate = pr.CommunicationSkillRate, Education = pr.Education, GradeLevels = pr.GradeLevels, LanguageFluencyRate = pr.LanguageFluencyRate, WorkExperience = pr.WorkExperience, WorkHistory = pr.WorkHistory, Photos = _context.Photos.Where(m => m.UserId == user.Id && m.IsPrimary == true).OrderByDescending(m => m.Id).Select(x => new PhotoDto { Id = x.Id, Name = x.Name, IsPrimary = x.IsPrimary, Url = _File.AppendImagePath(x.Name) }).ToList(), }).ToListAsync(); _serviceResponse.Data = users; _serviceResponse.Success = true; return(_serviceResponse); }
public async Task <IActionResult> SearchTutor(SearchTutorDto searchModel) { _response = await _repo.SearchTutor(searchModel); return(Ok(_response)); }