Beispiel #1
0
        public IActionResult Post([FromBody] AddJobApplicationModel jobApplicationModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var result = new JobApplicationManager(context, userManager).SaveJobApplication(jobApplicationModel);

            new EmailNotification(context, Configuration).SendJobApplicationEmail(result.Data, userManager, hostingEnvironment.WebRootPath);
            return(Ok(new { success = result.Success, message = result.Message, data = result.Data }));
        }
Beispiel #2
0
 public GenericActionResult <JobApplication> SaveJobApplication(AddJobApplicationModel jobApplicationModel)
 {
     try
     {
         var application = new JobApplication
         {
             UserId      = jobApplicationModel.UserId,
             DateCreated = DateTime.Now,
             IsDeleted   = false,
             JobId       = jobApplicationModel.JobId,
             IsViewed    = false
         };
         context.JobApplications.Add(application);
         context.SaveChanges();
         return(new GenericActionResult <JobApplication>(true, "Job application saved successfully.", application));
     }
     catch (Exception)
     {
         return(new GenericActionResult <JobApplication>("Failed to save job application, please try again or contact the administrator."));
     }
 }
Beispiel #3
0
        public async Task <IActionResult> AddJobApplication(AddJobApplicationModel addModel)
        {
            if (!ModelState.IsValid)
            {
                throw new ArgumentException();
            }
            var jobOffer = await jobOfferFacade.GetByIdAsync(addModel.JobApplication.JobOfferId ?? 0);

            var user = await userFacade.GetByIdAsync(Int32.Parse(User.Identity.Name));

            var jobSeeker = await jobSeekerFacade.GetByIdAsync(user.JobSeekerId.Value);

            var jobApplication = new JobApplicationDto
            {
                ApplicantId = jobSeeker.Id,
                JobOfferId  = jobOffer.Id,
                Status      = Status.Unresolved,
                Answers     = addModel.JobApplication.Answers,
                Text        = addModel.JobApplication.Text
            };
            await jobApplicationFacade.ApplyToJobOfferAsync(jobApplication);

            return(RedirectToAction("Index"));
        }
Beispiel #4
0
        public async Task <IActionResult> AddJobApplication(int jobOfferId)
        {
            var jobOffer = await jobOfferFacade.GetByIdWithQuestionsAsync(jobOfferId);

            var user = await userFacade.GetByIdAsync(Int32.Parse(User.Identity.Name));

            var jobSeeker = await jobSeekerFacade.GetByIdAsync(user.JobSeekerId.Value);

            var model = new AddJobApplicationModel
            {
                JobOffer       = jobOffer,
                JobApplication = new JobApplicationDto
                {
                    ApplicantId = jobSeeker.Id,
                    Applicant   = jobSeeker,
                    JobOfferId  = jobOffer.Id,
                    JobOffer    = jobOffer,
                    Status      = Status.Unresolved,
                    Answers     = new JobApplicationAnswerDto[jobOffer.Questions.Count]
                }
            };

            return(View(model));
        }