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