public async Task <int> CreateTqProvidersAsync(TqProviderDetails tqProviderDetails)
        {
            tqProviderDetails.Id = 0;
            var tqProvider = _mapper.Map <TqProvider>(tqProviderDetails);

            return(await _tqProviderRepository.Create(tqProvider));
        }
 public async Task <bool> CheckIfTqProviderAlreadyExistsAsync(TqProviderDetails tqProviderDetails)
 {
     return(await _tqProviderRepository.GetMany(o => o.AwardingOrganisationId == tqProviderDetails.AwardingOrganisationId &&
                                                o.ProviderId == tqProviderDetails.ProviderId &&
                                                o.RouteId == tqProviderDetails.RouteId &&
                                                o.PathwayId == tqProviderDetails.PathwayId &&
                                                o.SpecialismId == tqProviderDetails.SpecialismId).AnyAsync());
 }
Ejemplo n.º 3
0
        //[ValidateModel]
        public async Task <IActionResult> RegisterTechnicalQualificationProvider(RegisterTqProvider registerProvider)
        {
            var ao = await _tqAwardingOrganisationService.GetTqAwardingOrganisationDetailsByCodeAsync(registerProvider.UkAoCode);

            //if(ao == null) return BadRequest(new BadRequestResponse($"AoCode '{registerProvider.UkAoCode}' does not exist."));
            if (!ao.Success)
            {
                return(NotFound(new ApiResponse((int)HttpStatusCode.NotFound, ao.Message)));
            }

            var provider = await _providerService.GetProviderDetailsByCodeAsync(registerProvider.UkProviderCode);

            if (provider == null)
            {
                return(BadRequest(new BadRequestResponse($"Provider Code '{registerProvider.UkProviderCode}' does not exist.")));
            }

            var tqRoute = await _tqRouteService.GetTqRouteDetailsByCodeAsync(registerProvider.TqRouteCode);

            if (tqRoute == null)
            {
                return(BadRequest(new BadRequestResponse($"Tq Route Code '{registerProvider.TqRouteCode}' does not exist.")));
            }

            var tqPathway = await _tqPathwayService.GetTqPathwayDetailsByCodeAsync(registerProvider.TqPathwayCode);

            if (tqPathway == null)
            {
                return(BadRequest(new BadRequestResponse($"Tq Pathway Code '{registerProvider.TqRouteCode}' does not exist.")));
            }

            var tqSpecialism = await _tqSpecialismService.GetTqSpecialismDetailsByCodeAsync(registerProvider.TqSpecialismCode);

            if (tqSpecialism == null)
            {
                return(BadRequest(new BadRequestResponse($"Tq Specialism Code '{registerProvider.TqRouteCode}' does not exist.")));
            }

            var tqProvider = new TqProviderDetails
            {
                AwardingOrganisationId = ao.Value.Id,
                ProviderId             = provider.Id,
                RouteId      = tqRoute.Id,
                PathwayId    = tqPathway.Id,
                SpecialismId = tqSpecialism.Id
            };

            if (await _tqProviderService.CheckIfTqProviderAlreadyExistsAsync(tqProvider))
            {
                return(BadRequest(new BadRequestResponse("A record was not created because a duplicate of the current record already exists.")));
            }
            var tqProviderId = await _tqProviderService.CreateTqProvidersAsync(tqProvider);

            //return tqProvider != 0 ? Ok() : (ActionResult)BadRequest();
            return(CreatedAtAction(nameof(GetRegisteredTqProviderInformation), new { tqProviderId }, registerProvider));
        }