public PagedResult <TeacherResult> GetTeacherByName(string name, Pageable pageable)
        {
            PagedResult <TeacherResult> result = new PagedResult <TeacherResult>();

            result.Page = pageable.Page;
            result.Size = pageable.Size;
            int skipRow = PaginatorUtils.GetSkipRow(pageable.Page, pageable.Size);

            result.Total = _context.Student.Count(p => p.IsDelete != true);
            if (result.Total > 0)
            {
                // filter
                var lstTeacherByName = _context.Teacher.Where(x => x.Name.IndexOf(name, System.StringComparison.OrdinalIgnoreCase) >= 0 && x.IsDelete != true).OrderBy(x => x.Name).Skip(skipRow).Take(pageable.Size).ToList();
                var lstTeacherId     = (from i in lstTeacherByName
                                        select i.Id).ToList();
                List <TeacherResult> TeacherResults = new List <TeacherResult>();

                foreach (var teacher in lstTeacherByName)
                {
                    var TeacherView = new TeacherResult()
                    {
                        Id          = teacher.Id,
                        Name        = teacher.Name,
                        gender      = teacher.gender,
                        DateOfBirth = teacher.DateOfBirth,
                        address     = teacher.address,
                        ImageName   = teacher.ImageName,
                        ImagePath   = teacher.ImagePath
                    };
                    TeacherResults.Add(TeacherView);
                }
                result.Data = TeacherResults;
            }
            return(result);
        }
        public TeacherResult Find(long id)
        {
            Model.Teacher entity = Dao.Find(id);
            TeacherResult result = ResultConverter.Convert(entity);

            return(result);
        }
        public TeacherResult Convert(Model.Teacher param)
        {
            TeacherResult result = new TeacherResult()
            {
                Id          = param.Id,
                Code        = param.Code,
                Name        = param.Name,
                Description = param.Description,

                FirstName   = param.FirstName,
                MiddleName  = param.MiddleName,
                LastName    = param.LastName,
                Egn         = param.Egn,
                Address     = param.Address,
                Country     = param.Country,
                City        = param.City,
                MobilePhone = param.MobilePhone,
                HomePhone   = param.HomePhone,
                Email       = param.Email,

                UserId     = param.User.Id,
                UserName   = param.User.Username,
                StatusId   = param.Status.Id,
                StatusName = param.Status.Name,
            };

            return(result);
        }