Пример #1
0
        public async Task <JobApplicationViewModel> AddJobApplications(JobApplicationViewModel model)
        {
            var mapped = _mapper.Map <JobApplications>(model);
            await _jobApplicationRepository.Add(mapped);

            return(model);
        }
Пример #2
0
        public async Task <JobApplicationDto> Handle(SubmitJobApplicationCommand request, CancellationToken cancellationToken)
        {
            if (await _employmentQueries.GetJobPostingByIdAsync(request.JobPostingId) == null)
            {
                throw new PersonnelDomainException(ErrorTypes.JobApplicationError, new[] { "Invalid job posting id" });
            }

            var myId = _identityService.GetUserIdentity();

            var hasApplied = (await _employmentQueries.GetJobApplicationsByApplicantIdAsync(myId))
                             .Items
                             .Any(app => app.JobPosting.Id == request.JobPostingId);

            if (hasApplied)
            {
                throw new PersonnelDomainException(ErrorTypes.JobApplicationError, new[] { "You have already applied for this position" });
            }

            var memoryStream = new MemoryStream();
            await request.Resume.CopyToAsync(memoryStream, cancellationToken);

            ;
            var jobApplication = new JobApplication(request.JobPostingId, myId);
            var result         = _jobApplicationRepository.Add(jobApplication, memoryStream.ToArray());
            await _jobApplicationRepository.UnitOfWork.SaveChangesAsync();

            var jobApplicationDto = await _employmentQueries.GetJobApplicationByIdAsync(result.Id);

            return(jobApplicationDto);
        }
 public void CreateJobApplication(JobApplication jobApplication)
 {
     jobApplicationRepository.Add(jobApplication);
 }