private void DeleteTraineeshipApplications(IList <TraineeshipApplicationSummary> traineeshipApplications)
        {
            if (traineeshipApplications != null)
            {
                foreach (var traineeshipApplicationSummary in traineeshipApplications)
                {
                    _logService.Info("Hard deleting Traineeship Application: {0}", traineeshipApplicationSummary.ApplicationId);

                    _traineeshipApplicationWriteRepository.Delete(traineeshipApplicationSummary.ApplicationId);

                    _logService.Info("Hard deleted Traineeship Application: {0}", traineeshipApplicationSummary.ApplicationId);
                }
            }
        }
        private void PublishMessage(TraineeshipApplicationDetail traineeshipApplicationDetail)
        {
            try
            {
                var message = new SubmitTraineeshipApplicationRequest
                {
                    ApplicationId = traineeshipApplicationDetail.EntityId
                };

                _messageBus.PublishMessage(message);
            }
            catch
            {
                // Compensate for failure to enqueue application submission by deleting the application.
                _traineeshipApplicationWriteRepository.Delete(traineeshipApplicationDetail.EntityId);
                throw;
            }
        }
        public void Delete(VacancyType vacancyType, Guid applicationId)
        {
            _logService.Info("Deleting application: type={0}, id={1}", vacancyType, applicationId);

            switch (vacancyType)
            {
            case VacancyType.Apprenticeship:
                _apprenticeshipApplicationWriteRepository.Delete(applicationId);
                break;

            case VacancyType.Traineeship:
                _traineeshipApplicationWriteRepository.Delete(applicationId);
                break;

            default:
                throw new InvalidOperationException(string.Format("Unknown vacancy type: {0}.", vacancyType));
            }

            _logService.Info("Deleted application: type={0}, id={1}", vacancyType, applicationId);
        }