public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            ISqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            SortRewriter sortRewriter,
            PartitionEliminationRewriter partitionEliminationRewriter,
            SqlConnectionWrapperFactory sqlConnectionWrapperFactory,
            SchemaInformation schemaInformation,
            RequestContextAccessor <IFhirRequestContext> requestContextAccessor,
            ICompressedRawResourceConverter compressedRawResourceConverter,
            ILogger <SqlServerSearchService> logger)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory));
            EnsureArg.IsNotNull(schemaInformation, nameof(schemaInformation));
            EnsureArg.IsNotNull(partitionEliminationRewriter, nameof(partitionEliminationRewriter));
            EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _model = model;
            _sqlRootExpressionRewriter = sqlRootExpressionRewriter;
            _sortRewriter = sortRewriter;
            _partitionEliminationRewriter = partitionEliminationRewriter;
            _chainFlatteningRewriter      = chainFlatteningRewriter;
            _sqlConnectionWrapperFactory  = sqlConnectionWrapperFactory;
            _logger = logger;

            _schemaInformation              = schemaInformation;
            _requestContextAccessor         = requestContextAccessor;
            _compressedRawResourceConverter = compressedRawResourceConverter;
        }
        public TaskFactory(
            IImportResourceLoader importResourceLoader,
            IResourceBulkImporter resourceBulkImporter,
            IImportErrorStoreFactory importErrorStoreFactory,
            IImportOrchestratorTaskDataStoreOperation importOrchestratorTaskDataStoreOperation,
            IContextUpdaterFactory contextUpdaterFactory,
            ITaskManager taskmanager,
            ISequenceIdGenerator <long> sequenceIdGenerator,
            IIntegrationDataStoreClient integrationDataStoreClient,
            RequestContextAccessor <IFhirRequestContext> contextAccessor,
            ILoggerFactory loggerFactory)
        {
            EnsureArg.IsNotNull(importResourceLoader, nameof(importResourceLoader));
            EnsureArg.IsNotNull(resourceBulkImporter, nameof(resourceBulkImporter));
            EnsureArg.IsNotNull(importErrorStoreFactory, nameof(importErrorStoreFactory));
            EnsureArg.IsNotNull(importOrchestratorTaskDataStoreOperation, nameof(importOrchestratorTaskDataStoreOperation));
            EnsureArg.IsNotNull(contextUpdaterFactory, nameof(contextUpdaterFactory));
            EnsureArg.IsNotNull(taskmanager, nameof(taskmanager));
            EnsureArg.IsNotNull(sequenceIdGenerator, nameof(sequenceIdGenerator));
            EnsureArg.IsNotNull(integrationDataStoreClient, nameof(integrationDataStoreClient));
            EnsureArg.IsNotNull(contextAccessor, nameof(contextAccessor));
            EnsureArg.IsNotNull(loggerFactory, nameof(loggerFactory));

            _importResourceLoader    = importResourceLoader;
            _resourceBulkImporter    = resourceBulkImporter;
            _importErrorStoreFactory = importErrorStoreFactory;
            _importOrchestratorTaskDataStoreOperation = importOrchestratorTaskDataStoreOperation;
            _sequenceIdGenerator        = sequenceIdGenerator;
            _integrationDataStoreClient = integrationDataStoreClient;
            _taskmanager           = taskmanager;
            _contextUpdaterFactory = contextUpdaterFactory;
            _contextAccessor       = contextAccessor;
            _loggerFactory         = loggerFactory;
        }
Exemple #3
0
        public static RequestContextAccessor <IFhirRequestContext> SetupAccessor(this IFhirRequestContext context)
        {
            RequestContextAccessor <IFhirRequestContext> accessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();

            accessor.RequestContext.Returns(context);
            return(accessor);
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ResourceWrapperFactory"/> class.
        /// </summary>
        /// <param name="rawResourceFactory">The raw resource factory.</param>
        /// <param name="fhirRequestContextAccessor">The FHIR request context accessor.</param>
        /// <param name="searchIndexer">The search indexer used to generate search indices.</param>
        /// <param name="claimsExtractor">The claims extractor used to extract claims.</param>
        /// <param name="compartmentIndexer">The compartment indexer.</param>
        /// <param name="searchParameterDefinitionManager"> The search parameter definition manager.</param>
        /// <param name="resourceDeserializer">Resource deserializer</param>
        public ResourceWrapperFactory(
            IRawResourceFactory rawResourceFactory,
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            ISearchIndexer searchIndexer,
            IClaimsExtractor claimsExtractor,
            ICompartmentIndexer compartmentIndexer,
            ISearchParameterDefinitionManager searchParameterDefinitionManager,
            IResourceDeserializer resourceDeserializer)
        {
            EnsureArg.IsNotNull(rawResourceFactory, nameof(rawResourceFactory));
            EnsureArg.IsNotNull(searchIndexer, nameof(searchIndexer));
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(claimsExtractor, nameof(claimsExtractor));
            EnsureArg.IsNotNull(compartmentIndexer, nameof(compartmentIndexer));
            EnsureArg.IsNotNull(searchParameterDefinitionManager, nameof(searchParameterDefinitionManager));
            EnsureArg.IsNotNull(resourceDeserializer, nameof(resourceDeserializer));

            _rawResourceFactory               = rawResourceFactory;
            _searchIndexer                    = searchIndexer;
            _fhirRequestContextAccessor       = fhirRequestContextAccessor;
            _claimsExtractor                  = claimsExtractor;
            _compartmentIndexer               = compartmentIndexer;
            _searchParameterDefinitionManager = searchParameterDefinitionManager;
            _resourceDeserializer             = resourceDeserializer;
        }
        public ReindexJobTask(
            Func <IScoped <IFhirOperationDataStore> > fhirOperationDataStoreFactory,
            Func <IScoped <IFhirDataStore> > fhirDataStoreFactory,
            IOptions <ReindexJobConfiguration> reindexJobConfiguration,
            Func <IScoped <ISearchService> > searchServiceFactory,
            ISupportedSearchParameterDefinitionManager supportedSearchParameterDefinitionManager,
            IReindexUtilities reindexUtilities,
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IReindexJobThrottleController throttleController,
            IModelInfoProvider modelInfoProvider,
            ILogger <ReindexJobTask> logger)
        {
            EnsureArg.IsNotNull(fhirOperationDataStoreFactory, nameof(fhirOperationDataStoreFactory));
            EnsureArg.IsNotNull(fhirDataStoreFactory, nameof(fhirDataStoreFactory));
            EnsureArg.IsNotNull(reindexJobConfiguration?.Value, nameof(reindexJobConfiguration));
            EnsureArg.IsNotNull(searchServiceFactory, nameof(searchServiceFactory));
            EnsureArg.IsNotNull(supportedSearchParameterDefinitionManager, nameof(supportedSearchParameterDefinitionManager));
            EnsureArg.IsNotNull(reindexUtilities, nameof(reindexUtilities));
            EnsureArg.IsNotNull(throttleController, nameof(throttleController));
            EnsureArg.IsNotNull(modelInfoProvider, nameof(modelInfoProvider));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirOperationDataStoreFactory             = fhirOperationDataStoreFactory;
            _fhirDataStoreFactory                      = fhirDataStoreFactory;
            _reindexJobConfiguration                   = reindexJobConfiguration.Value;
            _searchServiceFactory                      = searchServiceFactory;
            _supportedSearchParameterDefinitionManager = supportedSearchParameterDefinitionManager;
            _reindexUtilities   = reindexUtilities;
            _contextAccessor    = fhirRequestContextAccessor;
            _throttleController = throttleController;
            _modelInfoProvider  = modelInfoProvider;
            _logger             = logger;
        }
        public ImportProcessingTask(
            ImportProcessingTaskInputData inputData,
            ImportProcessingProgress importProgress,
            IImportResourceLoader importResourceLoader,
            IResourceBulkImporter resourceBulkImporter,
            IImportErrorStoreFactory importErrorStoreFactory,
            IContextUpdater contextUpdater,
            RequestContextAccessor <IFhirRequestContext> contextAccessor,
            ILoggerFactory loggerFactory)
        {
            EnsureArg.IsNotNull(inputData, nameof(inputData));
            EnsureArg.IsNotNull(importProgress, nameof(importProgress));
            EnsureArg.IsNotNull(importResourceLoader, nameof(importResourceLoader));
            EnsureArg.IsNotNull(resourceBulkImporter, nameof(resourceBulkImporter));
            EnsureArg.IsNotNull(importErrorStoreFactory, nameof(importErrorStoreFactory));
            EnsureArg.IsNotNull(contextUpdater, nameof(contextUpdater));
            EnsureArg.IsNotNull(contextAccessor, nameof(contextAccessor));
            EnsureArg.IsNotNull(loggerFactory, nameof(loggerFactory));

            _inputData               = inputData;
            _importProgress          = importProgress;
            _importResourceLoader    = importResourceLoader;
            _resourceBulkImporter    = resourceBulkImporter;
            _importErrorStoreFactory = importErrorStoreFactory;
            _contextUpdater          = contextUpdater;
            _contextAccessor         = contextAccessor;

            _logger = loggerFactory.CreateLogger <ImportProcessingTask>();
        }
        public async Task GivenImportTaskInput_WhenOperationWasCancelledExceptionThrow_ThenTaskShouldBeCanceled()
        {
            ImportProcessingTaskInputData inputData = GetInputData();
            ImportProcessingProgress      progress  = new ImportProcessingProgress();

            IImportResourceLoader    loader                              = Substitute.For <IImportResourceLoader>();
            IResourceBulkImporter    importer                            = Substitute.For <IResourceBulkImporter>();
            IImportErrorStore        importErrorStore                    = Substitute.For <IImportErrorStore>();
            IImportErrorStoreFactory importErrorStoreFactory             = Substitute.For <IImportErrorStoreFactory>();
            IContextUpdater          contextUpdater                      = Substitute.For <IContextUpdater>();
            RequestContextAccessor <IFhirRequestContext> contextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();
            ILoggerFactory loggerFactory = new NullLoggerFactory();

            importer.Import(Arg.Any <Channel <ImportResource> >(), Arg.Any <IImportErrorStore>(), Arg.Any <CancellationToken>())
            .Returns(callInfo =>
            {
                throw new OperationCanceledException();
            });

            ImportProcessingTask task = new ImportProcessingTask(
                inputData,
                progress,
                loader,
                importer,
                importErrorStoreFactory,
                contextUpdater,
                contextAccessor,
                loggerFactory);

            TaskResultData result = await task.ExecuteAsync();

            Assert.Equal(TaskResult.Canceled, result.Result);
        }
        public async Task GivenImportTaskInput_WhenExceptionThrowForCleanData_ThenRetriableExceptionShouldBeThrow()
        {
            ImportProcessingTaskInputData inputData = GetInputData();
            ImportProcessingProgress      progress  = new ImportProcessingProgress();

            IImportResourceLoader    loader                              = Substitute.For <IImportResourceLoader>();
            IResourceBulkImporter    importer                            = Substitute.For <IResourceBulkImporter>();
            IImportErrorStore        importErrorStore                    = Substitute.For <IImportErrorStore>();
            IImportErrorStoreFactory importErrorStoreFactory             = Substitute.For <IImportErrorStoreFactory>();
            IContextUpdater          contextUpdater                      = Substitute.For <IContextUpdater>();
            RequestContextAccessor <IFhirRequestContext> contextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();
            ILoggerFactory loggerFactory = new NullLoggerFactory();

            importer.CleanResourceAsync(Arg.Any <ImportProcessingTaskInputData>(), Arg.Any <ImportProcessingProgress>(), Arg.Any <CancellationToken>())
            .Returns(callInfo =>
            {
                throw new InvalidOperationException();
            });

            progress.NeedCleanData = true;
            ImportProcessingTask task = new ImportProcessingTask(
                inputData,
                progress,
                loader,
                importer,
                importErrorStoreFactory,
                contextUpdater,
                contextAccessor,
                loggerFactory);

            await Assert.ThrowsAsync <RetriableTaskException>(() => task.ExecuteAsync());
        }
Exemple #9
0
        internal static bool GetIsStrictHandlingEnabled(this RequestContextAccessor <IFhirRequestContext> contextAccessor)
        {
            EnsureArg.IsNotNull(contextAccessor, nameof(contextAccessor));

            bool isStrictHandlingEnabled = false;

            if (contextAccessor.RequestContext?.RequestHeaders != null &&
                contextAccessor.RequestContext.RequestHeaders.TryGetValue(KnownHeaders.Prefer, out StringValues values))
            {
                var handlingValue = values.FirstOrDefault(x => x.StartsWith("handling=", StringComparison.OrdinalIgnoreCase));
                if (handlingValue != default)
                {
                    handlingValue = handlingValue.Substring("handling=".Length);

                    if (string.IsNullOrWhiteSpace(handlingValue) ||
                        !Enum.TryParse(handlingValue, true, out SearchParameterHandling handling))
                    {
                        throw new BadRequestException(string.Format(
                                                          Resources.InvalidHandlingValue,
                                                          handlingValue,
                                                          string.Join(",", Enum.GetNames <SearchParameterHandling>())));
                    }

                    if (handling == SearchParameterHandling.Strict)
                    {
                        isStrictHandlingEnabled = true;
                    }
                }
            }

            return(isStrictHandlingEnabled);
        }
Exemple #10
0
 public PartService(IStorageProvider storageProvider, RequestContextAccessor requestContextAccessor, OctopartApi octopartApi, DigikeyApi digikeyApi, MouserApi mouserApi)
 {
     _storageProvider = storageProvider;
     _requestContext  = requestContextAccessor;
     _octopartApi     = octopartApi;
     _digikeyApi      = digikeyApi;
     _mouserApi       = mouserApi;
 }
        public PrincipalClaimsExtractor(RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor, IOptions <SecurityConfiguration> securityConfiguration)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(securityConfiguration, nameof(securityConfiguration));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _securityConfiguration      = securityConfiguration.Value;
        }
        public OperationOutcomeExceptionFilterAttribute(RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor, ILogger <OperationOutcomeExceptionFilterAttribute> logger)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _logger = logger;
        }
        public RoleBasedAuthorizationService(AuthorizationConfiguration <TDataActions> authorizationConfiguration, RequestContextAccessor <TRequestContext> requestContextAccessor)
        {
            EnsureArg.IsNotNull(authorizationConfiguration, nameof(authorizationConfiguration));
            _requestContextAccessor = EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));

            _rolesClaimName = authorizationConfiguration.RolesClaim;
            _roles          = authorizationConfiguration.Roles.ToDictionary(r => r.Name, StringComparer.OrdinalIgnoreCase);
        }
        public BundleFactory(IUrlResolver urlResolver, RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor)
        {
            EnsureArg.IsNotNull(urlResolver, nameof(urlResolver));
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));

            _urlResolver = urlResolver;
            _fhirRequestContextAccessor = fhirRequestContextAccessor;
        }
Exemple #15
0
        public SearchableSearchParameterDefinitionManager(SearchParameterDefinitionManager inner, RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor)
        {
            EnsureArg.IsNotNull(inner, nameof(inner));
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));

            _inner = inner;
            _fhirReqeustContextAccessor = fhirRequestContextAccessor;
        }
Exemple #16
0
        public async Task GivenAnOrchestratorTaskAndWrongEtag_WhenOrchestratorTaskStart_ThenTaskShouldFailedWithDetails()
        {
            IImportOrchestratorTaskDataStoreOperation fhirDataBulkImportOperation = Substitute.For <IImportOrchestratorTaskDataStoreOperation>();
            IContextUpdater contextUpdater = Substitute.For <IContextUpdater>();
            RequestContextAccessor <IFhirRequestContext> contextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();
            ILoggerFactory loggerFactory = new NullLoggerFactory();
            IIntegrationDataStoreClient     integrationDataStoreClient      = Substitute.For <IIntegrationDataStoreClient>();
            ISequenceIdGenerator <long>     sequenceIdGenerator             = Substitute.For <ISequenceIdGenerator <long> >();
            ImportOrchestratorTaskInputData importOrchestratorTaskInputData = new ImportOrchestratorTaskInputData();
            ImportOrchestratorTaskContext   importOrchestratorTaskContext   = new ImportOrchestratorTaskContext();
            ITaskManager taskManager = Substitute.For <ITaskManager>();

            importOrchestratorTaskInputData.TaskId         = Guid.NewGuid().ToString("N");
            importOrchestratorTaskInputData.TaskCreateTime = Clock.UtcNow;
            importOrchestratorTaskInputData.BaseUri        = new Uri("http://dummy");
            var inputs = new List <InputResource>();

            inputs.Add(new InputResource()
            {
                Type = "Resource", Url = new Uri("http://dummy"), Etag = "dummy"
            });
            importOrchestratorTaskInputData.Input       = inputs;
            importOrchestratorTaskInputData.InputFormat = "ndjson";
            importOrchestratorTaskInputData.InputSource = new Uri("http://dummy");
            importOrchestratorTaskInputData.MaxConcurrentProcessingTaskCount = 1;
            importOrchestratorTaskInputData.ProcessingTaskQueueId            = "default";
            importOrchestratorTaskInputData.RequestUri = new Uri("http://dummy");

            integrationDataStoreClient.GetPropertiesAsync(Arg.Any <Uri>(), Arg.Any <CancellationToken>())
            .Returns(callInfo =>
            {
                Dictionary <string, object> properties = new Dictionary <string, object>();
                properties[IntegrationDataStoreClientConstants.BlobPropertyETag]   = "test";
                properties[IntegrationDataStoreClientConstants.BlobPropertyLength] = 1000L;
                return(properties);
            });

            sequenceIdGenerator.GetCurrentSequenceId().Returns(_ => 0L);

            ImportOrchestratorTask orchestratorTask = new ImportOrchestratorTask(
                importOrchestratorTaskInputData,
                importOrchestratorTaskContext,
                taskManager,
                sequenceIdGenerator,
                contextUpdater,
                contextAccessor,
                fhirDataBulkImportOperation,
                integrationDataStoreClient,
                loggerFactory);

            TaskResultData result = await orchestratorTask.ExecuteAsync();

            ImportTaskErrorResult resultDetails = JsonConvert.DeserializeObject <ImportTaskErrorResult>(result.ResultData);

            Assert.Equal(TaskResult.Fail, result.Result);
            Assert.Equal(HttpStatusCode.BadRequest, resultDetails.HttpStatusCode);
            Assert.NotEmpty(resultDetails.ErrorMessage);
        }
        public ReindexJobCosmosThrottleController(
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            ILogger <ReindexJobCosmosThrottleController> logger)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _logger = logger;
        }
Exemple #18
0
        public FhirRequestContextRouteDataPopulatingFilterAttribute(
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IAuditEventTypeMapping auditEventTypeMapping)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(auditEventTypeMapping, nameof(auditEventTypeMapping));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _auditEventTypeMapping      = auditEventTypeMapping;
        }
Exemple #19
0
 public FhirCosmosResponseHandler(
     Func <IScoped <Container> > client,
     CosmosDataStoreConfiguration cosmosDataStoreConfiguration,
     RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
     ICosmosResponseProcessor cosmosResponseProcessor)
 {
     _client = client;
     _cosmosDataStoreConfiguration = cosmosDataStoreConfiguration;
     _fhirRequestContextAccessor   = fhirRequestContextAccessor;
     _cosmosResponseProcessor      = cosmosResponseProcessor;
 }
Exemple #20
0
        public async Task Invoke(HttpContext context, RequestContextAccessor <TRequestContext> requestContextAccessor)
        {
            // Now the authentication is completed successfully, sets the user.
            if (context.User != null)
            {
                requestContextAccessor.RequestContext.Principal = context.User;
            }

            // Call the next delegate/middleware in the pipeline
            await _next(context);
        }
Exemple #21
0
        public CosmosResponseProcessor(RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor, IMediator mediator, ICosmosQueryLogger queryLogger, ILogger <CosmosResponseProcessor> logger)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(mediator, nameof(mediator));
            EnsureArg.IsNotNull(queryLogger, nameof(queryLogger));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _mediator    = mediator;
            _queryLogger = queryLogger;
            _logger      = logger;
        }
        public CosmosResponseProcessorTests()
        {
            _fhirRequestContextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();
            _fhirRequestContextAccessor.RequestContext.RequestHeaders.Returns(_requestHeaders);
            _fhirRequestContextAccessor.RequestContext.ResponseHeaders.Returns(_responseHeaders);
            _fhirRequestContextAccessor.RequestContext.ResourceType.Returns("resource");
            _fhirRequestContextAccessor.RequestContext.AuditEventType.Returns("operation");

            _mediator = Substitute.For <IMediator>();
            var nullLogger = NullLogger <CosmosResponseProcessor> .Instance;

            _cosmosResponseProcessor = new CosmosResponseProcessor(_fhirRequestContextAccessor, _mediator, Substitute.For <ICosmosQueryLogger>(), nullLogger);
        }
        public BaseExceptionMiddlewareTests()
        {
            _correlationId = Guid.NewGuid().ToString();

            _fhirRequestContextAccessor = Substitute.For <RequestContextAccessor <IFhirRequestContext> >();
            _fhirRequestContextAccessor.RequestContext.CorrelationId.Returns(_correlationId);
            _formatParametersValidator = Substitute.For <IFormatParametersValidator>();

            _context = new DefaultHttpContext();

            // The default context has a null stream, so give it a memory stream instead
            _context.Response.Body = new MemoryStream();
        }
Exemple #24
0
        public AuditHelper(
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IAuditLogger auditLogger,
            IAuditHeaderReader auditHeaderReader)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(auditLogger, nameof(auditLogger));
            EnsureArg.IsNotNull(auditHeaderReader, nameof(auditHeaderReader));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _auditLogger       = auditLogger;
            _auditHeaderReader = auditHeaderReader;
        }
        public ApiNotificationMiddleware(
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IMediator mediator,
            ILogger <ApiNotificationMiddleware> logger)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(mediator, nameof(mediator));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _mediator = mediator;
            _logger   = logger;
        }
        public FhirRequestContextBeforeAuthenticationMiddleware(
            RequestDelegate next,
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IAuditEventTypeMapping auditEventTypeMapping)
        {
            EnsureArg.IsNotNull(next, nameof(next));
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(auditEventTypeMapping, nameof(auditEventTypeMapping));

            _next = next;
            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _auditEventTypeMapping      = auditEventTypeMapping;
        }
        public AuditHelper(
            RequestContextAccessor <IFhirRequestContext> fhirRequestContextAccessor,
            IAuditLogger auditLogger,
            IAuditHeaderReader auditHeaderReader)
        {
            EnsureArg.IsNotNull(fhirRequestContextAccessor, nameof(fhirRequestContextAccessor));
            EnsureArg.IsNotNull(auditLogger, nameof(auditLogger));
            EnsureArg.IsNotNull(auditHeaderReader, nameof(auditHeaderReader));

            _fhirRequestContextAccessor = fhirRequestContextAccessor;
            _auditLogger       = auditLogger;
            _auditHeaderReader = auditHeaderReader;
            _fhirAnonymousOperationTypeList = new Lazy <IList <string> >(() => GetAnonymousOperations());
        }
Exemple #28
0
        public RetryExceptionPolicyFactory(CosmosDataStoreConfiguration configuration, RequestContextAccessor <IFhirRequestContext> requestContextAccessor)
        {
            _requestContextAccessor = requestContextAccessor;
            EnsureArg.IsNotNull(configuration, nameof(configuration));
            EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));

            _sdkOnlyRetryPolicy = Policy.NoOpAsync();

            _bundleActionRetryPolicy = configuration.IndividualBatchActionRetryOptions.MaxNumberOfRetries > 0
                ? CreateExtendedRetryPolicy(configuration.IndividualBatchActionRetryOptions.MaxNumberOfRetries / configuration.RetryOptions.MaxNumberOfRetries, configuration.IndividualBatchActionRetryOptions.MaxWaitTimeInSeconds)
                : Policy.NoOpAsync();

            _backgroundJobRetryPolicy = CreateExtendedRetryPolicy(100, -1);
        }
        public async Task Invoke(HttpContext context, RequestContextAccessor <TRequestContext> requestContextAccessor)
        {
            EnsureArg.IsNotNull(context, nameof(context));

            // Now the authentication is completed successfully, sets the user.
            if (context.User != null)
            {
                EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));
                requestContextAccessor.RequestContext.Principal = context.User;
            }

            // Call the next delegate/middleware in the pipeline
            await _next(context).ConfigureAwait(false);
        }
        public ResourceProfileValidator(
            IModelAttributeValidator modelAttributeValidator,
            IProfileValidator profileValidator,
            RequestContextAccessor <IFhirRequestContext> contextAccessor,
            bool runProfileValidation = false)
            : base(modelAttributeValidator)
        {
            EnsureArg.IsNotNull(modelAttributeValidator, nameof(modelAttributeValidator));
            EnsureArg.IsNotNull(profileValidator, nameof(profileValidator));
            EnsureArg.IsNotNull(contextAccessor, nameof(contextAccessor));

            _profileValidator     = profileValidator;
            _contextAccessor      = contextAccessor;
            _runProfileValidation = runProfileValidation;
        }