public async Task <ListResultDto <JobListDTO> > GetAll(GetAllJobsInput input)
        {
            var m = await _jobRepository.GetAll()
                    .WhereIf(!input.CompanyName.IsNullOrEmpty(), t => t.CompanyName == input.CompanyName)
                    .ToListAsync();

            var jobdto = ObjectMapper.Map <List <JobListDTO> >(m);

            return(new ListResultDto <JobListDTO>(jobdto));
        }
        public PagedResultDto <JobListDTO> GetNotAppliedJobs(GetAllJobsInput input)
        {
            var jobIds = _appliedJobsRepository
                         .GetAll()
                         .Where(t => t.CreatorUserId == AbpSession.UserId)
                         .Select(t => t.JobId)
                         .ToList();

            input.ExcludeJobsId = jobIds;

            return(GetAllPaginatedJobs(input));
        }
        public PagedResultDto <JobListDTO> GetAllPaginatedJobs(GetAllJobsInput input)
        {
            var jobrepo = _jobRepository
                          .GetAll()
                          .WhereIf(
                !input.CompanyName.IsNullOrEmpty(),
                p => p.CompanyName.Contains(input.CompanyName)
                )
                          .WhereIf(input.ExcludeJobsId != null && input.ExcludeJobsId.Count != 0, t => !input.ExcludeJobsId.Contains(t.Id));



            var pagedResult = jobrepo.OrderByDescending(p => p.Id)
                              .Skip(input.SkipCount)
                              .Take(input.MaxResultCount)
                              .ToList();

            var totalcount = jobrepo.Count();
            var jobmapped  = ObjectMapper.Map <List <JobListDTO> >(pagedResult);

            return(new PagedResultDto <JobListDTO>(totalcount, jobmapped));
        }