public void ConfigureBody(HttpRequestConfiguration httpRequestConfiguration)
        {
            ConfigureSerializer(httpRequestConfiguration);

            switch (_gpConnectInteraction)
            {
            case GpConnectInteraction.GpcGetCareRecord:
                ConfigureGpcGetCareRecordBody(httpRequestConfiguration);
                break;

            case GpConnectInteraction.GpcGetStructuredRecord:
                ConfigureGpcGetStructuredRecordBody(httpRequestConfiguration);
                break;

            case GpConnectInteraction.RegisterPatient:
                ConfigureRegisterPatientBody(httpRequestConfiguration);
                break;

            case GpConnectInteraction.AppointmentCreate:
                ConfigureAppointmentCreateBody(httpRequestConfiguration);
                break;

            case GpConnectInteraction.AppointmentAmend:
                ConfigureAppointmentAmendBody(httpRequestConfiguration);
                break;

            case GpConnectInteraction.AppointmentCancel:
                ConfigureAppointmentCancelBody(httpRequestConfiguration);
                break;
            }
        }
 private void ConfigureAppointmentCancelBody(HttpRequestConfiguration httpRequestConfiguration)
 {
     if (_fhirResourceRepository.Appointment != null)
     {
         httpRequestConfiguration.RequestBody = _serializer(_fhirResourceRepository.Appointment);
     }
 }
 public HttpRequestConfigurationFactory(GpConnectInteraction gpConnectInteraction, HttpRequestConfiguration httpRequestConfiguration)
 {
     _gpConnectInteraction     = gpConnectInteraction;
     _httpRequestConfiguration = httpRequestConfiguration;
     _httpRequestConfiguration.LoadAppConfig();
     _httpRequestConfiguration.SetDefaultHeaders();
 }
 public MediaFireApiException(
     HttpRequestException requestException,
     HttpRequestConfiguration requestConfiguration,
     MediaFireResponseBase errorDetails)
     : base(errorDetails.Message)
 {
     RequestException = requestException;
     RequestConfiguration = requestConfiguration;
     Response = errorDetails;
 }
Beispiel #5
0
        /// <summary>
        /// Download the resposne and parse into xml document
        /// </summary>
        /// <param name="api"></param>
        /// <returns></returns>
        protected virtual XmlParserWrapper RequestXmlResponse(string api)
        {
            logger.Info($"Request web resource from API '{api}'");
            var config = new HttpRequestConfiguration();

            var httpRequest = new HttpRequestAndLoad(config);
            var responseXml = httpRequest.Load(api);

            return(new XmlParserWrapper(responseXml, "wb"));
        }
        public HttpRequestConfiguration GetHttpRequestConfiguration(GpConnectInteraction interaction, HttpRequestConfiguration httpRequestConfiguration = null)
        {
            if (httpRequestConfiguration == null)
            {
                httpRequestConfiguration = new HttpRequestConfiguration();
            }

            var httpRequestConfigurationFactory = new HttpRequestConfigurationFactory(interaction, httpRequestConfiguration);

            return(httpRequestConfigurationFactory.GetHttpRequestConfiguration());
        }
 private void ConfigureForSimpleUpload(
     HttpRequestConfiguration requestConfig,
     string folderKey = null,
     MediaFireActionOnDuplicate actionOnDuplicate = MediaFireActionOnDuplicate.Keep,
     DateTime? modificationTime = null
     )
 {
     requestConfig
         .Parameter(MediaFireApiParameters.FolderKey, folderKey)
         .Parameter(MediaFireApiParameters.ActionOnDuplicate, actionOnDuplicate.ToApiParamenter())
         .Parameter(MediaFireApiParameters.ModificationTime, modificationTime);
 }
        public HttpRequestConfiguration GetRequestBody(GpConnectInteraction interaction, HttpRequestConfiguration httpRequestConfiguration = null)
        {
            if (httpRequestConfiguration == null)
            {
                httpRequestConfiguration = new HttpRequestConfiguration();
            }

            var requestFactory = new RequestFactory(interaction, _fhirResourceRepository);

            requestFactory.ConfigureBody(httpRequestConfiguration);

            return(httpRequestConfiguration);
        }
        public Resource GetResourceForRelativeUrl(GpConnectInteraction gpConnectInteraction, string relativeUrl)
        {
            var httpRequestConfiguration = new HttpRequestConfiguration();

            var httpContextFactory = new HttpRequestConfigurationFactory(gpConnectInteraction, httpRequestConfiguration);

            httpContextFactory.GetHttpRequestConfiguration();

            var jwtHelper  = new JwtHelper();
            var jwtFactory = new JwtFactory(gpConnectInteraction);

            jwtFactory.ConfigureJwt(jwtHelper);

            if (relativeUrl.Contains("Patient"))
            {
                var patient = relativeUrl.ToLower().Replace("/", string.Empty);
                try
                {
                    jwtHelper.RequestedPatientNHSNumber = GlobalContext.PatientNhsNumberMap[patient];
                }
                catch (Exception)
                {
                    Patient patientResource = _fhirResourceRepository.Patient;
                    var     nhsNumber       = patientResource.Identifier[0].Value;
                    jwtHelper.RequestedPatientNHSNumber = nhsNumber;
                }
            }

            if (relativeUrl.Contains("Organization"))
            {
                var organizationId = relativeUrl.Split('/')[1];
                jwtHelper.RequestedOrganizationId = organizationId;
            }

            httpRequestConfiguration.RequestUrl = relativeUrl;

            _securitySteps.ConfigureServerCertificatesAndSsl();

            var requestFactory = new RequestFactory(gpConnectInteraction, _fhirResourceRepository);

            requestFactory.ConfigureBody(httpRequestConfiguration);

            httpRequestConfiguration.RequestHeaders.ReplaceHeader(HttpConst.Headers.kAuthorization, jwtHelper.GetBearerToken());

            var httpRequest = new HttpResourceRequest(httpRequestConfiguration, _securityContext);

            return(httpRequest.MakeRequest().Resource);
        }
Beispiel #10
0
        /// <summary>
        /// Download the resposne and parse into xml document
        /// </summary>
        /// <param name="api"></param>
        /// <returns></returns>
        protected virtual XmlDocument RequestXmlResponse(string api)
        {
            logger.Info($"Request web resource from API '{api}'");
            var config = new HttpRequestConfiguration();

            var httpRequest = new HttpRequestAndLoad(config);
            var responseXml = httpRequest.Load(api);

            var document = new XmlDocument();

            document.LoadXml(responseXml);
            namespaceManager = new XmlNamespaceManager(document.NameTable);
            namespaceManager.AddNamespace("wb", document.DocumentElement.NamespaceURI);

            return(document);
        }
 /// <summary>
 /// Constructor with configuration
 /// </summary>
 /// <param name="config"></param>
 public HttpRequestAndLoad(HttpRequestConfiguration config)
 => configuration = config;
        public async Task Authenticate(HttpRequestConfiguration request)
        {
            await WaitForRenewal();

            request.AddOrReplaceParameter(MediaFireApiParameters.SessionToken, CurrentSessionToken);
        }
 private async Task<string> RetrieveSessionToken(HttpRequestConfiguration httpRequest)
 {
     var response = await _requestController.Post<SessionTokenResponse>(httpRequest);
     CurrentSessionToken = response.SessionToken;
     return response.SessionToken;
 }
 public void ConfigureParameterResourceWithAdditionalField(HttpRequestConfiguration httpRequestConfiguration)
 {
     httpRequestConfiguration.RequestBody = FhirHelper.AddFieldToParameterResource(httpRequestConfiguration.RequestBody, FhirConst.Resources.kInvalidResourceType);
 }
 public void ConfigureAdditionalInvalidFieldInResource(HttpRequestConfiguration httpRequestConfiguration)
 {
     httpRequestConfiguration.RequestBody = FhirHelper.AddInvalidFieldToResourceJson(httpRequestConfiguration.RequestBody);
 }
 private static void ConfigureRegisterPatientBody(HttpRequestConfiguration httpRequestConfiguration)
 {
     httpRequestConfiguration.RequestBody = _serializer(httpRequestConfiguration.BodyParameters);
 }
 private static void ConfigureGpcGetStructuredRecordBody(HttpRequestConfiguration httpRequestConfiguration)
 {
     httpRequestConfiguration.RequestBody = _serializer(httpRequestConfiguration.BodyParameters);
 }
 private static void ConfigureSerializer(HttpRequestConfiguration httpRequestConfiguration)
 {
     _serializer = httpRequestConfiguration.RequestContentType.Contains("xml")
         ? new Serializer(FhirSerializer.SerializeToXml)
         : FhirSerializer.SerializeToJson;
 }
Beispiel #19
0
 public HttpContext()
 {
     HttpResponse             = new HttpResponse();
     HttpRequestConfiguration = new HttpRequestConfiguration();
     FhirResponse             = new FhirResponse();
 }
 public void ConfigureInvalidParameterResourceType(HttpRequestConfiguration httpRequestConfiguration)
 {
     httpRequestConfiguration.RequestBody = FhirHelper.ChangeParameterResourceTypeString(httpRequestConfiguration.RequestBody, FhirConst.Resources.kInvalidResourceType);
 }