public static List <JobDto> JobListByFilters(JobFilters filters)
        {
            List <JobDto> JobDtos;

            filters.sendCV   = filters.sendCV ?? new List <bool>();
            filters.active   = filters.active ?? new List <bool>();
            filters.subjects = filters.subjects ?? new List <int>();
            DateTime dateMonthAgo = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, DateTime.Now.Day);

            using (placementDepartmentDBEntities placementDepartmentDB = new placementDepartmentDBEntities())
            {
                JobDtos = placementDepartmentDB.Job
                          .Where(j =>
                                 (!filters.sendCV.Any() || filters.sendCV.Contains(j.didSendCV)) &&
                                 (!filters.active.Any() || filters.active.Contains(j.isActive)) &&
                                 (filters.period == 0 ||
                                  filters.period == 1 && j.dateReceived >= dateMonthAgo ||
                                  filters.period == 2 && j.dateReceived >= filters.startDate && j.dateReceived <= filters.endDate) &&
                                 (!filters.subjects.Any() || filters.subjects.Contains(j.subjectId))
                                 )
                          .ProjectTo <JobDto>(AutoMapperConfiguration.config)
                          .ToList();
                return(JobDtos);
            }
        }
 public List <JobDto> Get([FromUri] JobFilters filters)
 {
     if (filters == null)
     {
         return(Get());
     }
     return(JobDtoManager.JobDtoListByFilters(filters));
 }
        public static ApiRes <JobDto> JobLazyList(JobFilters filters, string sort, int page, int size)
        {
            ApiRes <JobDto> res = new ApiRes <JobDto>();

            sort                  = sort == " ," || sort == " , " ? "" : sort;
            filters.sendCV        = filters.sendCV ?? new List <bool>();
            filters.active        = filters.active ?? new List <bool>();
            filters.ReasonClosing = filters.ReasonClosing ?? new List <int>();
            filters.subjects      = filters.subjects ?? new List <int>();
            filters.user          = filters.user ?? new List <int>();
            DateTime dateMonthAgo = DateTime.Now.AddMonths(-1);

            using (placementDepartmentDBEntities placementDepartmentDB = new placementDepartmentDBEntities())
            {
                User cuser = placementDepartmentDB.User.Find(filters.curUserId);
                if (cuser.permissionId == 2)
                {
                    filters.user = new List <int>(1)
                    {
                        cuser.Id
                    }
                }
                ;
                res.items = placementDepartmentDB.Job
                            .Where(j =>
                                   ((cuser.permissionId == 1 && !filters.user.Any()) || filters.user.Contains(j.handlesId)) &&
                                   (!filters.sendCV.Any() || filters.sendCV.Contains(j.didSendCV)) &&
                                   (!filters.active.Any() || filters.active.Contains(j.isActive)) &&
                                   (filters.period == 0 ||
                                    filters.period == 1 && j.dateReceived >= dateMonthAgo ||
                                    filters.period == 2 && j.dateReceived >= filters.startDate && j.dateReceived <= filters.endDate) &&
                                   (!filters.ReasonClosing.Any() || filters.ReasonClosing.Contains(j.reasonForClosing.Value)) &&
                                   (!filters.subjects.Any() || filters.subjects.Contains(j.subjectId))
                                   )
                            .OrderBy(sort + "dateReceived desc")
                            .Skip(page * size)
                            .Take(size)
                            .ProjectTo <JobDto>(AutoMapperConfiguration.config)
                            .ToList();
                res.totalCount = placementDepartmentDB.Job.Where(j =>
                                                                 ((cuser.permissionId == 1 && !filters.user.Any()) || filters.user.Contains(j.handlesId)) &&
                                                                 (!filters.sendCV.Any() || filters.sendCV.Contains(j.didSendCV)) &&
                                                                 (!filters.active.Any() || filters.active.Contains(j.isActive)) &&
                                                                 (filters.period == 0 ||
                                                                  filters.period == 1 && j.dateReceived >= dateMonthAgo ||
                                                                  filters.period == 2 && j.dateReceived >= filters.startDate && j.dateReceived <= filters.endDate) &&
                                                                 (!filters.subjects.Any() || filters.subjects.Contains(j.subjectId))
                                                                 ).Count();
                return(res);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// index页面展示
        /// </summary>
        /// <param name="filters"></param>
        /// <returns></returns>
        public async Task <PagedResult <JobDto> > SearchJobsAsync(JobFilters filters)
        {
            if (filters == null)
            {
                return(new PagedResult <JobDto>());
            }

            var query = _context.Jobs
                        .WhereIf(filters.keywords.IsNotBlank(), x => (x.ReviceAccount.Contains(filters.keywords) || x.MessageContext.Contains(filters.keywords)));

            return(await query.OrderByDescending(x => x.CreateDateTime)
                   .Select(item => new JobDto
            {
                Id = item.Id,
                ReviceAccount = item.ReviceAccount,
                JobReciveType = item.JobReciveType,
                MessageContext = item.MessageContext
            }).PagingAsync(filters.page, filters.rows));
        }
 public ApiRes <JobDto> Get(int page, int size, string sort, [FromUri] JobFilters filters)
 {
     filters.curUserId = Int32.Parse(HttpContext.Current.User.Identity.Name);
     return(JobDtoManager.JobDtoLazyList(filters, sort, page, size));
 }
Esempio n. 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filters"></param>
        /// <returns></returns>
        public async Task <IActionResult> JobList(JobFilters filters)
        {
            var result = await _jobService.SearchJobsAsync(filters);

            return(Json(result));
        }