예제 #1
0
        public async Task <bool> Handle(ExtractPatientBaselines request, CancellationToken cancellationToken)
        {
            //Extract
            int found = await _patientBaselinesSourceExtractor.Extract(request.Extract, request.DatabaseProtocol);

            //Validate
            await _extractValidator.Validate(request.Extract.Id, found, nameof(PatientBaselinesExtract), $"{nameof(TempPatientBaselinesExtract)}s");

            //Load
            int loaded = await _patientBaselinesLoader.Load(request.Extract.Id, found);

            int rejected =
                _extractHistoryRepository.ProcessRejected(request.Extract.Id, found - loaded, request.Extract);


            _extractHistoryRepository.ProcessExcluded(request.Extract.Id, rejected, request.Extract);
            //notify loaded
            DomainEvents.Dispatch(
                new ExtractActivityNotification(request.Extract.Id, new DwhProgress(
                                                    nameof(PatientBaselinesExtract),
                                                    nameof(ExtractStatus.Loaded),
                                                    found, loaded, rejected, loaded, 0)));

            return(true);
        }
예제 #2
0
        public void should_Load()
        {
            Assert.True(_count > 0);
            Assert.False(_extractsContext.PatientBaselinesExtracts.Any());

            var count = _loader.Load(_extract.Id, _count).Result;

            Assert.True(count > 0);
            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            Assert.AreEqual(count, _extractsContext.PatientBaselinesExtracts.Count());
            Log.Debug($"Temp {_count} Main {_extractsContext.PatientBaselinesExtracts.Count()}");
        }