public async Task <int> CreateQualificationRouteMappingAsync(QualificationRouteMappingViewModel viewModel) { var qualificationRouteMapping = _mapper.Map <QualificationRouteMappingViewModel, QualificationRouteMapping>(viewModel); var qualificationRouteMappingId = await _repository.CreateAsync(qualificationRouteMapping); return(qualificationRouteMappingId); }
private async Task <string> CreateOrUpdateQualificationRouteMappingAsync(ProviderVenueQualificationDto providerVenueQualification, int qualificationId) { var invalidRouteNames = new List <string>(); foreach (var routeName in providerVenueQualification.Routes) { var route = await _routePathService.GetRouteSummaryByNameAsync(routeName); if (route == null) { invalidRouteNames.Add($"{routeName}"); continue; } var routeMapping = await _qualificationRouteMappingService.GetQualificationRouteMappingAsync(route.Id, qualificationId); if (routeMapping == null) { var qualificationRouteMappingViewModel = new QualificationRouteMappingViewModel { RouteId = route.Id, QualificationId = qualificationId, Source = Source }; await _qualificationRouteMappingService.CreateQualificationRouteMappingAsync( qualificationRouteMappingViewModel); } } if (invalidRouteNames.Any()) { var sb = new StringBuilder($"Data Error: Route{(invalidRouteNames.Count > 1 ? "s" : "")} "); for (var i = 0; i < invalidRouteNames.Count; i++) { sb.Append($"{(i > 0 ? ", " : "")}'{invalidRouteNames[i]}'"); } sb.Append($" not found in existing Routes. UkPrn: {providerVenueQualification.UkPrn}, postcode: {providerVenueQualification.VenuePostcode}, LAR Id: {providerVenueQualification.LarId}"); return(sb.ToString()); } return(null); }