public IList <PhieuBaoHanhViewModel> SearchDanhSachPhieuDatHang(String key, string trangthai, DateTime tungay, DateTime denngay, string userName)
        {
            IQueryable <PhieuBaoHanh>    danhSachPhieuBaoHanh = _phieuBaoHanhRepo.GetAll();
            List <PhieuBaoHanhViewModel> all           = new List <PhieuBaoHanhViewModel>();
            List <PhieuBaoHanhViewModel> allForManager = new List <PhieuBaoHanhViewModel>();

            if (_nhanVienBus.layMaChucVu(userName) == 6)
            {
                if (!string.IsNullOrEmpty(key))
                {
                    all = (from phieuBaoHanh in danhSachPhieuBaoHanh
                           join nhanVien in _nhanVienRepo.GetAll()
                           on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                           where (nhanVien.UserName.Equals(userName) && (
                                      phieuBaoHanh.SoPhieuBaoHanh.ToString().Contains(key) ||
                                      phieuBaoHanh.TenKhachHang.Contains(key) ||
                                      phieuBaoHanh.SoDienThoai.Contains(key)))
                           select new
                    {
                        SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                        NgayLap = phieuBaoHanh.NgayLap,
                        NgayGiao = phieuBaoHanh.NgayGiao,
                        TenNhanVien = nhanVien.TenNhanvien,
                        TenKhachHang = phieuBaoHanh.TenKhachHang,
                        SoDienThoai = phieuBaoHanh.SoDienThoai,
                        TrangThai = phieuBaoHanh.TrangThai,
                        DaGiao = phieuBaoHanh.DaGiao
                    }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                    {
                        soPhieuBaoHanh = x.SoPhieuBaoHanh,
                        ngayLap        = x.NgayLap,
                        ngayGiao       = x.NgayGiao,
                        tenNhanVien    = x.TenNhanVien,
                        tenKhachHang   = x.TenKhachHang,
                        soDienThoai    = x.SoDienThoai,
                        trangThai      = x.TrangThai,
                        daGiao         = x.DaGiao
                    }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                    return(all);
                }
                if (!string.IsNullOrEmpty(trangthai))
                {
                    all = (from phieuBaoHanh in danhSachPhieuBaoHanh
                           join nhanVien in _nhanVienRepo.GetAll()
                           on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                           where (nhanVien.UserName.Equals(userName) && phieuBaoHanh.TrangThai.ToString().Equals(trangthai))
                           select new
                    {
                        SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                        NgayLap = phieuBaoHanh.NgayLap,
                        NgayGiao = phieuBaoHanh.NgayGiao,
                        TenNhanVien = nhanVien.TenNhanvien,
                        TenKhachHang = phieuBaoHanh.TenKhachHang,
                        SoDienThoai = phieuBaoHanh.SoDienThoai,
                        TrangThai = phieuBaoHanh.TrangThai,
                        DaGiao = phieuBaoHanh.DaGiao
                    }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                    {
                        soPhieuBaoHanh = x.SoPhieuBaoHanh,
                        ngayLap        = x.NgayLap,
                        ngayGiao       = x.NgayGiao,
                        tenNhanVien    = x.TenNhanVien,
                        tenKhachHang   = x.TenKhachHang,
                        soDienThoai    = x.SoDienThoai,
                        trangThai      = x.TrangThai,
                        daGiao         = x.DaGiao
                    }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                    return(all);
                }

                all = (from phieuBaoHanh in danhSachPhieuBaoHanh
                       join nhanVien in _nhanVienRepo.GetAll()
                       on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                       where (nhanVien.UserName.Equals(userName) && phieuBaoHanh.TrangThai.Equals(true))
                       select new
                {
                    SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                    NgayLap = phieuBaoHanh.NgayLap,
                    NgayGiao = phieuBaoHanh.NgayGiao,
                    TenNhanVien = nhanVien.TenNhanvien,
                    TenKhachHang = phieuBaoHanh.TenKhachHang,
                    SoDienThoai = phieuBaoHanh.SoDienThoai,
                    TrangThai = phieuBaoHanh.TrangThai,
                    DaGiao = phieuBaoHanh.DaGiao
                }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                {
                    soPhieuBaoHanh = x.SoPhieuBaoHanh,
                    ngayLap        = x.NgayLap,
                    ngayGiao       = x.NgayGiao,
                    tenNhanVien    = x.TenNhanVien,
                    tenKhachHang   = x.TenKhachHang,
                    soDienThoai    = x.SoDienThoai,
                    trangThai      = x.TrangThai,
                    daGiao         = x.DaGiao
                }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                return(all);
            }
            else
            {
                if ((!(tungay == default(DateTime))) && (!(denngay == default(DateTime))))
                {
                    allForManager = (from phieuBaoHanh in danhSachPhieuBaoHanh
                                     join nhanVien in _nhanVienRepo.GetAll()
                                     on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                                     where (phieuBaoHanh.NgayLap >= tungay.Date && phieuBaoHanh.NgayLap <= denngay.Date)
                                     select new
                    {
                        SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                        NgayLap = phieuBaoHanh.NgayLap,
                        NgayGiao = phieuBaoHanh.NgayGiao,
                        TenNhanVien = nhanVien.TenNhanvien,
                        TenKhachHang = phieuBaoHanh.TenKhachHang,
                        SoDienThoai = phieuBaoHanh.SoDienThoai,
                        TrangThai = phieuBaoHanh.TrangThai,
                        DaGiao = phieuBaoHanh.DaGiao
                    }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                    {
                        soPhieuBaoHanh = x.SoPhieuBaoHanh,
                        ngayLap        = x.NgayLap,
                        ngayGiao       = x.NgayGiao,
                        tenNhanVien    = x.TenNhanVien,
                        tenKhachHang   = x.TenKhachHang,
                        soDienThoai    = x.SoDienThoai,
                        trangThai      = x.TrangThai,
                        daGiao         = x.DaGiao
                    }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                    return(allForManager);
                }
                if (!string.IsNullOrEmpty(key))
                {
                    allForManager = (from phieuBaoHanh in danhSachPhieuBaoHanh
                                     join nhanVien in _nhanVienRepo.GetAll()
                                     on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                                     where (phieuBaoHanh.SoPhieuBaoHanh.ToString().Contains(key) ||
                                            phieuBaoHanh.TenKhachHang.Contains(key) ||
                                            phieuBaoHanh.SoDienThoai.Contains(key))
                                     select new
                    {
                        SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                        NgayLap = phieuBaoHanh.NgayLap,
                        NgayGiao = phieuBaoHanh.NgayGiao,
                        TenNhanVien = nhanVien.TenNhanvien,
                        TenKhachHang = phieuBaoHanh.TenKhachHang,
                        SoDienThoai = phieuBaoHanh.SoDienThoai,
                        TrangThai = phieuBaoHanh.TrangThai,
                        DaGiao = phieuBaoHanh.DaGiao
                    }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                    {
                        soPhieuBaoHanh = x.SoPhieuBaoHanh,
                        ngayLap        = x.NgayLap,
                        ngayGiao       = x.NgayGiao,
                        tenNhanVien    = x.TenNhanVien,
                        tenKhachHang   = x.TenKhachHang,
                        soDienThoai    = x.SoDienThoai,
                        trangThai      = x.TrangThai,
                        daGiao         = x.DaGiao
                    }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                    return(allForManager);
                }
                if (!string.IsNullOrEmpty(trangthai))
                {
                    allForManager = (from phieuBaoHanh in danhSachPhieuBaoHanh
                                     join nhanVien in _nhanVienRepo.GetAll()
                                     on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                                     where phieuBaoHanh.TrangThai.ToString().Equals(trangthai)
                                     select new
                    {
                        SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                        NgayLap = phieuBaoHanh.NgayLap,
                        NgayGiao = phieuBaoHanh.NgayGiao,
                        TenNhanVien = nhanVien.TenNhanvien,
                        TenKhachHang = phieuBaoHanh.TenKhachHang,
                        SoDienThoai = phieuBaoHanh.SoDienThoai,
                        TrangThai = phieuBaoHanh.TrangThai,
                        DaGiao = phieuBaoHanh.DaGiao
                    }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                    {
                        soPhieuBaoHanh = x.SoPhieuBaoHanh,
                        ngayLap        = x.NgayLap,
                        ngayGiao       = x.NgayGiao,
                        tenNhanVien    = x.TenNhanVien,
                        tenKhachHang   = x.TenKhachHang,
                        soDienThoai    = x.SoDienThoai,
                        trangThai      = x.TrangThai,
                        daGiao         = x.DaGiao
                    }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                    return(allForManager);
                }

                allForManager = (from phieuBaoHanh in danhSachPhieuBaoHanh
                                 join nhanVien in _nhanVienRepo.GetAll()
                                 on phieuBaoHanh.MaNhanVien equals nhanVien.MaNhanVien
                                 where phieuBaoHanh.TrangThai.Equals(true)
                                 select new
                {
                    SoPhieuBaoHanh = phieuBaoHanh.SoPhieuBaoHanh,
                    NgayLap = phieuBaoHanh.NgayLap,
                    NgayGiao = phieuBaoHanh.NgayGiao,
                    TenNhanVien = nhanVien.TenNhanvien,
                    TenKhachHang = phieuBaoHanh.TenKhachHang,
                    SoDienThoai = phieuBaoHanh.SoDienThoai,
                    TrangThai = phieuBaoHanh.TrangThai,
                    DaGiao = phieuBaoHanh.DaGiao
                }).AsEnumerable().Select(x => new PhieuBaoHanhViewModel()
                {
                    soPhieuBaoHanh = x.SoPhieuBaoHanh,
                    ngayLap        = x.NgayLap,
                    ngayGiao       = x.NgayGiao,
                    tenNhanVien    = x.TenNhanVien,
                    tenKhachHang   = x.TenKhachHang,
                    soDienThoai    = x.SoDienThoai,
                    trangThai      = x.TrangThai,
                    daGiao         = x.DaGiao
                }).OrderByDescending(x => x.soPhieuBaoHanh).ToList();
                return(allForManager);
            }
        }