コード例 #1
0
ファイル: CompanyService.cs プロジェクト: mstfatmc/CaseStudy
        public async Task CreateCompanyAdvertisement(PostCompanyJobAdvertisementServiceRequest postCompanyJobAdvertisementServiceRequest)
        {
            var companyEntity = await _companyRepository.Get(postCompanyJobAdvertisementServiceRequest.CompanyId);

            if (companyEntity == null)
            {
                throw new ArgumentNullException("Company not found");
            }

            if (companyEntity.AdvertisementLimit == 0)
            {
                throw new ValidationException("Company AdvertisementLimit is reached");
            }

            companyEntity.JobEntities.Add(new JobEntity()
            {
                Benefits    = postCompanyJobAdvertisementServiceRequest.Benefits,
                Salary      = postCompanyJobAdvertisementServiceRequest.Salary,
                WorkType    = postCompanyJobAdvertisementServiceRequest.WorkType,
                ExpireDate  = DateTime.Now.AddDays(15),
                Description = postCompanyJobAdvertisementServiceRequest.Description,
                Position    = postCompanyJobAdvertisementServiceRequest.Position,
                Quality     = CalculationService.CalculateJobQualityScore(postCompanyJobAdvertisementServiceRequest),
                Company     = companyEntity
            });

            companyEntity.AdvertisementLimit--;

            await _companyRepository.Update(companyEntity);
        }
コード例 #2
0
        internal static int CalculateJobQualityScore(PostCompanyJobAdvertisementServiceRequest request)
        {
            var score = 0;

            if (!string.IsNullOrEmpty(request.Position))
            {
                score++;
            }
            if (request.Salary > 0)
            {
                score++;
            }
            if (!string.IsNullOrEmpty(request.Benefits))
            {
                score++;
            }
            if (Filter(request.Description, BadKeyword.ToArray()) == 0)
            {
                score += 2;
            }
            return(score);
        }