public ActionResult GetBoundUserDataList(string userName = "", int demartment = 0, int ibound = 1, int courseID = 0, int pIndex = 1)
        {
            var a         = CourseID;
            var userIds   = new List <int>();
            int courseIDC = CourseID == 0  ? courseID : CourseID;

            if (courseIDC > 0)
            {
                userIds = courseBoundService.GetCourseBoundUserId(courseIDC);
            }

            ViewBag.pageName = "GetBoundUserDataList";
            var input = new GetUserAccountInput()
            {
                Username     = userName,
                DepartmentId = demartment,
                Isbound      = ibound,
                UserIds      = userIds,
                SkipCount    = (pIndex - 1) * PageSize, MaxResultCount = PageSize
            };
            var pagedata = userAccountService.GetPagedUserAccountsUD(input);

            GetPageData(pagedata.Count());
            return(PartialView("Shared/BoundUserDataList", pagedata.Skip((pIndex - 1) * PageSize).Take(PageSize)));
        }
        public JsonResult GetPagedUserAccounts(GetUserAccountInput input)
        {
            try
            {
                var list = _userAccountService.GetPagedUserAccounts(input);

                return(Json(list, JsonRequestBehavior.AllowGet));
            }
            catch (Exception) {
                return(new JsonResult());
            }
        }
        // 课程管理分页信息
        public ActionResult GetAccountUserDataList(string name = "", int departmentId = 0, int jobPostId = 0, int pIndex = 1)
        {
            ViewBag.pageName = "GetAccountUserDataList";
            var input = new GetUserAccountInput()
            {
                Username     = name,
                DepartmentId = departmentId,
                jobId        = jobPostId,
                SkipCount    = (pIndex - 1) * PageSize, MaxResultCount = PageSize
            };
            var pagedata = _userAccountService.GetPagedUserAccountsUD(input);

            GetPageData(pagedata.Count());
            return(PartialView("Shared/AccountUserDataList", pagedata.Skip((pIndex - 1) * PageSize).Take(PageSize)));
        }
        /// <summary>
        /// 根据查询条件获取用户账号信息分页列表
        /// </summary>
        public PagedResultDto <UserAccountListDto> GetPagedUserAccounts(GetUserAccountInput input)
        {
            var query = from user in _userAccountRepository.GetAll()
                        join de in _departmentRepository.GetAll() on user.DepartmentID equals de.DepartmentId into gc
                        from gci in gc.DefaultIfEmpty()
                        join job in _jobPostRepository.GetAll() on user.PostID equals job.Id into jc
                        from jci in jc.DefaultIfEmpty()
                        select new UserAccountListDto
            {
                Id              = user.Id,
                SysNO           = user.SysNO,
                LoginName       = user.LoginName,
                DisplayName     = user.DisplayName,
                DepartmentID    = user.DepartmentID,
                DepartmentName  = gci.DisplayName,
                province        = user.province,
                ProvinceID      = user.ProvinceID,
                City            = user.City,
                CityID          = user.CityID,
                Area            = user.Area,
                AreaID          = user.AreaID,
                DetailedAddress = user.DetailedAddress,
                PostID          = user.PostID,
                PostName        = jci.Name,
                PhoneNumber     = user.PhoneNumber,
                Email           = user.Email,
                Status          = user.Status,
                CreationTime    = user.CreationTime
            };
            IQueryable <UserAccountListDto> userAccountList = query;

            //TODO:根据传入的参数添加过滤条件
            if (!string.IsNullOrEmpty(input.Username))
            {
                userAccountList = userAccountList.Where(c => c.DisplayName.Contains(input.Username));
            }
            if (input.DepartmentId > 0)
            {
                userAccountList = userAccountList.Where(c => c.DepartmentID == input.DepartmentId);
            }
            if (input.Isbound != 0)
            {
                if (input.Isbound == 1)
                {
                    userAccountList = userAccountList.Where(c => input.UserIds.Contains((int)c.SysNO));
                    userAccountList.ToList().ForEach(t => t.IsExitCourse = true);
                }
                else if (input.Isbound == 2)
                {
                    userAccountList = userAccountList.Where(c => !input.UserIds.Contains((int)c.SysNO));
                    userAccountList.ToList().ForEach(t => t.IsExitCourse = false);
                }
            }
            if (input.jobId > 0)
            {
                userAccountList = userAccountList.Where(c => c.PostID == input.jobId);
            }

            var userAccountCount = userAccountList.Count();

            var userAccounts = userAccountList
                               .OrderByDescending(t => t.CreationTime)
                               .PageBy(input)
                               .ToList();

            var userAccountListDtos = userAccounts.MapTo <List <UserAccountListDto> >();

            return(new PagedResultDto <UserAccountListDto>(
                       userAccountCount,
                       userAccountListDtos
                       ));
        }
        /// <summary>
        /// 根据查询条件获取用户账号信息分页列表
        /// </summary>
        public IEnumerable <UserAccountListDto> GetPagedUserAccountsUD(GetUserAccountInput input)
        {
            var query = from user in _userAccountRepository.GetAll()
                        join de in _departmentRepository.GetAll() on user.DepartmentID equals de.DepartmentId into gc
                        from gci in gc.DefaultIfEmpty()
                        join job in _jobPostRepository.GetAll() on user.PostID equals job.Id into jc
                        from jci in jc.DefaultIfEmpty()
                        select new UserAccountListDto
            {
                Id              = user.Id,
                SysNO           = user.SysNO,
                LoginName       = user.LoginName,
                DisplayName     = user.DisplayName,
                DepartmentID    = user.DepartmentID,
                DepartmentName  = gci.DisplayName,
                province        = user.province,
                ProvinceID      = user.ProvinceID,
                City            = user.City,
                CityID          = user.CityID,
                Area            = user.Area,
                AreaID          = user.AreaID,
                DetailedAddress = user.DetailedAddress,
                PostID          = user.PostID,
                PostName        = jci.Name,
                PhoneNumber     = user.PhoneNumber,
                Email           = user.Email,
                Status          = user.Status,
                CreationTime    = user.CreationTime,
                Path            = gci.Path
            };
            IEnumerable <UserAccountListDto> userAccountList = query.MapTo <List <UserAccountListDto> >();

            //TODO:根据传入的参数添加过滤条件
            if (!string.IsNullOrEmpty(input.Username))
            {
                userAccountList = userAccountList.Where(c => c.DisplayName.Contains(input.Username));
            }
            if (input.DepartmentId > 0)
            {
                var depaertmentDate = _departmentRepository.GetAll().FirstOrDefault(c => c.DepartmentId == input.DepartmentId);
                if (depaertmentDate != null)
                {
                    userAccountList = userAccountList.Where(c => c.Path.StartsWith(depaertmentDate.Path));
                }
            }
            if (input.Isbound != 0)
            {
                if (input.Isbound == 1)
                {
                    userAccountList = userAccountList.Where(c => input.UserIds.Contains((int)c.SysNO));
                    userAccountList.ToList().ForEach(t => t.IsExitCourse = true);
                }
                else if (input.Isbound == 2)
                {
                    userAccountList = userAccountList.Where(c => !input.UserIds.Contains((int)c.SysNO));
                    userAccountList.ToList().ForEach(t => t.IsExitCourse = false);
                }
            }
            if (input.jobId > 0)
            {
                userAccountList = userAccountList.Where(c => c.PostID == input.jobId);
            }

            return(userAccountList);
        }