Пример #1
0
        public async Task When_UpdatingCertificateRecord_CallsInternalApi_Then_ReturnCertificateWithResponseCode200(
            UpdateCertificateRequest request,
            IEnumerable <UpdateCertificateResponse> response)
        {
            //Arrange
            UpdateBatchCertificateRequest transformedRequest = null;
            var requests = new List <UpdateCertificateRequest> {
                request
            };

            _mockApiClient.Setup(s => s.UpdateCertificates(It.IsAny <IEnumerable <UpdateBatchCertificateRequest> >()))
            .Callback <IEnumerable <UpdateBatchCertificateRequest> >((input) => transformedRequest = input.First())
            .ReturnsAsync(response);

            //Act
            var result = await _controller.UpdateCertificates(requests) as ObjectResult;

            //Assert
            result.StatusCode.Value.Should().Be((int)HttpStatusCode.OK);
            transformedRequest.Should().NotBeNull();
            transformedRequest.Should().BeEquivalentTo(new
            {
                UkPrn = _headerInfo.Object.Ukprn,
                request.RequestId,
                CertificateData = new
                {
                    request.Standard,
                    request.Learner,
                    request.LearningDetails,
                    request.PostalContact
                }
            });

            result.Value.Should().Be(response);
        }
Пример #2
0
 public async Task <Certificate> UpdateCertificate(UpdateCertificateRequest certificateRequest)
 {
     using (var httpRequest = new HttpRequestMessage(HttpMethod.Put, "api/v1/certificates/update"))
     {
         return(await PostPutRequestWithResponse <UpdateCertificateRequest, Certificate>(httpRequest, certificateRequest));
     }
 }
Пример #3
0
        /// <summary>
        /// Updates a certificate with the given identifier
        /// </summary>
        /// <param name="request">The request object containing the details to send. Required.</param>
        /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param>
        /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param>
        /// <returns>A response object containing details about the completed operation</returns>
        /// <example>Click <a href="https://docs.cloud.oracle.com/en-us/iaas/tools/dot-net-examples/latest/apigateway/UpdateCertificate.cs.html">here</a> to see an example of how to use UpdateCertificate API.</example>
        public async Task <UpdateCertificateResponse> UpdateCertificate(UpdateCertificateRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default)
        {
            logger.Trace("Called updateCertificate");
            Uri                uri            = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/certificates/{certificateId}".Trim('/')));
            HttpMethod         method         = new HttpMethod("PUT");
            HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request);

            requestMessage.Headers.Add("Accept", "application/json");
            GenericRetrier      retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration);
            HttpResponseMessage responseMessage;

            try
            {
                if (retryingClient != null)
                {
                    responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken).ConfigureAwait(false);
                }
                else
                {
                    responseMessage = await this.restClient.HttpSend(requestMessage).ConfigureAwait(false);
                }
                this.restClient.CheckHttpResponseMessage(requestMessage, responseMessage);

                return(Converter.FromHttpResponseMessage <UpdateCertificateResponse>(responseMessage));
            }
            catch (Exception e)
            {
                logger.Error($"UpdateCertificate failed with error: {e.Message}");
                throw;
            }
        }
Пример #4
0
        /// <summary>
        /// 更新证书
        /// </summary>
        public UpdateCertificateResponse UpdateCertificate(UpdateCertificateRequest updateCertificateRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();

            urlParam.Add("certificate_id", updateCertificateRequest.CertificateId.ToString());
            string              urlPath  = HttpUtils.AddUrlPath("/v3/{project_id}/elb/certificates/{certificate_id}", urlParam);
            SdkRequest          request  = HttpUtils.InitSdkRequest(urlPath, "application/json;charset=UTF-8", updateCertificateRequest);
            HttpResponseMessage response = DoHttpRequestSync("PUT", request);

            return(JsonUtils.DeSerialize <UpdateCertificateResponse>(response));
        }
        public async Task UpdateCertificatesExample()
        {
            // NOTE: You will need to know what the certificate currently looks like
            Certificate currentCertificate = new Certificate
            {
                Status = new Status {
                    CurrentStatus = "Draft"
                },
                Created = new Created {
                    CreatedAt = DateTime.UtcNow, CreatedBy = "Example"
                },
                CertificateData = new CertificateData
                {
                    CertificateReference = "00012001",
                    Learner = new Learner {
                        Uln = 1234567890, GivenNames = "Fred", FamilyName = "Bloggs"
                    },
                    Standard = new Standard {
                        StandardCode = 1, StandardReference = "ST0127", Level = 1, StandardName = "Example Standard",
                    },
                    LearningDetails = new LearningDetails
                    {
                        LearningStartDate = DateTime.UtcNow.AddYears(-1),
                        ProviderName      = "Test Provider",
                        ProviderUkPrn     = 123456,
                        OverallGrade      = "Pass",
                        AchievementDate   = DateTime.UtcNow
                    },
                    PostalContact = new PostalContact {
                        ContactName = "Shreya Smith", Organisation = "Contoso Ltd", AddressLine1 = "123 Test Road", City = "Townsville", PostCode = "ZY99ZZ"
                    }
                }
            };

            // Let's pretend the apprentice got a better grade
            UpdateCertificateRequest updatedCertificate = new UpdateCertificateRequest
            {
                CertificateReference = currentCertificate.CertificateData.CertificateReference,
                Learner         = currentCertificate.CertificateData.Learner,
                Standard        = currentCertificate.CertificateData.Standard,
                LearningDetails = currentCertificate.CertificateData.LearningDetails,
                PostalContact   = currentCertificate.CertificateData.PostalContact,
            };

            updatedCertificate.LearningDetails.OverallGrade = "Merit";

            if (updatedCertificate.IsValid(out _))
            {
                // NOTE: The External API performs validation, however it is a good idea to check beforehand
                await _CertificateApiClient.UpdateCertificates(new List <UpdateCertificateRequest> {
                    updatedCertificate
                });
            }
        }
Пример #6
0
        public async Task UpdateCertificate()
        {
            // arrange
            var certificateData = Builder <CertificateData> .CreateNew().With(cd => cd.CertificateReference = "DRAFT CERTIFICATE")
                                  .With(cd => cd.Standard        = Builder <Standard> .CreateNew().Build())
                                  .With(cd => cd.Learner         = Builder <Learner> .CreateNew().Build())
                                  .With(cd => cd.LearningDetails = Builder <LearningDetails> .CreateNew().Build())
                                  .With(cd => cd.PostalContact   = Builder <PostalContact> .CreateNew().Build())
                                  .Build();

            var status = new Status {
                CurrentStatus = "Draft"
            };
            var created = new Created {
                CreatedAt = DateTime.UtcNow.AddHours(-1), CreatedBy = "Test"
            };

            var certificate = new Certificate {
                CertificateData = certificateData, Status = status, Created = created
            };
            var certificateRequest = new UpdateCertificateRequest
            {
                CertificateReference = certificate.CertificateData.CertificateReference,
                Learner         = certificate.CertificateData.Learner,
                Standard        = certificate.CertificateData.Standard,
                LearningDetails = certificate.CertificateData.LearningDetails,
                PostalContact   = certificate.CertificateData.PostalContact
            };

            var expectedResponse = new List <UpdateCertificateResponse>
            {
                new UpdateCertificateResponse {
                    Certificate = certificate
                }
            };

            _MockHttp.When(HttpMethod.Put, $"{apiBaseAddress}/api/v1/certificate")
            .Respond(HttpStatusCode.OK, "application/json", JsonConvert.SerializeObject(expectedResponse));

            // act
            var actual = await _ApiClient.UpdateCertificates(new List <UpdateCertificateRequest> {
                certificateRequest
            });

            // assert
            Assert.That(actual, Has.Count.EqualTo(1));
            Assert.That(actual.First().ValidationErrors, Has.Count.EqualTo(0));
            Assert.That(actual.First().Certificate, Is.EqualTo(expectedResponse.First().Certificate));
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            UpdateCertificateRequest request;

            try
            {
                request = new UpdateCertificateRequest
                {
                    CertificateId            = CertificateId,
                    OpcRequestId             = OpcRequestId,
                    IfMatch                  = IfMatch,
                    UpdateCertificateDetails = UpdateCertificateDetails
                };

                response = client.UpdateCertificate(request).GetAwaiter().GetResult();
                WriteOutput(response, response.Certificate);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
Пример #8
0
 public async Task <IActionResult> Update([FromBody] UpdateCertificateRequest certificate)
 {
     return(Ok(await _mediator.Send(certificate)));
 }
 public async Task <Certificate> UpdateCertificate(UpdateCertificateRequest certificateRequest)
 {
     return(await Put <UpdateCertificateRequest, Certificate>("api/v1/certificates/update", certificateRequest));
 }