public async Task <GetFrameworkResponse> Handle(GetFrameworkQuery message, CancellationToken cancellationToken) { var result = _validator.Validate(message); var response = new GetFrameworkResponse(); if (!result.IsValid && result.Errors.Any(x => x.ErrorCode == ValidationCodes.InvalidId)) { response.StatusCode = GetFrameworkResponse.ResponseCodes.InvalidFrameworkId; return(response); } var framework = _getFrameworks.GetFrameworkById(message.Id); if (framework == null) { _logger.Warn($"Not possible to get framework {message.Id}"); response.StatusCode = GetFrameworkResponse.ResponseCodes.FrameworkNotFound; return(response); } if (!framework.IsActiveFramework) { _logger.Warn($"Framework {message.Id} is not active"); response.StatusCode = GetFrameworkResponse.ResponseCodes.Gone; return(response); } response.Framework = framework; response.SearchTerms = message.Keywords; return(response); }
private void EnrichFramework(ApprenticeshipFavouriteRead apprenticeship) { var framework = _getFrameworks.GetFrameworkById(apprenticeship.ApprenticeshipId); apprenticeship.Title = framework.Title; apprenticeship.Duration = framework.Duration; apprenticeship.Level = framework.Level; apprenticeship.EffectiveTo = framework.EffectiveTo; apprenticeship.ApprenticeshipType = ApprenticeshipType.Framework; apprenticeship.Active = framework.IsActiveFramework; }
public Framework Get(string id) { var response = _getFrameworks.GetFrameworkById(id); if (response == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } response.Uri = Resolve(response.FrameworkId); return(response); }
private ApprenticeshipProviderDetailResponse GetFramework(ApprenticeshipProviderDetailQuery message) { var model = _apprenticeshipProviderRepository.GetCourseByFrameworkId( message.UkPrn, message.LocationId, message.FrameworkId); var apprenticeshipProduct = _getFrameworks.GetFrameworkById(message.FrameworkId); var response = CreateResponse(model, apprenticeshipProduct, ApprenticeshipTrainingType.Framework); response.RegulatedApprenticeship = false; return(response); }
public ActionResult <Framework> Get(string id) { var response = _getFrameworks.GetFrameworkById(id); if (response == null) { return(NotFound()); } response.Uri = Resolve(response.FrameworkId); response.Providers = ResolveProvidersUrl(id); return(response); }
public ActionResult <IEnumerable <Provider> > GetFrameworkProviders(string frameworkId) { if (_getFrameworks.GetFrameworkById(frameworkId) == null) { return(NotFound($"The framework {frameworkId} is not found, it should be in the format {{framework code}}-{{program type}}-{{pathway code}}")); } var response = _getProviders.GetProvidersByFrameworkId(frameworkId); var providersList = response.GroupBy(x => x.Ukprn).Select(x => x.First()); var ukprns = providersList.Select(item => item.Ukprn).Select(dummy => (long)dummy).ToList(); return(_getProviders.GetProviderByUkprnList(ukprns).ToList()); }
public async Task <GetFrameworkProvidersResponse> Handle(GetFrameworkProvidersQuery message, CancellationToken cancellationToken) { var framework = _getFrameworks.GetFrameworkById(message.FrameworkId); if (framework == null) { return(new GetFrameworkProvidersResponse { StatusCode = GetFrameworkProvidersResponse.ResponseCodes.NoFrameworkFound }); } return(new GetFrameworkProvidersResponse { FrameworkId = framework.FrameworkId, Title = framework.Title, Keywords = message.Keywords, Postcode = message.Postcode, Level = framework.Level }); }
public async Task <ProviderSearchResults> SearchProviders(string apprenticeshipId, string postCode, Pagination pagination, IEnumerable <string> deliveryModes, bool hasNonLevyContract, bool showNationalOnly, int orderBy = 0) { if (string.IsNullOrEmpty(postCode)) { return(new ProviderSearchResults { ApprenticeshipId = apprenticeshipId, PostCodeMissing = true }); } int apprenticeshipIdInt; IApprenticeshipProduct apprenticeship; if (int.TryParse(apprenticeshipId, out apprenticeshipIdInt)) { apprenticeship = _getStandards.GetStandardById(apprenticeshipId); } else { apprenticeship = _getFrameworks.GetFrameworkById(apprenticeshipId); } if (apprenticeship == null) { return(GetProviderSearchResultErrorResponse(apprenticeshipId, null, postCode, LocationLookupResponse.ApprenticeshipNotFound)); } try { var coordinateResponse = await _postCodeLookup.GetLatLongFromPostCode(postCode); var coordinates = coordinateResponse.Coordinate; if (coordinateResponse.ResponseCode != LocationLookupResponse.Ok) { return(GetProviderSearchResultErrorResponse(apprenticeshipId, apprenticeship?.Title, postCode, coordinateResponse.ResponseCode)); } var takeElements = pagination.Take == 0 ? _paginationSettings.DefaultResultsAmount : pagination.Take; LogSearchRequest(postCode, coordinates); var filter = new ProviderSearchFilter { DeliveryModes = deliveryModes, HasNonLevyContract = hasNonLevyContract, ShowNationalOnly = showNationalOnly }; var searchResults = await _providerSearchProvider.SearchProvidersByLocation(apprenticeshipId, coordinates, pagination.Page, takeElements, filter, orderBy); var result = new ProviderSearchResults { TotalResults = searchResults.Total, ResultsToTake = takeElements, ApprenticeshipId = apprenticeshipId, Title = apprenticeship?.Title, Level = apprenticeship.Level, PostCode = postCode, TrainingOptionsAggregation = searchResults.TrainingOptionsAggregation, NationalProviders = searchResults.NationalProvidersAggregation, SelectedTrainingOptions = deliveryModes, ResponseCode = LocationLookupResponse.Ok, ShowNationalProvidersOnly = false, Hits = searchResults.Hits, LastPage = takeElements > 0 ? (int)System.Math.Ceiling((double)searchResults.Total / takeElements) : 1 }; return(result); } catch (SearchException ex) { _logger.Error(ex, "Search for provider failed."); return(GetProviderSearchResultErrorResponse(apprenticeshipId, apprenticeship?.Title, postCode, ServerLookupResponse.InternalServerError)); } }