public void SetStateInProgress(Guid applicationId) { var application = _traineeshipApplicationReadRepository.Get(applicationId); application.SetStateInProgress(); _traineeshipApplicationWriteRepository.Save(application); _serviceBus.PublishMessage(new TraineeshipApplicationUpdate(applicationId, ApplicationUpdateType.Update)); }
public void CreateApplication(SubmitTraineeshipApplicationRequest request) { _logger.Debug("Creating traineeship application Id: {0}", request.ApplicationId); var applicationDetail = _apprenticeshipApplicationReadRepository.Get(request.ApplicationId, true); try { var candidate = _candidateReadRepository.Get(applicationDetail.CandidateId, true); if (candidate.LegacyCandidateId == 0) { _logger.Info( "Candidate with Id: {0} has not been created in the legacy system. Message will be requeued", applicationDetail.CandidateId); Requeue(request); } else { applicationDetail.LegacyApplicationId = _legacyApplicationProvider.CreateApplication(applicationDetail); _traineeeshipApplicationWriteRepository.Save(applicationDetail); } } catch (CustomException ex) { HandleCustomException(request, ex); } catch (Exception ex) { _logger.Error(string.Format("Submit traineeship application with Id = {0} request async process failed.", request.ApplicationId), ex); Requeue(request); } }
private bool ProcessTraineeshipApplication(ApplicationStatusSummary applicationStatusSummary) { var traineeshipApplicationDetail = _traineeshipApplicationReadRepository.Get(applicationStatusSummary.LegacyApplicationId); if (traineeshipApplicationDetail == null && applicationStatusSummary.LegacyCandidateId != 0) { // in some cases the application can't be found using the application IDs so use legacy candidate and vacancy IDs var candidate = _candidateReadRepository.Get(applicationStatusSummary.LegacyCandidateId, false); if (candidate == null) { return(false); } traineeshipApplicationDetail = _traineeshipApplicationReadRepository.GetForCandidate(candidate.EntityId, applicationStatusSummary.LegacyVacancyId); } if (traineeshipApplicationDetail == null) { return(false); } _applicationStatusUpdateStrategy.Update(traineeshipApplicationDetail, applicationStatusSummary); return(true); }
public void Handle(ApplicationHousekeepingRequest request) { ApplicationDetail application; switch (request.VacancyType) { case VacancyType.Apprenticeship: { application = _apprenticeshipApplicationReadRepository.Get(request.ApplicationId, false); if (application == null) { _logService.Debug("Apprenticeship application no longer exists, no housekeeping to do for id={0}", request.ApplicationId); return; } break; } case VacancyType.Traineeship: { application = _traineeshipApplicationReadRepository.Get(request.ApplicationId, false); if (application == null) { _logService.Debug("Traineeship application no longer exists, no housekeeping to do for id={0}", request.ApplicationId); return; } break; } default: throw new InvalidOperationException(string.Format("Unknown vacancy type: {0}.", request.VacancyType)); } if (application.DateApplied.HasValue && application.DateApplied <= GetHousekeepingDate()) { _logService.Info("Deleting submitted application: type={0}, id={1}, date applied={2}", request.VacancyType, request.ApplicationId, application.DateApplied); _hardDeleteApplicationStrategy.Delete( request.VacancyType, request.ApplicationId); _logService.Info("Deleted submitted application: type={0}, id={1}, date applied={2}", request.VacancyType, request.ApplicationId, application.DateApplied); return; } Successor.Handle(request); }
public void SubmitApplication(Guid applicationId) { var traineeshipApplicationDetail = _traineeshipApplicationReadRepository.Get(applicationId, true); try { PublishMessage(traineeshipApplicationDetail); NotifyCandidate(traineeshipApplicationDetail); } catch (Exception ex) { _logger.Debug("SubmitTraineeshipApplicationRequest could not be queued for ApplicationId={0}", applicationId); throw new CustomException("SubmitTraineeshipApplicationRequest could not be queued", ex, MessagingErrorCodes.ApplicationQueuingError); } }
public void SubmitApplication(Guid applicationId) { var traineeshipApplicationDetail = _traineeshipApplicationReadRepository.Get(applicationId, true); try { traineeshipApplicationDetail.SetStateSubmitting(); traineeshipApplicationDetail.SetStateSubmitted(); _traineeshipApplicationWriteRepository.Save(traineeshipApplicationDetail); _serviceBus.PublishMessage(new TraineeshipApplicationUpdate(traineeshipApplicationDetail.EntityId, ApplicationUpdateType.Create)); NotifyCandidate(traineeshipApplicationDetail); } catch (Exception ex) { _logger.Debug("SubmitTraineeshipApplicationRequest could not be queued for ApplicationId={0}", applicationId); throw new CustomException("SubmitTraineeshipApplicationRequest could not be queued", ex, MessagingErrorCodes.ApplicationQueuingError); } }
public void Run() { _traineeshipApplicationReadRepository.Get(Guid.NewGuid()); }
public TraineeshipApplicationDetail GetApplication(Guid applicationId) { return(_traineeshipApplicationReadRepository.Get(applicationId)); }
private TraineeshipApplicationDetail GetApplication(IEnumerable <CommunicationToken> tokens) { var applicationId = Guid.Parse(tokens.First(m => m.Key == CommunicationTokens.ApplicationId).Value); return(_traineeshipApplicationReadRepository.Get(applicationId, true)); }
public TraineeshipApplicationDetail GetApplicationForReview(Guid applicationId) { var application = _traineeshipApplicationReadRepository.Get(applicationId); return(application); }