public IActionResult GetTeachers([FromQuery] TeacherQueryParameters teacherQuery) { if (!typeCheckerHelper.CheckIfTypeHasPoperties(teacherQuery.Fields, typeof(TeacherDto))) { return(BadRequest()); } var teachersFromRepo = teacherRepo.GetTeachers(teacherQuery); IEnumerable <TeacherDto> t = Mapper.Map <IEnumerable <TeacherDto> >(teachersFromRepo); return(Ok(t.ShapeData(teacherQuery.Fields))); }
public PagedList <Teachers> GetTeachers(TeacherQueryParameters tParam) { var collection = context.Teachers.AsQueryable(); if (!string.IsNullOrWhiteSpace(tParam.Id) && int.TryParse(tParam.Id, out var intId)) { collection = collection.Where(st => st.TeacherId == intId); } if (!string.IsNullOrWhiteSpace(tParam.LastName)) { collection = collection.Where(st => st.LastName.Contains(tParam.LastName, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(tParam.FirstName)) { collection = collection.Where(st => st.FirstName.Contains(tParam.FirstName, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(tParam.PhoneNumber)) { collection = collection.Where(st => st.PhoneNumber.Contains(tParam.PhoneNumber, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(tParam.Email)) { collection = collection.Where(st => st.Email.Contains(tParam.Email, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(tParam.City)) { collection = collection.Where(st => st.City.Contains(tParam.City, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(tParam.Adress)) { collection = collection.Where(st => st.Adress.Contains(tParam.Adress, StringComparison.OrdinalIgnoreCase)); } collection = ReflectionHelper.PerformSorting <Teachers>(tParam.OrderBy, collection); return(PagedList <Teachers> .Create(collection, tParam.PageNumber, tParam.PageSize)); }