public async Task <IActionResult> Get(long uln, string lastname, string standard, int ukPrn)
        {
            var request = new GetBatchLearnerRequest
            {
                Uln                = uln,
                FamilyName         = lastname,
                Standard           = standard,
                IncludeCertificate = true,
                UkPrn              = ukPrn
            };

            var validationResult = await _getValidator.ValidateAsync(request);

            var isRequestValid   = validationResult.IsValid;
            var validationErrors = validationResult.Errors.Select(error => error.ErrorMessage).ToList();

            var getResponse = new GetBatchLearnerResponse
            {
                ValidationErrors = validationErrors
            };

            if (!validationErrors.Any() && isRequestValid)
            {
                var result = await _mediator.Send(request);

                getResponse.Learner     = result.Learner;
                getResponse.Certificate = result.Certificate;
                getResponse.EpaDetails  = result.EpaDetails;
            }

            return(Ok(getResponse));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetLearner(long uln, string familyName, [SwaggerParameter("Standard Code or Standard Reference Number")] string standard)
        {
            var getRequest = new GetBatchLearnerRequest {
                UkPrn = _headerInfo.Ukprn, Uln = uln, FamilyName = familyName, Standard = standard
            };
            var response = await _apiClient.GetLearner(getRequest);

            if (response.ValidationErrors.Any())
            {
                ApiResponse error = new ApiResponse((int)HttpStatusCode.Forbidden, string.Join("; ", response.ValidationErrors));
                return(StatusCode(error.StatusCode, error));
            }
            else if (response.Learner is null)
            {
                return(NotFound());
            }
            else if (response.Learner.Certificate is null)
            {
                return(Ok(response.Learner));
            }
            else
            {
                if (CertificateHelpers.IsDraftCertificateDeemedAsReady(response.Learner.Certificate))
                {
                    response.Learner.Certificate.Status.CurrentStatus = CertificateStatus.Ready;
                }
                else if (response.Learner.Certificate.Status.CurrentStatus == CertificateStatus.Printed || response.Learner.Certificate.Status.CurrentStatus == CertificateStatus.Reprint)
                {
                    response.Learner.Certificate.Status.CurrentStatus = CertificateStatus.Submitted;
                }

                return(Ok(response.Learner));
            }
        }
        public async Task <IActionResult> GetLearnerDetails(string standard, long uln)
        {
            var request = new GetBatchLearnerRequest
            {
                Uln                = uln,
                Standard           = standard,
                IncludeCertificate = false,
            };

            var learnerDetails = await _mediator.Send(request);

            return(Ok(learnerDetails.Learner));
        }
Exemplo n.º 4
0
        public void Arrange()
        {
            var fixture = new Fixture();

            _request = fixture.Create <GetBatchLearnerRequest>();

            _response = fixture.Build <GetLearnerResponse>()
                        .With(r => r.ValidationErrors, new List <string>()).Create();

            _mockApiClient = new Mock <IApiClient>();
            _mockApiClient.Setup(c => c.GetLearner(It.IsAny <GetBatchLearnerRequest>())).ReturnsAsync(_response);

            _learnerController = new LearnerController(Mock.Of <ILogger <LearnerController> >(), Mock.Of <IHeaderInfo>(), _mockApiClient.Object);
        }
Exemplo n.º 5
0
        public void Arrange()
        {
            _request = Builder <GetBatchLearnerRequest> .CreateNew()
                       .With(r => r.IncludeCertificate = true).Build();

            _certificateData = Builder <CertificateData> .CreateNew().Build();

            _learnerResponse = Builder <Domain.Entities.Learner> .CreateNew().Build();

            _epaoResponse = Builder <Organisation> .CreateNew().Build();

            _certificateResponse = Builder <Certificate> .CreateNew()
                                   .With(cr => cr.CertificateData = JsonConvert.SerializeObject(_certificateData))
                                   .Build();

            _standardResponse = Builder <Standard> .CreateNew().Build();

            _mockMediator              = new Mock <IMediator>();
            _mockLearnerRepository     = new Mock <ILearnerRepository>();
            _mockOrgQueryRepository    = new Mock <IOrganisationQueryRepository>();
            _mockStandardService       = new Mock <IStandardService>();
            _mockCertificateRepoistory = new Mock <ICertificateRepository>();

            _mockStandardService.Setup(ss => ss.GetStandardVersionById(_request.Standard, null))
            .ReturnsAsync(_standardResponse);

            _mockLearnerRepository.Setup(learner => learner.Get(_request.Uln, It.IsAny <int>()))
            .ReturnsAsync(_learnerResponse);

            _mockOrgQueryRepository.Setup(org => org.GetByUkPrn(It.IsAny <long>()))
            .ReturnsAsync(_epaoResponse);

            _mockMediator.Setup(m => m.Send(It.IsAny <GetBatchCertificateRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(_certificateResponse);

            _mockCertificateRepoistory.Setup(cr => cr.GetCertificate(_request.Uln, It.IsAny <int>(), _request.FamilyName))
            .ReturnsAsync(_certificateResponse);

            _handler = new GetBatchLearnerHandler(_mockMediator.Object,
                                                  Mock.Of <ILogger <GetBatchLearnerHandler> >(),
                                                  _mockLearnerRepository.Object,
                                                  _mockOrgQueryRepository.Object,
                                                  _mockStandardService.Object,
                                                  _mockCertificateRepoistory.Object);
        }
Exemplo n.º 6
0
        public virtual async Task <GetLearnerResponse> GetLearner(GetBatchLearnerRequest request)
        {
            var apiResponse = await Get <AssessorService.Api.Types.Models.ExternalApi.Learners.GetBatchLearnerResponse>($"/api/v1/learners/batch/{request.Uln}/{request.FamilyName}/{request.Standard}/{request.UkPrn}");

            return(Mapper.Map <AssessorService.Api.Types.Models.ExternalApi.Learners.GetBatchLearnerResponse, GetLearnerResponse>(apiResponse));
        }