コード例 #1
0
        public async Task Arrange()
        {
            DeleteBatchCertificateRequest request = Builder <DeleteBatchCertificateRequest> .CreateNew()
                                                    .With(i => i.Uln                  = 1234567890)
                                                    .With(i => i.StandardCode         = 1)
                                                    .With(i => i.StandardReference    = null)
                                                    .With(i => i.UkPrn                = 12345678)
                                                    .With(i => i.FamilyName           = "Test")
                                                    .With(i => i.CertificateReference = "INVALID")
                                                    .Build();

            _validationResult = await Validator.ValidateAsync(request);
        }
コード例 #2
0
        public async Task <IActionResult> DeleteCertificate(long uln, string familyName, [SwaggerParameter("Standard Code or Standard Reference Number")] string standard, string certificateReference)
        {
            var deleteRequest = new DeleteBatchCertificateRequest {
                UkPrn = _headerInfo.Ukprn, Uln = uln, FamilyName = familyName, Standard = standard, CertificateReference = certificateReference
            };
            var error = await _apiClient.DeleteCertificate(deleteRequest);

            if (error is null)
            {
                return(NoContent());
            }
            else
            {
                return(StatusCode(error.StatusCode, error));
            }
        }
コード例 #3
0
        public override async Task <ApiResponse> DeleteCertificate(DeleteBatchCertificateRequest request)
        {
            if (request != null)
            {
                _logger.LogInformation($"DeleteCertificate called with request: {JsonConvert.SerializeObject(request)}");
                var details = await GetLearnerDetail(request.Standard, request.Uln);

                if (details != null)
                {
                    request.Standard = details.Standard?.ReferenceNumber ?? details.Standard?.StandardId.ToString();
                    request.UkPrn    = details.UkPrn;
                }
            }

            var response = await base.DeleteCertificate(request);

            _logger.LogInformation($"DeleteCertificate returned with response: {JsonConvert.SerializeObject(response)}");
            return(response);
        }
コード例 #4
0
        public async Task <IActionResult> Delete(long uln, string lastname, string standard, string certificateReference, int ukPrn)
        {
            var request = new DeleteBatchCertificateRequest
            {
                Uln                  = uln,
                FamilyName           = lastname,
                CertificateReference = certificateReference,
                UkPrn                = ukPrn
            };

            var standardVersion = await _mediator.Send(new GetStandardVersionRequest { StandardId = standard });

            if (standardVersion != null)
            {
                request.StandardCode      = standardVersion.LarsCode;
                request.StandardReference = standardVersion.IfateReferenceNumber;
            }

            var validationResult = await _deleteValidator.ValidateAsync(request);

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

            if (!validationErrors.Any() && isRequestValid)
            {
                try
                {
                    await _mediator.Send(request);

                    return(NoContent());
                }
                catch (NotFoundException)
                {
                    return(NotFound());
                }
            }
            else
            {
                ApiResponse response = new ApiResponse((int)HttpStatusCode.Forbidden, string.Join("; ", validationErrors));
                return(StatusCode(response.StatusCode, response));
            }
        }
コード例 #5
0
        public async Task <IActionResult> Delete(long uln, string lastname, string standard, string certificateReference, int ukPrn)
        {
            var request = new DeleteBatchCertificateRequest
            {
                Uln                  = uln,
                FamilyName           = lastname,
                CertificateReference = certificateReference,
                UkPrn                = ukPrn
            };

            var collatedStandard = int.TryParse(standard, out int standardCode) ? await GetCollatedStandard(standardCode) : await GetCollatedStandard(standard);

            if (collatedStandard != null)
            {
                request.StandardCode      = collatedStandard.StandardId ?? int.MinValue;
                request.StandardReference = collatedStandard.ReferenceNumber;
            }

            var validationResult = await _deleteValidator.ValidateAsync(request);

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

            if (!validationErrors.Any() && isRequestValid)
            {
                try
                {
                    await _mediator.Send(request);

                    return(NoContent());
                }
                catch (NotFound)
                {
                    return(NotFound());
                }
            }
            else
            {
                ApiResponse response = new ApiResponse((int)HttpStatusCode.Forbidden, string.Join("; ", validationErrors));
                return(StatusCode(response.StatusCode, response));
            }
        }
コード例 #6
0
        public virtual async Task <ApiResponse> DeleteCertificate(DeleteBatchCertificateRequest request)
        {
            var apiResponse = await Delete <ApiResponse>($"/api/v1/certificates/batch/{request.Uln}/{request.FamilyName}/{request.Standard}/{request.CertificateReference}/{request.UkPrn}");

            return(apiResponse);
        }