/// <summary>
        /// 获取VisitRecord的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <VisitRecordListDto> > GetPagedVisitRecords(GetVisitRecordsInput input)
        {
            var query = _visitrecordRepository.GetAll();
            // TODO:根据传入的参数添加过滤条件

            var visitrecordCount = await query.CountAsync();

            var visitrecords = await query
                               .OrderBy(input.Sorting).AsNoTracking()
                               .PageBy(input)
                               .ToListAsync();

            // var visitrecordListDtos = ObjectMapper.Map<List <VisitRecordListDto>>(visitrecords);
            var visitrecordListDtos = visitrecords.MapTo <List <VisitRecordListDto> >();

            return(new PagedResultDto <VisitRecordListDto>(
                       visitrecordCount,
                       visitrecordListDtos
                       ));
        }
        /// <summary>
        /// 获取烟农被拜访记录
        /// </summary>
        public async Task <PagedResultDto <VisitRecordListDto> > GetVisitRecordsByGrowerId(GetVisitRecordsInput input)
        {
            var record         = _visitrecordRepository.GetAll().Where(v => v.GrowerId == input.GrowerId);
            var employee       = _employeeRepository.GetAll();
            var scheduleDetail = _scheduleDetailRepository.GetAll();
            var task           = _visitTaskRepository.GetAll();
            var taskExamine    = _taskExamineRepository.GetAll();
            var query          = await(from r in record
                                       join e in employee on r.EmployeeId equals e.Id
                                       join s in scheduleDetail on r.ScheduleDetailId equals s.Id
                                       join t in task on s.TaskId equals t.Id
                                       select new VisitRecordListDto()
            {
                Id               = r.Id,
                EmployeeId       = r.EmployeeId,
                GrowerId         = r.GrowerId,
                Location         = r.Location,
                Longitude        = r.Longitude,
                SignTime         = r.SignTime,
                ScheduleDetailId = r.ScheduleDetailId,
                Desc             = r.Desc,
                ImgPath          = r.ImgPath,
                Latitude         = r.Latitude,
                CreationTime     = r.CreationTime,
                EmployeeName     = e.Name,
                TaskName         = t.Name,
                HasExamine       = t.IsExamine,
                TaskId           = t.Id
            }).ToListAsync();

            foreach (var item in query)
            {
                if (item.HasExamine == true)
                {
                    var examineQuery = from v in _visitExamineRepository.GetAll()
                                       join t in _taskExamineRepository.GetAll() on v.TaskExamineId equals t.Id
                                       where v.VisitRecordId == item.Id
                                       select new
                    {
                        t.Name,
                        v.Score,
                        t.ExamineOption
                    };
                    var list = examineQuery.ToList().Select(e => e.Name + "(" + GetScoreName(e.ExamineOption, e.Score) + ")").ToList();

                    string examineName = string.Join(",", list.ToArray());
                    item.ExaminesName = examineName;
                }
            }
            var visitrecordCount = query.Count();
            //var visitrecords = await query
            //        .OrderByDescending(v => v.SignTime).AsNoTracking()
            //        .PageBy(input)
            //        .ToListAsync();
            var visitrecords = query
                               .OrderByDescending(v => v.SignTime)
                               .Skip(input.SkipCount)
                               .Take(input.MaxResultCount);

            var visitrecordListDtos = visitrecords.MapTo <List <VisitRecordListDto> >();

            return(new PagedResultDto <VisitRecordListDto>(
                       visitrecordCount,
                       visitrecordListDtos
                       ));
        }