Пример #1
0
        public RecruitmentSkillDTO GetDataById(long id)
        {
            var result = (from skill in recruitmentSkillRepository.GetAll()
                          where skill.Id == id
                          select mapper.Map <RecruitmentSkill, RecruitmentSkillDTO>(skill)
                          ).FirstOrDefault();

            return(result);
        }
Пример #2
0
        public PageListResultBO <RecruitmentRequestDTO> GetDataByPage(RecruitmentRequestSearchDTO searchParams, int pageIndex = 1, int pageSize = 20)
        {
            var queryResult = (from request in this.recruitmentRequestRepository.GetAllAsQueryable()
                               join category in this.categoryDataRepository.GetAllAsQueryable()
                               on request.PositionId equals category.Id
                               into groupRequestPosition
                               from g1 in groupRequestPosition.DefaultIfEmpty()

                               join department in this.departmentRepository.GetAllAsQueryable()
                               on request.DepartmentId equals department.Id
                               into groupRequestDepartment
                               from g2 in groupRequestDepartment.DefaultIfEmpty()
                               select new RecruitmentRequestDTO()
            {
                Id = request.Id,
                Title = request.Title,
                DepartmentId = request.DepartmentId,
                PositionId = request.PositionId,
                PositionName = g1.Name,
                DepartmentName = g2.Name,
                EstimateQuantity = request.EstimateQuantity,
                Status = request.Status,
                UntilDate = request.UntilDate,
                IsTemplate = request.IsTemplate,
                SkillGroups = request.SkillGroups
            });

            if (searchParams != null)
            {
                if (!string.IsNullOrEmpty(searchParams.QueryTitle))
                {
                    searchParams.QueryTitle = searchParams.QueryTitle.Trim().ToLower();
                    queryResult             = queryResult.Where(x => x.Title.Trim().ToLower().Contains(searchParams.QueryTitle));
                }
                if (searchParams.QueryDepartmentId != null)
                {
                    queryResult = queryResult.Where(x => x.DepartmentId == searchParams.QueryDepartmentId.Value);
                }

                if (!string.IsNullOrEmpty(searchParams.QueryUntilDateFrom))
                {
                    var queryDate = searchParams.QueryUntilDateFrom.ToStartDay();
                    if (queryDate != null)
                    {
                        queryResult = queryResult.Where(x => x.UntilDate >= queryDate);
                    }
                }

                if (!string.IsNullOrEmpty(searchParams.QueryUntileDateTo))
                {
                    var queryDate = searchParams.QueryUntileDateTo.ToEndDay();
                    if (queryDate != null)
                    {
                        queryResult = queryResult.Where(x => x.UntilDate <= queryDate);
                    }
                }

                if (!string.IsNullOrEmpty(searchParams.QueryPositions))
                {
                    List <int> positionIds = searchParams.QueryPositions.ToListNumber <int>(',').ToList();
                    queryResult = queryResult.Where(x => positionIds.Contains(x.PositionId));
                }

                if (searchParams.QueryStatus != null)
                {
                    queryResult = queryResult.Where(x => x.Status == searchParams.QueryStatus);
                }

                if (searchParams.QueryQuantityFrom != null)
                {
                    queryResult = queryResult.Where(x => x.EstimateQuantity >= searchParams.QueryQuantityFrom);
                }

                if (searchParams.QueryQuantityTo != null)
                {
                    queryResult = queryResult.Where(x => x.EstimateQuantity <= searchParams.QueryQuantityTo);
                }

                if (searchParams.QueryTemplate == true)
                {
                    queryResult = queryResult.Where(x => x.IsTemplate == true);
                }
                else
                {
                    queryResult = queryResult.Where(x => x.IsTemplate != true);
                }
                if (!string.IsNullOrEmpty(searchParams.sortQuery))
                {
                    queryResult = queryResult.OrderBy(searchParams.sortQuery);
                }
                else
                {
                    queryResult = queryResult.OrderBy(x => x.UntilDate)
                                  .ThenByDescending(x => x.Title);
                }
            }
            else
            {
                queryResult = queryResult.OrderBy(x => x.UntilDate)
                              .ThenByDescending(x => x.Title);
            }

            var result = new PageListResultBO <RecruitmentRequestDTO>();

            if (pageSize == -1)
            {
                var pagedList = queryResult.ToList();
                result.Count     = pagedList.Count;
                result.TotalPage = 1;
                result.ListItem  = pagedList;
            }
            else
            {
                var dataPageList = queryResult.ToPagedList(pageIndex, pageSize);
                result.Count     = dataPageList.TotalItemCount;
                result.TotalPage = dataPageList.PageCount;
                result.ListItem  = dataPageList.ToList();

                if (result.ListItem.Any())
                {
                    var dataGroupSkills = recruitmentSkillRepository.GetAll();
                    result.ListItem.ForEach(x =>
                    {
                        var ids           = x.SkillGroups.ToListLong(',');
                        x.DataGroupSkills = dataGroupSkills.Where(y => ids.Contains(y.Id));
                    });
                }
            }
            return(result);
        }