Example #1
0
        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)));
        }
Example #2
0
        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));
        }