Esempio n. 1
0
        public ActionResult ExternallyApplied(Guid jobAdId)
        {
            const string method = "ExternallyApplied";

            try
            {
                var jobAd = _jobAdsQuery.GetJobAd <JobAdEntry>(jobAdId);
                if (jobAd == null)
                {
                    throw new ValidationErrorsException(new NotFoundValidationError("JobAdId", jobAdId));
                }
                if (jobAd.Integration.IntegratorUserId == null)
                {
                    throw new ValidationErrorsException(new RequiredValidationError("IntegratorUserId"));
                }

                // Get the applicant id.

                var user        = CurrentUser;
                var applicantId = user == null ? (Guid?)null : user.Id;
                if (applicantId == null)
                {
                    throw new ValidationErrorsException(new RequiredValidationError("ApplicantId"));
                }

                // Record the external application.

                _applicationsCommand.CreateApplication(new ExternalApplication {
                    PositionId = jobAdId, ApplicantId = applicantId.Value
                });

                Prompts.AddApplication();
            }
            catch (UserException ex)
            {
                EventSource.Raise(Event.Error, method, "Cannot create an external application for job ad '" + jobAdId + "'.", ex, new JobAdsErrorHandler());
                ModelState.AddModelError(ex, new JobAdsErrorHandler());
            }

            return(Json(new JsonResponseModel()));
        }