public async Task <IActionResult> CreateQualification([FromBody] QualificationCreateDto qualification)
        {
            if (qualification == null)
            {
                return(BadRequest("QualificationDto object is null."));
            }
            else
            {
                var qualificationEntity = _mapper.Map <Qualification>(qualification);
                _repository.Qualification.CreateQualification(qualificationEntity);
                await _repository.SaveAsync();

                var qualificationToReturn = _mapper.Map <QualificationDto>(qualificationEntity);
                return(CreatedAtRoute("GetQualification", new { id = qualificationToReturn.Id }, qualificationToReturn));
            }
        }
        public async Task <IActionResult> CreateQualification([FromRoute] string campaignId, [FromRoute] string recruitmentId, [FromRoute] string openingId, [FromBody] QualificationCreateDto dto)
        {
            QualificationCreateDtoValidator validator = new QualificationCreateDtoValidator();
            ValidationResult result = await validator.ValidateAsync(dto);

            if (result.IsValid)
            {
                var userId = User.Claims
                             .Single(p => p.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").Value;
                var role = User.Claims
                           .Single(p => p.Type == ClaimTypes.Role).Value;
                var act = await _dbContext.RecruitmentCampaigns
                          .Include(x => x.RecruitmentCampaignOpenings.Where(y => y.RecruitmentCampaignOpeningId == openingId))
                          .ThenInclude(x => x.Qualifications)
                          .Include(x => x.Company)
                          .ThenInclude(x => x.Managers)
                          .SingleOrDefaultAsync(x => x.CampaignId == campaignId && x.RecruitmentCampaignId == recruitmentId);

                var opening = act.RecruitmentCampaignOpenings.First();

                #region 驗證

                if (role == RoleType.Manager.ToString("G"))
                {
                    if (!act.Company.Managers.Any(x => x.ApplicationUserId == userId))
                    {
                        return(Problem(title: "禁止新增", detail: "非此活動邀請企業", statusCode: 403));
                    }
                }

                #endregion

                var entity = _mapper.Map <Qualification>(dto);
                opening.Qualifications.Add(entity);
                _dbContext.RecruitmentCampaigns.Update(act);
                await _dbContext.SaveChangesAsync();

                var routeValues = new { campaignId, recruitmentId, openingId, qualificationId = entity.QualificationId };
                var returnDto   = _mapper.Map <QualificationDto>(entity);
                return(CreatedAtAction(nameof(Qualification), routeValues, returnDto));
            }
            return(BadRequest(result.Errors));
        }