private async Task ValidateOverlaps(DraftApprenticeshipDetails details, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(details.Uln) || !details.StartDate.HasValue || !details.EndDate.HasValue) { return; } var overlapResult = await _overlapCheckService.CheckForOverlaps(details.Uln, details.StartDate.Value.To(details.EndDate.Value), default, cancellationToken);
private IEnumerable <DomainError> BuildOverlapValidationFailures(EditApprenticeshipValidationRequest request, Apprenticeship apprenticeship) { if (request.StartDate.HasValue && request.EndDate.HasValue) { var errorMessage = "The date overlaps with existing training dates for the same apprentice. Please check the date - contact your training provider for help"; var overlapResult = _overlapCheckService.CheckForOverlaps(apprenticeship.Uln, request.StartDate.Value.To(request.EndDate.Value), apprenticeship.Id, CancellationToken.None).Result; if (overlapResult.HasOverlappingStartDate) { yield return(new DomainError(nameof(request.StartDate), errorMessage)); } if (overlapResult.HasOverlappingEndDate) { yield return(new DomainError(nameof(request.EndDate), errorMessage)); } } }