コード例 #1
0
 private RespondentsQuery CreateRespondentsQuery(RespondentsFilter filter)
 {
     return(new RespondentsQuery
     {
         Professional = filter.Professional,
         Country = filter.Country,
         DeveloperType = filter.DeveloperType,
         Gender = filter.Gender,
         Language = filter.Language,
         VersionControl = filter.VersionControl
     });
 }
コード例 #2
0
        public IEnumerable <Respondent> GetRespondents(RespondentsFilter filter)
        {
            IQueryable <RespondentInfo> respInfo = this.respondentRepository.GetFiltered(this.CreateRespondentsQuery(filter));

            if (!string.IsNullOrEmpty(filter.CompanySize))
            {
                respInfo = from res in respInfo
                           join cmp in this.companySizeRepository.GetAll()
                           on res.CompanySize equals cmp.Size
                           where cmp.Class == filter.CompanySize
                           select res;
            }

            if (!string.IsNullOrEmpty(filter.ExperienceLevel))
            {
                respInfo = from res in respInfo
                           join exp in this.experienceLevelRepository.GetAll()
                           on res.ExperienceLevel equals exp.YearsProgram
                           where exp.Level == filter.ExperienceLevel
                           select res;
            }

            IEnumerable <Respondent> respondents =
                respInfo
                .Select(respondent => new Respondent
            {
                Id                 = respondent.Id,
                Country            = respondent.Country,
                DeveloperType      = respondent.DeveloperType,
                Gender             = respondent.Gender,
                Professional       = respondent.Professional,
                CompanySize        = respondent.CompanySize,
                Language           = respondent.Language,
                VersionControl     = respondent.VersionControl,
                WorkStart          = respondent.WorkStart,
                ExperienceLevel    = respondent.ExperienceLevel,
                CareerSatisfaction = respondent.CareerSatisfaction,
                JobSatisfaction    = respondent.JobSatisfaction
            });


            respondents = respondents.ToList();

            foreach (Respondent respondent in respondents)
            {
                respondent.CompanySize     = this.companySizeCache.GetCompanyClass(respondent.CompanySize);
                respondent.ExperienceLevel = this.experienceLevelCache.GetExperienceLevel(respondent.ExperienceLevel);
            }

            return(respondents);
        }
コード例 #3
0
 public IEnumerable <Respondent> GetAll([FromUri] RespondentsFilter filter)
 {
     return(respondentsService.GetRespondents(filter));
 }