public async Task <int> Create(JobApplicationCreateDto entityDto)
        {
            var applicationEntity = Mapper.Map <JobApplication>(entityDto);

            var jobOffer = await jobOfferRepository.GetAsync(entityDto.JobOfferId);

            var registeredUser = userRepository.GetByEmail(entityDto.Applicant.Email);

            if (registeredUser != null)
            {
                applicationEntity.Applicant   = registeredUser;
                applicationEntity.ApplicantId = registeredUser.Id;
            }

            applicationEntity.QuestionAnswers = new List <QuestionAnswer>();
            if (entityDto.QuestionAnswers != null)
            {
                for (int i = 0; i < entityDto.QuestionAnswers.Count; i++)
                {
                    var answerEntity = new QuestionAnswer()
                    {
                        Application = applicationEntity,
                        Text        = entityDto.QuestionAnswers[i].Text,
                        Question    = jobOffer.Questions[i]
                    };

                    applicationEntity.QuestionAnswers.Add(answerEntity);
                }
            }

            Repository.Create(applicationEntity);
            return(applicationEntity.Id);
        }
Beispiel #2
0
        public async Task CreateApplication(JobApplicationCreateDto jobApplication)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                await jobApplicationService.Create(jobApplication);

                await uow.Commit();
            }
        }
        public async Task <ActionResult> Create(int jobOfferId)
        {
            var offer = await JobOfferFacade.GetOffer(jobOfferId);

            var user = User.Identity.Name.IsNullOrEmpty()
                ? new ApplicantDto()
                : await UserFacade.GetUserByEmail(User.Identity.Name);

            var model = new JobApplicationCreateDto
            {
                Applicant  = user,
                JobOffer   = offer,
                JobOfferId = offer.Id
            };

            return(View(model));
        }
        public async Task <ActionResult> Create(JobApplicationCreateDto application)
        {
            if (ModelState.IsValid)
            {
                await JobApplicationFacade.CreateApplication(application);

                return(RedirectToAction("Details", "JobOffer", new { id = application.JobOfferId }));
            }

            var offer = await JobOfferFacade.GetOffer(application.JobOfferId);

            application.JobOffer   = offer;
            application.JobOfferId = offer.Id;
            application.Applicant  = User.Identity.Name.IsNullOrEmpty()
                ? new ApplicantDto()
                : await UserFacade.GetUserByEmail(User.Identity.Name);


            return(View(application));
        }