/// <summary>
        /// Tìm kiếm tài khoản theo email
        /// Author       :   HoangNM - 05/05/2019 - create
        /// </summary>
        /// <param name="query">email của tài khoản cần tìm kiếm</param>
        /// <returns>Danh sách các tác giả đã tìm kiếm được. Exception nếu có lỗi</returns>
        public DanhSachTaiKhoan GetListTaiKhoanSearch(string query, int index)
        {
            try
            {
                DanhSachTaiKhoan listTaiKhoan = new DanhSachTaiKhoan();

                // Lấy các thông tin dùng để phân trang
                listTaiKhoan.Paging = new Paging(context.TaiKhoans.Count(x => x.Email.Contains(query) && !x.DelFlag), index);
                // Tìm kiếm và lấy dữ liệu theo trang
                listTaiKhoan.listTaiKhoan = context.TaiKhoans.Where(x => x.Email.Contains(query) && !x.DelFlag).OrderBy(x => x.Id)
                                            .Skip((listTaiKhoan.Paging.CurrentPage - 1) * listTaiKhoan.Paging.NumberOfRecord)
                                            .Take(listTaiKhoan.Paging.NumberOfRecord).Select(x => new QL_TaiKhoan
                {
                    Id          = x.Id,
                    Username    = x.Username,
                    Email       = x.Email,
                    IdNhom      = x.Id_NhomDich,
                    IdTrangThai = x.Id_TrangThai,
                    TenNhom     = x.NhomDich.TenNhomDich,
                    IdQuyen     = x.Id_PhanQuyen,
                    TenQuyen    = x.PhanQuyen.TenVaiTro
                }).ToList();

                return(listTaiKhoan);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Tìm kiếm các tài khoản theo phân trang và tìm kiếm
        /// Author       :   HoangNM - 18/03/2019 - create
        /// </summary>
        /// <param name="condition">Đối tượng chứa điều kiện tìm kiếm</param>
        /// <param name="type">loại quyền của tài khoản</param>
        /// <returns>Danh sách các tác giả đã tìm kiếm được. Exception nếu có lỗi</returns>
        public DanhSachTaiKhoan GetListTaiKhoan(int page)
        {
            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 (condition == null)
                //{
                //    condition = new TaiKhoanConditionSearch();
                //}
                DanhSachTaiKhoan listTaiKhoan = new DanhSachTaiKhoan();
                var kt = Convert.ToInt64(new GetPermission().GetQuyen("ACCOUNT_MAN")) & Convert.ToInt64(Common.Common.GetTongQuyen());

                if (kt == 0)
                {
                    string   Token    = Common.Common.GetTokenTaiKhoan();
                    TblToken TblToken = context.Tokens.FirstOrDefault(x => x.TokenTaiKhoan == Token);
                    int      IdNhom   = context.TaiKhoans.FirstOrDefault(x => x.Id == TblToken.Id_TaiKhoan).Id_NhomDich;
                }

                // Lấy các thông tin dùng để phân trang
                listTaiKhoan.Paging = new Paging(context.TaiKhoans.Count(x => !x.DelFlag), page);
                // Tìm kiếm và lấy dữ liệu theo trang
                listTaiKhoan.listTaiKhoan = context.TaiKhoans.Where(x => !x.DelFlag).OrderBy(x => x.Id)
                                            .Skip((listTaiKhoan.Paging.CurrentPage - 1) * listTaiKhoan.Paging.NumberOfRecord)
                                            .Take(listTaiKhoan.Paging.NumberOfRecord).Select(x => new QL_TaiKhoan
                {
                    Id          = x.Id,
                    Username    = x.Username,
                    Email       = x.Email,
                    IdNhom      = x.Id_NhomDich,
                    IdTrangThai = x.Id_TrangThai,
                    TenNhom     = x.NhomDich.TenNhomDich,
                    IdQuyen     = x.Id_PhanQuyen,
                    TenQuyen    = x.PhanQuyen.TenVaiTro
                }).ToList();
                listTaiKhoan.CurrentPage = page;

                return(listTaiKhoan);
            }
            catch (Exception e)
            {
                throw e;
            }
        }