Пример #1
0
        public async Task <IDataStoreCache> ProvideAsync(IDataStoreContext dataStoreContext, CancellationToken cancellationToken)
        {
            _logger.LogInfo("Starting External Data Provision Tasks");

            var messageTask               = _externalDataProvider.ProvideMessageAsync(dataStoreContext, cancellationToken);
            var looseMessageTask          = _externalDataProvider.ProvideLooseMessageAsync(dataStoreContext, cancellationToken);
            var validLearnerTask          = _externalDataProvider.ProvideValidLearnersAsync(dataStoreContext, cancellationToken);
            var albTask                   = _externalDataProvider.ProvideALBAsync(dataStoreContext, cancellationToken);
            var fm25Task                  = _externalDataProvider.ProvideFM25Async(dataStoreContext, cancellationToken);
            var fm35Task                  = _externalDataProvider.ProvideFM35Async(dataStoreContext, cancellationToken);
            var fm36Task                  = _externalDataProvider.ProvideFM36Async(dataStoreContext, cancellationToken);
            var fm70Task                  = _externalDataProvider.ProvideFM70Async(dataStoreContext, cancellationToken);
            var fm81Task                  = _externalDataProvider.ProvideFM81Async(dataStoreContext, cancellationToken);
            var validationErrorsTask      = _externalDataProvider.ProvideValidationErrorsAsync(dataStoreContext, cancellationToken);
            var rulesTask                 = _externalDataProvider.ProvideRulesAsync(dataStoreContext, cancellationToken);
            var referenceDataVersionsTask = _externalDataProvider.ProvideReferenceDataVersionsAsync(dataStoreContext, cancellationToken);

            var tasks = new List <Task>()
            {
                messageTask,
                looseMessageTask,
                validLearnerTask,
                albTask,
                fm25Task,
                fm35Task,
                fm36Task,
                fm70Task,
                fm81Task,
                validationErrorsTask,
                rulesTask,
                referenceDataVersionsTask
            };

            await Task.WhenAll(tasks);

            _logger.LogInfo("Data Provision Finished, starting Cache Mapping");

            var cache = new DataStoreCache();

            _dataStoreMapper.MapProcessingInformationData(cache, referenceDataVersionsTask.Result, dataStoreContext);
            _dataStoreMapper.MapValidLearnerData(cache, messageTask.Result, validLearnerTask.Result);
            _dataStoreMapper.MapInvalidLearnerData(cache, looseMessageTask.Result, validLearnerTask.Result);
            _dataStoreMapper.MapALBData(cache, albTask.Result);
            _dataStoreMapper.MapFM25Data(cache, fm25Task.Result);
            _dataStoreMapper.MapFM35Data(cache, fm35Task.Result);
            _dataStoreMapper.MapFM36Data(cache, fm36Task.Result);
            _dataStoreMapper.MapFM70Data(cache, fm70Task.Result);
            _dataStoreMapper.MapFM81Data(cache, fm81Task.Result);
            _dataStoreMapper.MapFM36HistoryData(cache, fm36Task.Result, dataStoreContext);
            _dataStoreMapper.MapValidationData(cache, dataStoreContext, looseMessageTask.Result, validationErrorsTask.Result, rulesTask.Result);
            _dataStoreMapper.MapESFFundingData(cache, dataStoreContext, messageTask.Result, fm70Task.Result);

            _logger.LogInfo("Cache Mapping Complete");

            return(cache);
        }
        public IUnitOfWork Get(string uowName)
        {
            var uow = DataStoreCache.Get <IUnitOfWork>(uowName);

            if (uow.IsNull())
            {
                uow = new DefaultUnitOfWork(sessionFactoryProvider);
            }
            if (uowName.IsNullOrEmpty())
            {
                uowName = uow.TraceId;
            }
            DataStoreCache.Remove(uowName);
            DataStoreCache.Add(uowName, uow);
            return(uow);
        }
Пример #3
0
        public void Get_Test()
        {
            var dataStoreCache = new DataStoreCache();

            dataStoreCache.Add(1);
            dataStoreCache.Add(2);
            dataStoreCache.AddRange(new List <int>()
            {
                3, 4, 5
            });

            dataStoreCache.Add("string");

            dataStoreCache.Get <int>().Should().Contain(5);
            dataStoreCache.Get <int>().Should().BeOfType <List <int> >();

            dataStoreCache.Get <int>().Should().ContainInOrder(1, 2, 3, 4, 5);
            dataStoreCache.Get <string>().Should().HaveCount(1);

            dataStoreCache.Get <long>().Should().BeEmpty();
        }
 public void Remove(string uowName)
 {
     DataStoreCache.Remove(uowName);
 }