Пример #1
0
        private async Task <ReservationValidationResult> CheckReservationIfRequired(ReservationValidationServiceRequest request)
        {
            if (request.ReservationId == null)
            {
                _logger.Info($"Commitment:{request.CommitmentId} Apprenticeship: {request.ApprenticeshipId} Reservation-id:null - no reservation validation required");
                return(NoValidationRequiredResponse);
            }

            if (request.StartDate == null)
            {
                throw new ValidationException(
                          $"Unable to validate the reservation because the start date is absent");
            }

            var validationReservationMessage = new ReservationValidationMessage
            {
                ReservationId = request.ReservationId.Value,
                CourseCode    = request.TrainingCode,
                StartDate     = request.StartDate.Value
            };

            var validationResult =
                await _reservationsApiClient.ValidateReservation(validationReservationMessage, CancellationToken.None);

            return(validationResult);
        }
Пример #2
0
 private async Task <ReservationValidationResult> CheckReservationWithLogging(ReservationValidationServiceRequest request)
 {
     try
     {
         return(await CheckReservationIfRequired(request));
     }
     catch (Exception ex)
     {
         _logger.Error(ex,
                       "Failed to check reservation",
                       request.AccountId,
                       request.ProviderId,
                       request.CommitmentId,
                       request.ApprenticeshipId);
         throw;
     }
 }
Пример #3
0
 public Task <ReservationValidationResult> CheckReservation(ReservationValidationServiceRequest request)
 {
     return(CheckReservationWithLogging(request));
 }