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)); }