public IHttpActionResult GetTeachers([FromBody] TeacherConditionSearch conditionSearch)
 {
     try
     {
         return(Ok(_teacherService.GetListOfTeachers(conditionSearch)));
     }
     catch (System.Exception e)
     {
         return(InternalServerError(e));
     }
 }
Пример #2
0
        public List <TeacherResponseDto> GetListOfTeachers(TeacherConditionSearch conditionSearch)
        {
            try
            {
                // Nếu không tồn tại điều kiện tìm kiếm thì khởi tạo giá trị tìm kiếm ban đầu
                if (conditionSearch == null)
                {
                    conditionSearch = new TeacherConditionSearch();
                }

                // Lấy các thông tin dùng để phân trang
                var paging = new Commons.Paging(db.Teachers.Count(x => !x.DelFlag &&
                                                                  (conditionSearch.KeySearch == null ||
                                                                   (conditionSearch.KeySearch != null && ((x.User.FirstName.Contains(conditionSearch.KeySearch)) ||
                                                                                                          (x.User.LastName.Contains(conditionSearch.KeySearch))))))
                                                , conditionSearch.CurrentPage, conditionSearch.PageSize);

                // Tìm kiếm và lấy dữ liệu theo trang
                var listTeacherFromDb = db.Teachers.Include(u => u.User).Include(y => y.Team).Where(x => !x.DelFlag &&
                                                                                                    (conditionSearch.KeySearch == null ||
                                                                                                     (conditionSearch.KeySearch != null && ((x.User.FirstName.Contains(conditionSearch.KeySearch)) ||
                                                                                                                                            (x.User.LastName.Contains(conditionSearch.KeySearch))))))
                                        .OrderBy(x => x.Id)
                                        .Skip((paging.CurrentPage - 1) * paging.NumberOfRecord)
                                        .Take(paging.NumberOfRecord).ToList();
                if (listTeacherFromDb == null)
                {
                    return(null);
                }
                var listOfTeacher = listTeacherFromDb.Select(t => new TeacherResponseDto
                {
                    Id       = t.Id,
                    TeamInfo = new TeamResponseDto(t.Team),
                    UserInfo = new UserResponseDto(t.User)
                }).ToList();
                return(listOfTeacher);
            }
            catch (Exception e)
            {
                throw e;
            }
        }