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); }
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; } }
public Task <ReservationValidationResult> CheckReservation(ReservationValidationServiceRequest request) { return(CheckReservationWithLogging(request)); }