public async Task <IReadOnlyCollection <FundingCapCourseSummary> > FundingCourseSummary(IEnumerable <ApprenticeshipBase> apprenticeships) { decimal MaximumCappedCost(decimal?cost, int cap) { if (cost.HasValue) { return(cost.Value > cap ? cap : cost.Value); } return(0); } var fundingBandCapForApprentice = await Task.WhenAll(apprenticeships.Select(async x => new { x.Id, x.CourseCode, x.CourseName, x.Cost, Cap = (await _trainingProgrammeLookup.GetTrainingProgramme(x.CourseCode)).FundingCapOn(x.StartDate ?? throw new InvalidOperationException("Start Date cannot be null")) }));
public async Task <GetTrainingProgrammeQueryResult> Handle(GetTrainingProgrammeQuery request, CancellationToken cancellationToken) { try { var result = await _service.GetTrainingProgramme(request.Id); if (result == null) { return(new GetTrainingProgrammeQueryResult { TrainingProgramme = null }); } return(new GetTrainingProgrammeQueryResult { TrainingProgramme = new TrainingProgramme { Name = result.Name, CourseCode = result.CourseCode, EffectiveFrom = result.EffectiveFrom, EffectiveTo = result.EffectiveTo, ProgrammeType = result.ProgrammeType, FundingPeriods = result.FundingPeriods.Select(x => new TrainingProgrammeFundingPeriod { EffectiveFrom = x.EffectiveFrom, EffectiveTo = x.EffectiveTo, FundingCap = x.FundingCap }).ToList() } }); } catch (Exception e) { _logger.LogInformation(e, $"Course not found : {request.Id}"); } return(new GetTrainingProgrammeQueryResult { TrainingProgramme = null }); }
private Task <TrainingProgramme> GetCourse(string courseCode) { return(_trainingProgrammeLookup.GetTrainingProgramme(courseCode)); }