public MainWindow() { ServiceConfigurationSection serviceConfigSection = ServiceConfigurationSection.GetSection(); if (serviceConfigSection == null) { throw new ConfigurationErrorsException("serviceConfigSection"); } ProcessingConfig processingConfig = serviceConfigSection.Processing; InitializeComponent(); _disposables.Add(new DirectoryWatcher(processingConfig.Folder, ((App)Application.Current).Importer.GetAllHandlers(), processingConfig.Seconds) .Start() .ObserveOn(DispatcherScheduler.Current) .Subscribe(elements => { foreach (var element in elements) { DataView.Items.Add(element); } })); Closed += (sender, args) => _disposables.Dispose(); }
public void SimpleProcessingTest() { var dataSource = @"https://github.com/MatthewMWR/WinPerf/blob/master/Scenarios/BOOT-REFERENCE__NormalLightlyManaged.zip?raw=true"; var dataIncomingDir = Path.Combine(Path.GetTempPath(), "SimpleProcessingTest-In"); Directory.CreateDirectory(dataIncomingDir); var dataArchiveDir = Path.Combine(Path.GetTempPath(), "SimpleProcessingTest-Archive"); Directory.CreateDirectory(dataArchiveDir); var webClient = new WebClient(); webClient.DownloadFile(dataSource, Path.Combine(dataIncomingDir, "Original.zip")); var testCopyCount = 30; var i = 0; while (i < testCopyCount) { i++; File.Copy(Path.Combine(dataIncomingDir, "Original.zip"), Path.Combine(dataIncomingDir, $"Copy{i}.zip"), true); } var storeConfig = new MeasurementStoreConfig() { StoreType = StoreType.MicrosoftSqlServer, ConnectionString = @"server=(localdb)\MSSqlLocalDb;Database=SimpleProcessingTest" }; var processingConfig = new ProcessingConfig() { DestinationDataPath = dataArchiveDir }; processingConfig.IncomingDataPaths.Add(dataIncomingDir); using (var store = new MeasurementStore(storeConfig)) { store.Database.EnsureCreated(); store.Database.EnsureDeleted(); store.Database.EnsureCreated(); } DoWork.InvokeProcessingOnce(processingConfig, storeConfig); using (var store = new MeasurementStore(storeConfig)) { Assert.True(store.ProcessingRecords.Count() == testCopyCount + 1); Assert.True(store.ProcessingRecords.Count(pr => pr.ProcessingState == ProcessingState.Measured) == processingConfig.ParallelMeasuringThrottle); Assert.True(store.ProcessingRecords.Count(pr => pr.ProcessingState == ProcessingState.Moved) == processingConfig.ParallelMovesThrottle - processingConfig.ParallelMeasuringThrottle); } DoWork.InvokeProcessingOnce(processingConfig, storeConfig); DoWork.InvokeProcessingOnce(processingConfig, storeConfig); DoWork.InvokeProcessingOnce(processingConfig, storeConfig); using (var store = new MeasurementStore(storeConfig)) { Assert.True(store.ProcessingRecords.Count(pr => pr.ProcessingState == ProcessingState.Measured) == testCopyCount + 1); } }
public BarcodeManager(IOptions <ProcessingConfig> options, IBitmapReader bitmapReader) { _config = options.Value; _bitmapReader = bitmapReader; }
public void SimpleProcessingTest() { var dataSource = @"https://github.com/MatthewMWR/WinPerf/blob/master/Scenarios/BOOT-REFERENCE__NormalLightlyManaged.zip?raw=true"; var dataIncomingDir = Path.Combine(Path.GetTempPath(), "SimpleProcessingTest-In"); Directory.CreateDirectory(dataIncomingDir); var dataArchiveDir = Path.Combine(Path.GetTempPath(), "SimpleProcessingTest-Archive"); Directory.CreateDirectory(dataArchiveDir); var dataDownloadStageDir = Path.Combine(Path.GetTempPath(), "SimpleProcessingTest-DownloadStage"); Directory.CreateDirectory(dataDownloadStageDir); var stagedDownlodFilePath = Path.Combine(dataDownloadStageDir, "original.zip"); if (!File.Exists(stagedDownlodFilePath)) { var webClient = new WebClient(); webClient.DownloadFile(dataSource, stagedDownlodFilePath); } var testCopyCount = 26; var i = 0; while (i < testCopyCount) { i++; File.Copy(stagedDownlodFilePath, Path.Combine(dataIncomingDir, $"Copy{i}.zip"), true); } var storeConfig = new MeasurementStoreConfig() { StoreType = StoreType.MicrosoftSqlServer, ConnectionString = @"server=(localdb)\MSSqlLocalDb;Database=SimpleProcessingTest" }; var processingConfig = new ProcessingConfig() { DestinationDataPath = dataArchiveDir }; processingConfig.IncomingDataPaths.Add(dataIncomingDir); using (var store = new MeasurementStore(storeConfig)) { store.Database.EnsureCreated(); store.Database.EnsureDeleted(); store.Database.EnsureCreated(); } Automate.InvokeProcessingOnce(processingConfig, storeConfig); using (var store = new MeasurementStore(storeConfig)) { Assert.True(store.Traces.Count() == testCopyCount); var measuredCount = store.Traces .Include(t => t.ProcessingRecords) .Count(t => t.ProcessingRecords.OrderBy(pr => pr.StateChangeTime).Last().ProcessingState == ProcessingState.Measured); Assert.True(measuredCount == processingConfig.ParallelMeasuringThrottle); var movedCount = store.ProcessingRecords.Count(pr => pr.ProcessingState == ProcessingState.Moved); Assert.True(movedCount == processingConfig.ParallelMovesThrottle); } Automate.InvokeProcessingOnce(processingConfig, storeConfig); Automate.InvokeProcessingOnce(processingConfig, storeConfig); Automate.InvokeProcessingOnce(processingConfig, storeConfig); using (var store = new MeasurementStore(storeConfig)) { var measuredCount = store.Traces .Include(t => t.ProcessingRecords) .Count(t => t.ProcessingRecords.OrderBy(pr => pr.StateChangeTime).Last().ProcessingState == ProcessingState.Measured); Assert.True(measuredCount == testCopyCount); var measuredCountByDifferentPath = store.GetTraceByState(ProcessingState.Measured).Count(); Assert.True(measuredCountByDifferentPath == testCopyCount); var measuredCountByThirdPath = store.GetTraceByFilter(t => t.ProcessingRecords.Latest().ProcessingState == ProcessingState.Measured).Count(); Assert.True(measuredCountByThirdPath == testCopyCount); Assert.True(store.GetTraceByName("copy1.zip", false) != null); Assert.True(store.GetTraceByFilter(t => t.ProcessingRecords.Count == 3).AsEnumerable().Count() == testCopyCount); Assert.NotEmpty(store.GetTraceByName("copy1.zip", true).GetMeasurements <DiskIo>()); } }