コード例 #1
0
        public async Task <ActionResult <FileDto> > StudentEditVerifyFile([FromRoute] string fileId, [FromBody] FileEditDto dto)
        {
            FileEditDtoValidator validator = new FileEditDtoValidator();
            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 student = await _dbContext.Students
                              .Include(x => x.StudentVerify)
                              .Include(x => x.StudentVerify.StudentVerifyFiles)
                              .SingleOrDefaultAsync(x => x.ApplicationUserId == userId);

                if (student.StudentConfirmed)
                {
                    return(Problem(title: "禁止修改", detail: "在校生已驗證", statusCode: 403));
                }
                var entity = student.StudentVerify.StudentVerifyFiles
                             .SingleOrDefault(x => x.StudentVerifyFileId == fileId);
                if (entity == null)
                {
                    return(NotFound());
                }
                var updateEntity = _mapper.Map(dto, entity);
                _dbContext.StudentVerifyFiles.Update(updateEntity);
                await _dbContext.SaveChangesAsync();

                var returnDto   = _mapper.Map <FileDto>(updateEntity);
                var routeValues = new { fileId = returnDto.Id };
                return(CreatedAtAction(nameof(StudentVerifyFile), routeValues, returnDto));
            }
            return(BadRequest(result.Errors));
        }
コード例 #2
0
        public async Task <IActionResult> EditResume([FromRoute] string resumeId, [FromBody] FileEditDto dto)
        {
            FileEditDtoValidator validator = new FileEditDtoValidator();
            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 entity = await _dbContext.FileResumes
                             .Where(x => x.ApplicationUserId == userId)
                             .SingleOrDefaultAsync(x => x.FileResumeId == resumeId);

                if (entity == null)
                {
                    return(NotFound());
                }
                var updateEntity = _mapper.Map(dto, entity);
                _dbContext.FileResumes.Update(updateEntity);
                await _dbContext.SaveChangesAsync();

                var returnDto = _mapper.Map <FileDto>(updateEntity);
                return(CreatedAtRoute(nameof(GetResume), new { resumeId = returnDto.Id }, returnDto));
            }
            return(BadRequest(result.Errors));
        }
コード例 #3
0
        public async Task <IActionResult> EditRecruitmentFile([FromRoute] string campaignId, [FromRoute] string recruitmentId, [FromRoute] string fileId, [FromBody] FileEditDto dto)
        {
            FileEditDtoValidator validator = new FileEditDtoValidator();
            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 administrator = await _dbContext.Administrators
                                    .AsNoTracking()
                                    .SingleOrDefaultAsync(x => x.ApplicationUserId == userId);

                #region 驗證

                if (!administrator.AdministratorConfirmed)
                {
                    return(Problem(title: "禁止修改", detail: "管理員尚未驗證", statusCode: 403));
                }

                #endregion

                var act = await _dbContext.RecruitmentCampaigns
                          .Include(x => x.RecruitmentCampaignFiles)
                          .SingleOrDefaultAsync(x => x.CampaignId == campaignId && x.RecruitmentCampaignId == recruitmentId);

                if (act == null)
                {
                    return(NotFound());
                }

                var entity = act.RecruitmentCampaignFiles
                             .SingleOrDefault(x => x.RecruitmentCampaignFileId == fileId);
                if (entity == null)
                {
                    return(NotFound());
                }

                var updateEntity = _mapper.Map(dto, entity);
                _dbContext.RecruitmentCampaignFiles.Update(updateEntity);
                await _dbContext.SaveChangesAsync();

                var routeValues = new { campaignId = act.CampaignId, recruitmentId = act.RecruitmentCampaignId, fileId = entity.RecruitmentCampaignFileId };
                var returnDto   = _mapper.Map <FileDto>(entity);
                return(CreatedAtAction(nameof(RecruitmentFile), routeValues, returnDto));
            }
            return(BadRequest(result.Errors));
        }