aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities
diff options
context:
space:
mode:
authorMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
committerMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
commit00a491d93733d4625ad329b2ba8237f445364b3f (patch)
tree4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/Utilities
parent124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff)
downloadTango-00a491d9.tar.gz
Tango-00a491d9.zip
merge
Diffstat (limited to 'Software/Visual_Studio/Utilities')
-rw-r--r--Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs13
-rw-r--r--Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/App.config28
-rw-r--r--Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Program.cs187
-rw-r--r--Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Properties/AssemblyInfo.cs36
-rw-r--r--Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Tango.CctOptimizer.CLI.csproj71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/packages.config4
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs37
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs74
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs40
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs19
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs75
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs20
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs116
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs97
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs292
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs61
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs139
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs79
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config58
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml56
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs48
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs44
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml198
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs87
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs19
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs20
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs16
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsxbin15762 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs12
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs25
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs147
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs57
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs92
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj246
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml213
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs54
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs578
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs132
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploybin32256 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploybin5697824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploybin35328 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploybin5225168 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploybin276480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploybin461824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploybin1146368 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploybin224256 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploybin4538880 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploybin1676824 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploybin526336 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploybin160768 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploybin549376 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploybin589312 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploybin80896 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploybin126464 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploybin535040 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploybin30208 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploybin345600 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploybin111984 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploybin55904 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploybin987136 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploybin22016 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploybin138240 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy58
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploybin61368 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest425
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploybin20480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploybin20480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploybin37888 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploybin1528832 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploybin9728 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploybin147456 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exebin791480 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.icobin32988 -> 0 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsxbin0 -> 53943 bytes
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs93
-rw-r--r--Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.FirmwarePackageGenerator/MainWindowVM.cs2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.config6
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml24
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs259
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml99
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml.cs31
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindowVM.cs160
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/AssemblyInfo.cs55
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Tango.JobProgressTester.UI.csproj143
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/App.config20
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs152
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config3
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.config6
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml9
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml.cs17
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml21
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml.cs45
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/AssemblyInfo.cs55
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Tango.LiquidColorGenerator.UI.csproj108
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.config62
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml26
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml.cs24
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ApplicationLogViewerParser.cs55
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/EmbeddedLogViewerParser.cs55
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ILogViewerParser.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerManager.cs126
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml326
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml.cs67
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/AssemblyInfo.cs55
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.Designer.cs71
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Tango.LogViewer.UI.csproj147
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/ViewModels/MainViewVM.cs307
-rw-r--r--Software/Visual_Studio/Utilities/Tango.LogViewer.UI/packages.config8
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml51
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml.cs29
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Converters/EventTypeToStringConverter.cs29
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml25
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml.cs56
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs186
-rw-r--r--Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml191
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs41
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/App.config6
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Program.cs31
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Properties/AssemblyInfo.cs36
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Tango.PasswordHashUtil.CLI.csproj60
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Program.cs133
-rw-r--r--Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Tango.PortsListGenerator.csproj10
-rw-r--r--Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Options.cs3
-rw-r--r--Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Program.cs14
-rw-r--r--Software/Visual_Studio/Utilities/Tango.Stubs.UI/MainWindow.xaml.cs8
-rw-r--r--Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/Utilities/Tango.UITests/App.xaml8
-rw-r--r--Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml345
-rw-r--r--Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml.cs129
-rw-r--r--Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj15
-rw-r--r--Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs32
-rw-r--r--Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Tango.WebClientGenerator.csproj4
164 files changed, 297 insertions, 8981 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
index ae60e04b4..ac31cfb9c 100644
--- a/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.AlarmParametersGenerator/Program.cs
@@ -32,7 +32,6 @@ namespace Tango.AlarmParametersGenerator
public String Guidance { get; set; }
//Embedded
- public String Persistent { get; set; }
public String SWIndex { get; set; }
public String Frequency { get; set; }
public String Source { get; set; }
@@ -90,20 +89,19 @@ namespace Tango.AlarmParametersGenerator
{
if (!String.IsNullOrWhiteSpace(item.Source))
{
- Console.WriteLine($"Parsing event {item.Code}, {item.Name},{item.Source}...");
+ Console.WriteLine($"Parsing event {item.Code}, {item.Name}...");
AlarmHandlingItem alarm = new AlarmHandlingItem();
alarm.AlarmSource = item.Source.ToEnum<AlarmSourceType>();
- //alarm.Frequency = item.Frequency.ToUint();
+ alarm.Frequency = item.Frequency.ToUint();
alarm.DeviceId = item.DeviceId.ToUint();
alarm.ModuleDeviceId = item.ApplicationDeviceID.ToUint();
alarm.AlarmValue = item.Criteria.ToUint();
alarm.AlarmDirection = item.Direction.ToBoolean();
alarm.Severity = item.Severity.ToEnum<DebugLogCategory>();
- //alarm.Predecessor = item.Predeccesor.ToUint();
+ alarm.Predecessor = item.Predeccesor.ToUint();
alarm.DebounceValue = item.DebounceValue.ToUint();
alarm.EventType = (EventType)item.Code.ToUint();
- alarm.IsPersistent = item.Persistent.ToBooleanYesNo();
parameters.AlarmItem.Add(alarm);
}
@@ -149,10 +147,5 @@ namespace Tango.AlarmParametersGenerator
{
return String.IsNullOrWhiteSpace(str) ? false : (str.Contains("0") ? false : true);
}
-
- public static bool ToBooleanYesNo(this String str)
- {
- return String.IsNullOrWhiteSpace(str) ? false : (str.Contains("Yes") ? true : false);
- }
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/App.config b/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/App.config
deleted file mode 100644
index a46da65da..000000000
--- a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/App.config
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <configSections>
- <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
- <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
- </configSections>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <entityFramework>
- <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
- <providers>
- <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
- </providers>
- </entityFramework>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Program.cs
deleted file mode 100644
index 2306163d1..000000000
--- a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Program.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL;
-using Tango.BL.Entities;
-using Tango.Core;
-using Tango.Core.Helpers;
-
-namespace Tango.CctOptimizer.CLI
-{
- class Program
- {
- static void Main(string[] args)
- {
- DataSource dataSource = new DataSource();
- dataSource.Catalog = "Tango_TEST";
- dataSource.Address = "twine.database.windows.net";
- dataSource.IntegratedSecurity = false;
- dataSource.UserName = "Roy";
- dataSource.Password = "Aa123456";
-
- RESTART:
-
- Console.Write("Checking CCT Optimizations...");
-
- long totalBytes = 0;
-
- List<Cct> toRemove = new List<Cct>();
- List<Cct> allCCT = new List<Cct>();
- List<Rml> allRmls = new List<Rml>();
-
- try
- {
- using (ObservablesContext db = ObservablesContext.CreateDefault(dataSource))
- {
- allRmls = db.Rmls.Where(x => x.CctGuid != null).ToList();
-
- var cctsGuids = db.Ccts.Select(x => x.Guid).ToList();
- int cctCount = cctsGuids.Count;
- int cctCounter = 0;
-
- foreach (var guid in cctsGuids)
- {
- var cct = db.Ccts.SingleOrDefault(x => x.Guid == guid);
- allCCT.Add(cct);
- cctCounter++;
- ClearCurrentConsoleLine();
- Console.Write($"Checking CCT Optimizations... {(int)((double)cctCounter / (double)cctCount * 100d)}%");
- }
-
- Console.WriteLine();
- Console.WriteLine();
-
- //NOT USED
- var notUsedCCT = allCCT.Where(x => !allRmls.Exists(y => y.CctGuid == x.Guid)).ToList();
-
- Console.WriteLine($"Not used CCT ({notUsedCCT.Count}):");
- Console.WriteLine("---------------------------------------");
- foreach (var cct in notUsedCCT)
- {
- long length = cct.Data != null ? cct.Data.Length : 0;
- totalBytes += length;
- toRemove.Add(cct);
- Console.WriteLine($"{(cct.FileName != null ? cct.FileName : "N/A")} - {FileHelper.GetFriendlyFileSize(length)}");
- }
-
- //DUPLICATES
- List<Cct> toExamine = allCCT.Where(x => x.FileName != null).Where(x => !notUsedCCT.Contains(x)).ToList();
- List<Cct> uniqueCCTs = toExamine.DistinctBy(x => x.FileName).ToList();
- List<Cct> duplicates = new List<Cct>();
-
- foreach (var cct in toExamine)
- {
- if (uniqueCCTs.Exists(x => x != cct && x.FileName == cct.FileName))
- {
- duplicates.Add(cct);
- }
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine($"Duplicates CCT ({duplicates.Count}):");
- Console.WriteLine("---------------------------------------");
- foreach (var duplicateGroup in duplicates.GroupBy(x => x.FileName))
- {
- long length = duplicateGroup.First().Data != null ? duplicateGroup.First().Data.Length * duplicateGroup.Count() : 0;
- totalBytes += length;
-
- foreach (var cct in duplicateGroup)
- {
- toRemove.Add(cct);
- }
-
- Console.WriteLine($"{(duplicateGroup.First().FileName != null ? duplicateGroup.First().FileName : "N/A")} - {FileHelper.GetFriendlyFileSize(length)} {(duplicateGroup.Count() > 1 ? $"X{duplicateGroup.Count()}" : String.Empty)}");
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine($"Total CCT's found: {allCCT.Count}");
- Console.WriteLine($"Optimization will delete {toRemove.Count} CCT records ({FileHelper.GetFriendlyFileSize(totalBytes)})");
- Console.WriteLine();
-
- if (toRemove.Count > 0)
- {
- Console.Write("Press 'Y' to start optimization procedure.");
- var key = Console.ReadKey();
-
- if (key.Key != ConsoleKey.Y)
- {
- Environment.Exit(0);
- return;
- }
- }
- else
- {
- Console.WriteLine("Press enter to exit to optimizer...");
- Console.ReadLine();
- Environment.Exit(0);
- return;
- }
-
-
- //Reassign RMLs from duplicates...
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine("Reassigning RMLs CCTS...");
- Console.WriteLine("---------------------------------------");
- Console.WriteLine();
-
- foreach (var rml in allRmls)
- {
- var duplicateCCT = duplicates.SingleOrDefault(x => x.Guid == rml.CctGuid);
-
- if (duplicateCCT != null)
- {
- var uniqueCCT = uniqueCCTs.SingleOrDefault(x => x.FileName == duplicateCCT.FileName);
- Console.WriteLine($"Reassigning RML '{rml.Name}' to '{uniqueCCT.FileName} (ID: {uniqueCCT.ID})'...");
- rml.CctGuid = uniqueCCT.Guid;
- db.SaveChanges();
- }
- }
-
- //Remove unused and duplicate CCTs...
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine("Removing CCT's...");
- Console.WriteLine("---------------------------------------");
- Console.WriteLine();
-
- foreach (var cct in toRemove)
- {
- Console.WriteLine($"Removing '{cct.FileName}' ID: {cct.ID}...");
- cct.DeleteCascadeAsync(db).Wait();
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine("Optimization Completed.");
- Console.WriteLine();
- Console.WriteLine();
- goto RESTART;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine();
- Console.WriteLine();
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("Error occurred while trying to perform the optimization.");
- Console.WriteLine(ex.ToString());
- Console.WriteLine();
- Console.WriteLine();
- Console.ReadLine();
- }
- }
-
- public static void ClearCurrentConsoleLine()
- {
- int currentLineCursor = Console.CursorTop;
- Console.SetCursorPosition(0, Console.CursorTop);
- Console.Write(new string(' ', Console.WindowWidth));
- Console.SetCursorPosition(0, currentLineCursor);
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Properties/AssemblyInfo.cs
deleted file mode 100644
index 38926dca0..000000000
--- a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tango.CctOptimizer.CLI")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tango.CctOptimizer.CLI")]
-[assembly: AssemblyCopyright("Copyright © 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("69168924-9aa8-447d-ad64-f07dbf4f0909")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Tango.CctOptimizer.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Tango.CctOptimizer.CLI.csproj
deleted file mode 100644
index 14dd0b54b..000000000
--- a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/Tango.CctOptimizer.CLI.csproj
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{69168924-9AA8-447D-AD64-F07DBF4F0909}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <RootNamespace>Tango.CctOptimizer.CLI</RootNamespace>
- <AssemblyName>Tango.CctOptimizer.CLI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
- <HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
- </Reference>
- <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
- <HintPath>..\..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.ComponentModel.DataAnnotations" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Program.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- <None Include="packages.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.BL\Tango.BL.csproj">
- <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project>
- <Name>Tango.BL</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/packages.config b/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/packages.config
deleted file mode 100644
index b3daf0d6c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.CctOptimizer.CLI/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="EntityFramework" version="6.2.0" targetFramework="net461" />
-</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs
index 208adf63f..3280f47f5 100644
--- a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs
+++ b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs
@@ -53,7 +53,7 @@ namespace Tango.DBObservablesGenerator.CLI
String table_description = null;
var db_des = dbDescriptions.FirstOrDefault(x => x.TableName == table.Name);
- if (db_des != null && !String.IsNullOrWhiteSpace(db_des.TableDescription))
+ if (db_des != null)
{
table_description = db_des.TableDescription;
}
@@ -121,31 +121,24 @@ namespace Tango.DBObservablesGenerator.CLI
if (column_description != null)
{
- DbPropertyExtensionModel dbPropertyExtensionModel = null;
+ RangeDescriptionModel rangeDescription = null;
try
{
- dbPropertyExtensionModel = JsonConvert.DeserializeObject<DbPropertyExtensionModel>(column_description, new JsonSerializerSettings()
- {
- NullValueHandling = NullValueHandling.Ignore,
- MissingMemberHandling = MissingMemberHandling.Ignore,
- });
+ rangeDescription = JsonConvert.DeserializeObject<RangeDescriptionModel>(column_description);
}
catch { }
- if (dbPropertyExtensionModel != null)
+ if (rangeDescription != null && rangeDescription.Description != null)
{
- codeField.PropertyExtension = dbPropertyExtensionModel;
-
- if (dbPropertyExtensionModel.Description != null)
- {
- codeField.DbDescription = dbPropertyExtensionModel.Description.ToLines().Select(x => "/// " + x).Join(Environment.NewLine);
- }
+ codeField.RangeDescription = rangeDescription;
+ codeField.DbDescription = rangeDescription.Description.ToLines().Select(x => "/// " + x).Join(Environment.NewLine);
}
else
{
codeField.DbDescription = column_description.ToLines().Select(x => "/// " + x).Join(Environment.NewLine);
}
+
}
if (field.PropertyType.IsGenericType)
@@ -154,14 +147,6 @@ namespace Tango.DBObservablesGenerator.CLI
{
codeField.Type = String.Format("Nullable<{0}>", "DateTime");
}
- else if (field.PropertyType == typeof(Nullable<Int32>))
- {
- codeField.Type = String.Format("Nullable<{0}>", "Int32");
- }
- else if (field.PropertyType == typeof(Nullable<Double>))
- {
- codeField.Type = String.Format("Nullable<{0}>", "Double");
- }
else
{
codeField.Type = String.Format("SynchronizedObservableCollection<{0}>", DalNameToStandardName(field.PropertyType.GenericTypeArguments.Single().Name).SingularizeMVC());
@@ -199,7 +184,7 @@ namespace Tango.DBObservablesGenerator.CLI
}
codeFile.Fields.Add(codeField);
- if (field.PropertyType.IsPrimitive || field.PropertyType.IsValueType || field.PropertyType == typeof(String) || field.PropertyType == typeof(byte[]))
+ if (field.PropertyType.IsPrimitive || field.PropertyType.IsValueType || field.PropertyType == typeof(String))
{
dtoCodeBase.Properties.Add(new Property()
{
@@ -245,7 +230,7 @@ namespace Tango.DBObservablesGenerator.CLI
//Generate Enumerations...
using (RemoteDB db = new RemoteDB(SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource))
{
- foreach (var tableProp in db.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType.IsGenericTypeAndNotNullable()))
+ foreach (var tableProp in db.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType.IsGenericType))
{
try
{
@@ -395,7 +380,7 @@ namespace Tango.DBObservablesGenerator.CLI
codeField.Description = FirstCharacterToLower(DalNameToStandardName(name));
- if (field.PropertyType.IsGenericTypeAndNotNullable())
+ if (field.PropertyType.IsGenericType)
{
continue;
}
@@ -443,7 +428,7 @@ namespace Tango.DBObservablesGenerator.CLI
//Generate Enumerations...
using (RemoteDB db = new RemoteDB(SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource))
{
- foreach (var tableProp in db.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType.IsGenericTypeAndNotNullable()))
+ foreach (var tableProp in db.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.PropertyType.IsGenericType))
{
try
{
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs
deleted file mode 100644
index 54431968f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyserResultChartData.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultChartData : ExtendedObject
- {
- public ObservableCollection<DataPoint> Points { get; set; }
-
- public string Title { get; set; }
-
- private int _step;
- public int XStep
- {
- get { return _step; }
- set { _step = value; RaisePropertyChangedAuto(); }
- }
-
- private double _fromXAxis;
- public double FromXAxis
- {
- get { return _fromXAxis; }
- set { _fromXAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _toXAxis;
- public double ToXAxis
- {
- get { return _toXAxis; }
- set { _toXAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _fromYAxis;
- public double FromYAxis
- {
- get { return _fromYAxis; }
- set { _fromYAxis = value; RaisePropertyChangedAuto(); }
- }
-
- private double _toYAxis;
- public double ToYAxis
- {
- get { return _toYAxis; }
- set { _toYAxis = value; RaisePropertyChangedAuto(); }
- }
-
- public void UpdateData()
- {
- _toYAxis = Points.Max(x => x.Y) + 2;
- _fromYAxis = Points.Min(x => x.Y) - 1;
- _toXAxis = Points.Max(x => x.X);
- _fromXAxis = Points.Min(x => x.X);
-
- RaisePropertyChanged("Title");
- RaisePropertyChanged("Points");
- }
-
- public AnalyzerResultChartData()
- {
- Points = new ObservableCollection<DataPoint>();
- _fromYAxis = 0;
- _fromXAxis = 0;
- _toYAxis = 1;
- _toXAxis = 1;
- XStep = 1;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs
deleted file mode 100644
index 3c9fe8cab..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisPlotValue.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalysisPlotValue
- {
- public double X { get; set; }
- public double Y { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs
deleted file mode 100644
index 0dbf9a83e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalysisService.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using System.Windows.Controls;
-using System.Windows.Media;
-using System.IO;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalysisService
- {
- public static dynamic GetAnalyzer(String fileName)
- {
- string filename = Path.GetFileNameWithoutExtension(fileName);
-
- var analyzerTypes = typeof(AnalysisService).Assembly.GetTypes().Where(x => typeof(IBaseAnalyzer).IsAssignableFrom(x)).ToList();
- var analyzerType = analyzerTypes.FirstOrDefault(x => filename.StartsWith(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) );
- if(analyzerType == null)
- {//in case name of test is not first word
- analyzerType = analyzerTypes.FirstOrDefault(x => filename.IndexOf(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) >= 0);
- }
-
- return (analyzerType != null) ? Activator.CreateInstance(analyzerType) : null;
-
- }
- public static string GetTestName(String fileName)
- {
- var analyzerTypes = typeof(AnalysisService).Assembly.GetTypes().Where(x => typeof(IBaseAnalyzer).IsAssignableFrom(x)).ToList();
- var analyzerType = analyzerTypes.FirstOrDefault(x => fileName.IndexOf(x.GetCustomAttribute<AnalyzerAttribute>().Name, StringComparison.OrdinalIgnoreCase) >= 0);
-
- return analyzerType.GetCustomAttribute<AnalyzerAttribute>().Name;
- }
- }
-
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs
deleted file mode 100644
index 2a1d3323e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerAttribute.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Interface)]
- public class AnalyzerAttribute : Attribute
- {
- public string Name { get; set; }
-
- public AnalyzerAttribute(string name)
- {
- Name = name;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs
deleted file mode 100644
index bc82d2215..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultBase.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Globalization;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using OxyPlot;
-using Tango.Core;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultBase : ExtendedObject, IAnalyzerResult
- {
- public AnalyzerResultValue Result { get; set; }
- // public List<AnalysisPlotValue> PlotValues { get; set; }
- //public ObservableCollection<DataPoint> Points { get; set; }
-
- public List<AnalyzerResultProperty> Properties
- {
- get
- {
- List<AnalyzerResultProperty> props = new List<AnalyzerResultProperty>();
- if (this.GetType() == typeof(AnalyzerResultBase))
- return props;
-
- foreach (var prop in this.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).OrderByAlphaNumeric(x => x.Name))
- {
- AnalyzerResultProperty aProp = new AnalyzerResultProperty();
- if (aProp.GetType() == typeof(IEnumerable<>))
- {
- continue;
- }
- if (prop.GetCustomAttribute<DescriptionAttribute>() != null)
- {
- aProp.Name = prop.GetCustomAttribute<DescriptionAttribute>().Description;
- //}
- //else
- //{
- // aProp.Name = prop.Name;
- //}
- object val = prop.GetValue(this);
- aProp.Value = (val is double) ? ((double)val).ToString("F") : val.ToString();
- props.Add(aProp);
- }
-
- }
-
- return props;
- }
- }
-
- public bool IsShowPlotResult { get; set; }
- public bool IsShowLineChartResult { get; set; }
- public AnalyzerResultChartData RangeToCountChart { get; set; }
- public AnalyzerResultChartData RangeToTimeChart { get; set; }
- public AnalyzerResultChartData LineChart { get; set; }
- public bool BackgroundMode { get; set; }
-
-
- public AnalyzerResultBase()
- {
- //PlotValues = new List<AnalysisPlotValue>();
- Result = AnalyzerResultValue.Undetermined;
- IsShowPlotResult = false;
- IsShowLineChartResult = false;
- RangeToCountChart = new AnalyzerResultChartData();
- RangeToTimeChart = new AnalyzerResultChartData();
- LineChart = new AnalyzerResultChartData();
- BackgroundMode = false;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs
deleted file mode 100644
index f2548746e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultProperty.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class AnalyzerResultProperty
- {
- public String Name { get; set; }
- public String Value { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs
deleted file mode 100644
index a0cc2c2c7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/AnalyzerResultValue.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public enum AnalyzerResultValue
- {
- //Undetermined
- [Description("Information")]
- Undetermined,
- [Description("Check")]
- Passed,
- [Description("CloseCircle")]
- Failed,
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs
deleted file mode 100644
index e62af4e46..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/DispenserReader.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-using System.Diagnostics;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class DispenserReader: IReader<DispenserSample>
- {
- public List<DispenserSample> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations)
- {
- List<DispenserCsvRow> data = CsvFile.Read<DispenserCsvRow>(new CsvSource(filePath)).ToList();
- List<DispenserSample> samples = new List<DispenserSample>();
- int index = 0;
- int last_labelIndex = 0;
- foreach (var item in data)
- {
- double pressure = 0;
- if (item.Label == "Label")
- {
- item.Pressure = "0";
- item.Command = "Label";
- if (last_labelIndex == 0 || last_labelIndex < (index + 5))
- {
- last_labelIndex = index;
-
- OxyPlot.Wpf.LineAnnotation _line = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = index,
- };
- annotations.Add(_line);
-
- }
- }
- if (double.TryParse(item.Pressure, out pressure) || !String.IsNullOrWhiteSpace(item.Command))
- {
- samples.Add(new DispenserSample()
- {
- Pressure = pressure,
- Command = String.IsNullOrWhiteSpace(item.Command) ? null : item.Command,
- Index = index
- });
- index++;
- }
- }
- return samples;
- }
-
- public List<string> GetTitles(String filePath)
- {
- string xAxistitle = "Time[100 msec]";
- string yAxistitle = "Pressure [mbar]";
- return new List<string>() { xAxistitle, yAxistitle };
- }
-
- public bool PrintResultsToPDFFile()
- {
- return true ;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs
deleted file mode 100644
index fd3b3c267..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- [Analyzer("BaseInterface")]
- public interface IBaseAnalyzer
- {
-
- }
- [Analyzer("INTERFACE")]
- public interface IAnalyzer<T>: IBaseAnalyzer
- {
- IReader<T> Reader { get; set; }
- Task<List<IAnalyzerResult>> Process(List<T> csvRows, bool backgroundMode);
- void GetPoints(List<T> samples, IList<OxyPlot.DataPoint> points);
- }
- [Analyzer("DISPENSERINTERFACE")]
- public interface IDispenserDispenserAnalyser : IAnalyzer<DispenserSample>
- {
- }
- [Analyzer("PROCESSINTERFACE")]
- public interface IProcessAnalyzer : IAnalyzer<ProcessSample>
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs
deleted file mode 100644
index 5203828e5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IAnalyzerResult.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public interface IAnalyzerResult
- {
- AnalyzerResultValue Result { get; set; }
-
- bool BackgroundMode { get; set; }
- //List<AnalysisPlotValue> PlotValues { get; set; }
-
- //AnalyzerResultChartData RangeToCountChart { get; set; }
- //AnalyzerResultChartData RangeToTimeChart { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs
deleted file mode 100644
index 35c7f8f76..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/IReader.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public interface IReader<T>
- {
- List<T> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations);
-
- List<string> GetTitles(String filePath);
-
- bool PrintResultsToPDFFile();
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs
deleted file mode 100644
index b2e6f0388..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analysis/ProcessReader.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-using OxyPlot;
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-
-
-namespace Tango.DispenserAnalyzer.UI.Analysis
-{
- public class ProcessReader: IReader<ProcessSample>
- {
- public List<ProcessSample> ReadScvFile(String filePath, List<OxyPlot.Wpf.LineAnnotation> annotations)
- {
- List<ProcessSample> samples = new List<ProcessSample>();
- try
- {
- List<ProcessCsvRow> data = CsvFile.Read<ProcessCsvRow>(new CsvSource(filePath)).ToList();
-
- double index = 0;
- double delta = 0;
- if (data.Count > 2)
- {
- DateTime time1;
- DateTime time2;
- if (DateTime.TryParse(data[0].Time, out time1) && DateTime.TryParse(data[1].Time, out time2))
- {
- int m1 = time1.Millisecond;
- int m2 = time2.Millisecond;
- delta = (time2 - time1).Milliseconds / 100;
- }
- }
- delta = Settings.GetValueByName(AnalyzerSettingsEnum.TimeInterval);
- if(delta == 0)
- return samples;
-
- int endPoint = (int)(Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation) / delta);
- foreach (var item in data)
- {
- double dValue = 0;
-
- if (double.TryParse(item.Value, out dValue))
- {
- DateTime time;
- DateTime.TryParse(item.Time, out time);
- int mil = time.Millisecond;
- samples.Add(new ProcessSample()
- {
- Time = time,
- Value = dValue,
- TimeIntervalSec = index,
- });
- index += delta;
- }
- }
- OxyPlot.Wpf.LineAnnotation _line1 = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation)
- };
- annotations.Add(_line1);
- OxyPlot.Wpf.LineAnnotation _line2 = new OxyPlot.Wpf.LineAnnotation()
- {
- StrokeThickness = 1,
- Color = Color.FromRgb(255, 5, 5),
- Type = LineAnnotationType.Vertical,
- Text = index.ToString(),
- X = Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation)
- };
- annotations.Add(_line2);
-
-
- return samples;
- }
- catch (Exception ex)
- {
- Debug.Write("Exception in ProcessReader ReadScvFile" + ex.Message);
- return samples;
- }
- }
-
- public List<string> GetScvColumns(String filePath)
- {
- try
- {
- return CsvFile.GetColumns<ProcessCsvRow>(new CsvSource(filePath)).ToList();
- }
- catch (Exception ex)
- {
- Debug.Write("Exception in ProcessReader ReadScvFile" + ex.Message);
- return null;
- }
- }
-
- public List<string> GetTitles(String filePath)
- {
- List<string> columns = GetScvColumns(filePath);
- string xAxistitle = "Time [sec]";
- string yAxistitle = columns!= null && columns.Count > 1 ? columns[1] : "Values";
- return new List<string>() { xAxistitle, yAxistitle };
- }
-
- public bool PrintResultsToPDFFile()
- {
- return false;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs
deleted file mode 100644
index d440f42c3..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/DynamicSealingAnalyzer.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("dynamic")]
- public class DynamicSealingAnalzyer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
- public DynamicSealingAnalzyer()
- {
- Reader = new DispenserReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
-
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
-
- //dynamic test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- DynamicSealingAnalyzerResult result = new DynamicSealingAnalyzerResult();
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- int period = 10;
- result.Result = AnalyzerResultValue.Passed;
- //var sum_average = Enumerable.Range(0, rangeTestValues.Count - period).Select(n => rangeTestValues.Select(x=>x.Pressure).Skip(n).Take(periodLength).Average()).ToList();
- for (int counter = 0; counter <= rangeTestValues.Count - period; )
- {
- var sum1 = rangeTestValues.Skip(counter++).Take(period).Average(t => t.Pressure);
- var sum2 = rangeTestValues.Skip(counter++).Take(period).Average(t => t.Pressure);
- if(sum1 > sum2 && sum1 - sum2 > 8)
- {
- result.DynamicSealingResult = "test failed";
- result.Result = AnalyzerResultValue.Failed;
- break;
- }
- }
- results.Add(result);
- }
- SealingAnalyzerResult sealingAnalyzerResult = new SealingAnalyzerResult();
- //start sealing test
- if (pairs.Count > 1 && pairs[1].Count > 1)
- {
- List<DispenserSample> rangeStartTestValues = csvRows.Where(x => x.Index > pairs[1][0].Index && x.Index < pairs[1][1].Index).ToList();
- sealingAnalyzerResult.AverageStartTestValue = rangeStartTestValues.Average(t => t.Pressure);
- }
- //end sealing of test
- if (pairs.Count > 2 && pairs[2].Count > 1)
- {
- List<DispenserSample> rangeEndTestValues = csvRows.Where(x => x.Index > pairs[2][0].Index && x.Index < pairs[2][1].Index).ToList();
- sealingAnalyzerResult.AverageEndTestValue = rangeEndTestValues.Average(t => t.Pressure);
- }
- sealingAnalyzerResult.AbsoluteTestValue = Math.Abs(sealingAnalyzerResult.AverageEndTestValue - sealingAnalyzerResult.AverageStartTestValue);
- sealingAnalyzerResult.Result = sealingAnalyzerResult.AbsoluteTestValue < 8 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(sealingAnalyzerResult);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
-
- public class DynamicSealingAnalyzerResult : AnalyzerResultBase
- {
- [Description("Dynamic sealing result")]
- public string DynamicSealingResult { get; set; }
-
- public DynamicSealingAnalyzerResult()
- {
- DynamicSealingResult = "test succeed";
- Result = AnalyzerResultValue.Undetermined;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs
deleted file mode 100644
index 213f4e4f0..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/FlowAnalyser.cs
+++ /dev/null
@@ -1,292 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-using MathNet.Numerics.LinearAlgebra;
-using System.Linq.Expressions;
-using System.Diagnostics;
-using OxyPlot;
-using System.Collections.ObjectModel;
-using Tango.Documents;
-using System.IO;
-using Tango.Core.Helpers;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("flow")]
-
- public class FlowAnalyser : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
-
- public FlowAnalyser()
- {
- Reader = new DispenserReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index/2 ).Select(x => x.Select(v => v.Value).ToList()).ToList();
- MovingAverageFilter filter = new MovingAverageFilter();
- int flowtestNumber = 0;
- for (int index = 0; index < pairs.Count(); index++)
- {
- var pair = pairs[index];
- if (pair.Count != 2)
- continue;
-
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pair[0].Index && x.Index < pair[1].Index).ToList();
-
- if (index % 2 == 1)//testing Flow-error
- {
-
- List<DispenserSample> filteredValues = rangeTestValues.Skip((int)Settings.GetValueByName(AnalyzerSettingsEnum.ExcludeAnalysis)).ToList();
-
- //Move Average data
- List<Task> tasks = new List<Task>();
- int calc_count = (int)filteredValues.Count() / 4;
- int start_index = 0;
- while (start_index < filteredValues.Count())
- {
- int calc_amount = (start_index + calc_count) >= (filteredValues.Count() - 4) ? filteredValues.Count() - start_index : calc_count;
- var source_filter = filteredValues.Skip(start_index).Take(calc_amount).ToList();
- tasks.Add(Task.Run(() =>
- {
- filter.Filtering(source_filter);
- }));
- start_index += calc_amount;
- }
- Task.WaitAll(tasks.ToArray());
-
- //calculate difference Max Min values for each 300 values
- int periodCalcMaxMin = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MaxMinRange);
- int intervalCalcMaxMin = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MaxMinIntervals);
- List<int> differenceMaxMin = new List<int>();
- List<int> differenceMaxMinToLocationArr = new List<int>();
- int location_index = 0;
- for (int i = 0; i < (filteredValues.Count - periodCalcMaxMin); i+= intervalCalcMaxMin)
- {
- var rangeItems =(filteredValues.Skip(i).Take(periodCalcMaxMin).ToList());
- int range = (int)(rangeItems.Max(t => t.Pressure) - rangeItems.Min(t => t.Pressure));
- differenceMaxMin.Add(range);
-
- differenceMaxMinToLocationArr.Add(++location_index);
- }
- FlowAverageAnalyzerResult averageResult = new FlowAverageAnalyzerResult();
- averageResult.BackgroundMode = backgroundMode;
- averageResult.AverageValue = filteredValues.Average(t => t.Pressure);
- averageResult.Result = (averageResult.AverageValue <= Settings.GetValueByName(AnalyzerSettingsEnum.AvgMaxValue) && averageResult.AverageValue >= Settings.GetValueByName(AnalyzerSettingsEnum.AvgMinValue)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(averageResult);
-
- FlowAnalyzerResult result = new FlowAnalyzerResult(++flowtestNumber);
- result.BackgroundMode = backgroundMode;
- result.AverageValue = averageResult.AverageValue;
- result.SetLocalErrors(differenceMaxMin, differenceMaxMinToLocationArr);
- results.Add(result);
- }
- else//testing PBU
- {
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- result.BackgroundMode = backgroundMode;
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + $" sec (succeed for period < {AnalyzerSettingsEnum.FlowPBUPassFail})"; ;
- result.Result = (totalsec < Settings.GetValueByName(AnalyzerSettingsEnum.FlowPBUPassFail)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- }
- }
-
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
-
- public class FlowAverageAnalyzerResult : AnalyzerResultBase
- {
- [Description("Average Value")]
- public double AverageValue { get; set; }
- public FlowAverageAnalyzerResult() : base()
- {
- AverageValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-
-
- public class FlowAnalyzerResult : AnalyzerResultBase
- {
- #region Properties
-
- [Description("Max Error")]
- public string LocalErrors { get; set; }
-
- public double AverageValue { get; set; }
-
- public int TestNumber { get; set; }
-
- #endregion Properties
-
- public FlowAnalyzerResult(int testNumber) :base()
- {
- AverageValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- TestNumber = testNumber;
- }
-
- /// <summary>
- /// Calculate result, max error. Set oxy plot column chart.
- /// </summary>
- /// <param name="differenceMaxMin">The difference maximum minimum.</param>
- public void SetLocalErrors(List<int> differenceMaxMin, List<int> differenceMaxMinToLocationArr)
- {
- // int count = differenceMaxMin.Where(x => x > 25 ).Count();
- int max_key = FindMaxErrorObject(differenceMaxMin);
- if (!BackgroundMode)
- {
- var points = RangeToCountChart.Points;
- points.Clear();
- for (int i = 0; i <= max_key; i++)
- {
- int val = differenceMaxMin.Count(x => x == i);
- if(val > 0 || points.Count > 0)
- {
- points.Add(new DataPoint(i, val));
- }
- }
- this.IsShowPlotResult = true;
- RangeToCountChart.Title = $"Local error histogram {TestNumber}";
- RangeToCountChart.UpdateData();
- }
- var rangeToTimePoints = RangeToTimeChart.Points;
- rangeToTimePoints.Clear();
- for(int y = 0; y < differenceMaxMinToLocationArr.Count && y < differenceMaxMin.Count; y++)
- {
- rangeToTimePoints.Add(new DataPoint(differenceMaxMinToLocationArr.ElementAt(y), differenceMaxMin.ElementAt(y)));
- }
- if (!BackgroundMode)
- {
- RangeToTimeChart.Title = $"Local error vs position {TestNumber}";
- RangeToTimeChart.UpdateData();
- }
-
- string filename = FileHelper.GetFileToSaveFlowRangeToTimeData(TestNumber);
- if(filename.IsNotNullOrEmpty() && rangeToTimePoints.Count > 0)
- {
- ExportnDataToExcel(rangeToTimePoints.ToList(), filename);
- }
- }
-
- private double BuildMeasurementError(List<int> range_values)
- {
- int count = range_values.Count();
- return (count - (int)Settings.GetValueByName(AnalyzerSettingsEnum.TakeOffMaxMin));
- }
-
- /// <summary>
- /// Finds the maximum error object. Init LocalErrors message. Return max range value.
- /// </summary>
- private int FindMaxErrorObject(List<int> range_values)
- {
- var countValArr = range_values.GroupBy(x => x).Select(t => new { Key = t.Key, Value = t.Count() }).OrderBy(x=>x.Key).ToArray();
- double merror = Settings.GetValueByName(AnalyzerSettingsEnum.TakeOffMaxMin);// BuildMeasurementError(range_values);
- double sum = 0;
- int max_key = 0;
- int range = 0;
- for (int i = countValArr.Count() - 1; i >= 0; i--)
- {
- sum += countValArr[i].Value;
- if (max_key == 0)
- max_key = (int)countValArr[i].Key;
- if (sum > merror)
- {
- double persentageOfError = countValArr[i].Key / AverageValue * 100;
- range = (int)countValArr[i].Key;
- int occurrence = countValArr[i].Value;
- LocalErrors = $" {persentageOfError.ToString("F2")}% where max local error = {range.ToString()} and occurrence = {occurrence.ToString()}";
- break;
- }
- }
-
- var res = range / AverageValue * 100;
- Result = res <= Settings.GetValueByName(AnalyzerSettingsEnum.MaxError) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- return max_key;
- }
-
- /// <summary>
- /// Exports the calibration data to excel.
- /// </summary>
- /// <param name="calibrationPoints">The calibration points.</param>
- /// <param name="fileName">Name of the file.</param>
- public static void ExportnDataToExcel(List<DataPoint> dataPoints, String fileName)
- {
- try
- {
- CreateDataExcelTemplate(fileName);
-
- using (ExcelWriter writer = new ExcelWriter(fileName))
- {
- writer.UpdateTableSize("RangeToTimeData", "A1:B" + (dataPoints.Count + 2).ToString());
- writer.WriteData(dataPoints, "RangeToTimeData");
- }
- }
- catch (Exception ex)
- {
- Debug.WriteLine("Error: ", ex.Message);
- }
- }
-
- /// <summary>
- /// Creates the calibration data excel template.
- /// </summary>
- /// <param name="fileName">Name of the file.</param>
- public static void CreateDataExcelTemplate(String fileName)
- {
- var stream = EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.DispenserAnalyzer.UI.Models.FlowRangeToTimeResults.xlsx");
-
- using (FileStream fs = new FileStream(fileName, FileMode.Create))
- {
- stream.Seek(0, SeekOrigin.Begin);
- stream.CopyTo(fs);
- }
- }
- }
-
- public class MovingAverageFilter
- {
- public MovingAverageFilter()
- {
- }
- public void Filtering(List<DispenserSample> source)
- {
- int periodAverage = 5;
- for (int i = 0; i < (source.Count - 5); i++)
- {
- source[i].Pressure = source.Skip(i).Take(periodAverage).Average(x => x.Pressure);
- }
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs
deleted file mode 100644
index 9288eb2ad..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PressureBuildUpAnalyser.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("pressure build up")]
- public class PressureBuildUpAnalyser : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public PressureBuildUpAnalyser()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command != null && x.Command.ToLower().Contains("label")).ToList<DispenserSample>();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- for (int index = 0; index < pairs.Count(); index++)
- {
- var pair = pairs[index];
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pair[0].Index && x.Index < pair[1].Index).ToList();
- //testing PBU
- {
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + " sec";
- result.Result = (totalsec < Settings.GetValueByName(AnalyzerSettingsEnum.PBUPassFail)) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- }
- }
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
-
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs
deleted file mode 100644
index 315c384d6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/PrimingAnalyzer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("priming")]
- public class PrimingAnalyzer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public PrimingAnalyzer()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command == "Label").ToList<DispenserSample>();
- PrimingAnalyzerResult result = new PrimingAnalyzerResult();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- //start range of test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- int avgMinIndex = rangeTestValues.Select(x => x.Index).Min();
- int avgMaxIndex = rangeTestValues.Select(x => x.Index).Max();
- double totalsec = TimeSpan.FromMilliseconds((avgMaxIndex - avgMinIndex) * 100).TotalSeconds;
- result.Time = totalsec.ToString() + " sec";
- result.Result = (totalsec <= 12 && totalsec >= 7) ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- }
- results.Add(result);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
- public class PrimingAnalyzerResult : AnalyzerResultBase
- {
- [Description("PBU Time")]
- public String Time { get; set; }
-
-
- public PrimingAnalyzerResult()
- {
- Time = "";
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs
deleted file mode 100644
index 663b72228..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ProcessAnalyser.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("process")]
- public class ProcessAnalyser : IProcessAnalyzer
- {
- private IReader<ProcessSample> _reader;
- public IReader<ProcessSample> Reader {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public ProcessAnalyser()
- {
- Reader = new ProcessReader();
- }
-
- public Task<List<IAnalyzerResult>> Process(List<ProcessSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- ProcessAnalyzerResult result = new ProcessAnalyzerResult();
- result.BackgroundMode = backgroundMode;
- double delta = Settings.GetValueByName(AnalyzerSettingsEnum.TimeInterval);
- int startPoint = delta == 0? 0 : (int)(Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation) / delta);
- int endPoint = delta == 0 ? (csvRows.Count -1) : (int)(Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation) / delta);
- int takePoints = endPoint > startPoint ? (endPoint - startPoint) : (csvRows.Count - 1 - startPoint);
-
- List<ProcessSample> rangeValues = csvRows.Skip(startPoint).Take(takePoints).ToList();
-
- result.MinValue = rangeValues.Min(x => x.Value);
- result.MaxValue = rangeValues.Max(x => x.Value);
- result.AverageValue = rangeValues.Average(x => x.Value);
- result.StandardDeviation = ProcessAnalyser.StdDev(rangeValues.Select(x => x.Value));
-
- result.Result = AnalyzerResultValue.Passed;
-
- //Move Average data
- List<Task> tasks = new List<Task>();
- int calc_count = (int)csvRows.Count() / 4;
- int start_index = 0;
- while (start_index < csvRows.Count())
- {
- int calc_amount = (start_index + calc_count) >= (csvRows.Count() - 4) ? csvRows.Count() - start_index : calc_count;
- var source_filter = csvRows.Skip(start_index).Take(calc_amount).ToList();
- tasks.Add(Task.Run(() =>
- {
- ProcessAnalyser.Filtering(source_filter);
- }));
- start_index += calc_amount;
- }
- Task.WaitAll(tasks.ToArray());
-
- result.CreateMovingAvgGraph(csvRows);
- results.Add(result);
- return results;
- });
- }
-
- public static double StdDev(IEnumerable<double> values)
- {
- double avg = values.Average();
- double sum = values.Sum(v => (v - avg) * (v - avg));
- double denominator = values.Count() - 1;
- return denominator > 0.0 ? Math.Sqrt(sum / denominator) : -1;
- }
- public static void Filtering(List<ProcessSample> source)
- {
- int periodAverage = (int)Settings.GetValueByName(AnalyzerSettingsEnum.MovingAvg);
- int count = (source.Count < periodAverage) ? source.Count : source.Count - periodAverage;
- for (int i = 0; i < count; i++)
- {
- source[i].Value = source.Skip(i).Take(periodAverage).Average(x => x.Value);
- }
- }
-
- public void GetPoints(List<ProcessSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- points.Add(new OxyPlot.DataPoint(x.TimeIntervalSec, x.Value));
- });
- }
-
- }
-
- public class ProcessAnalyzerResult : AnalyzerResultBase
- {
- [Description("Selected Area")]
- public string Header { get; set; }
-
- [Description("Average Value")]
- public double AverageValue { get; set; }
- [Description("Max value")]
- public double MaxValue { get; set; }
- [Description("Min value")]
- public double MinValue { get; set; }
- [Description("Standard deviation value")]
- public double StandardDeviation { get; set; }
-
-
- public ProcessAnalyzerResult()
- {
- double from = Settings.GetValueByName(AnalyzerSettingsEnum.StartCalculation);
- double to = Settings.GetValueByName(AnalyzerSettingsEnum.EndCalculation);
- Header = $"from {from} to {to} seconds";
- AverageValue = MaxValue = MinValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- IsShowLineChartResult = true;
- }
-
- public void CreateMovingAvgGraph(List<ProcessSample> avgValues)
- {
- if (!BackgroundMode)
- {
- var points = LineChart.Points;
- points.Clear();
- avgValues.ForEach(x =>
- {
- points.Add(new OxyPlot.DataPoint(x.TimeIntervalSec, x.Value));
- });
-
- LineChart.Title = $"Moving Average Values";
- LineChart.UpdateData();
- }
- }
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs
deleted file mode 100644
index 05a0aa32c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/ReliabilityTestAnalyser.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("Reliability")]
- public class ReliabilityTestAnalyser: FlowAnalyser
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs
deleted file mode 100644
index 841101b10..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Analyzers/SealingAnalyzer.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using Tango.DispenserAnalyzer.UI.Models;
-
-namespace Tango.DispenserAnalyzer.UI.Analyzers
-{
- [Analyzer("sealtest")]
- public class SealingAnalyzer : IDispenserDispenserAnalyser
- {
- private IReader<DispenserSample> _reader;
- public IReader<DispenserSample> Reader
- {
- get { return _reader; }
- set { _reader = value; }
- }
-
- public SealingAnalyzer()
- {
- Reader = new DispenserReader();
- }
- public Task<List<IAnalyzerResult>> Process(List<DispenserSample> csvRows, bool backgroundMode)
- {
- return Task.Factory.StartNew<List<IAnalyzerResult>>(() =>
- {
- List<IAnalyzerResult> results = new List<IAnalyzerResult>();
- List<DispenserSample> commands = csvRows.Where(x => x.Command!= null && x.Command.ToLower().Contains("label")).ToList< DispenserSample>();
- SealingAnalyzerResult result = new SealingAnalyzerResult();
- var pairs = commands.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index /2).Select(x => x.Select(v => v.Value).ToList()).ToList();
- //start range of test
- if (pairs.Count > 0 && pairs[0].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[0][0].Index && x.Index < pairs[0][1].Index).ToList();
- result.AverageStartTestValue = rangeTestValues.Average(t => t.Pressure);
- }
- //end range of test
- if (pairs.Count > 1 && pairs[1].Count > 1)
- {
- List<DispenserSample> rangeTestValues = csvRows.Where(x => x.Index > pairs[1][0].Index && x.Index < pairs[1][1].Index).ToList();
- result.AverageEndTestValue = rangeTestValues.Average(t => t.Pressure); ;
- }
- result.AbsoluteTestValue = Math.Abs(result.AverageEndTestValue - result.AverageStartTestValue);
- result.Result = result.AbsoluteTestValue < 8 ? AnalyzerResultValue.Passed : AnalyzerResultValue.Failed;
- results.Add(result);
- return results;
- });
- }
-
- public void GetPoints(List<DispenserSample> samples, IList<OxyPlot.DataPoint> points)
- {
- samples.ForEach(x =>
- {
- if (x.Pressure != 0.0)
- { points.Add(new OxyPlot.DataPoint(x.Index, x.Pressure)); }
- });
- }
- }
-
- public class SealingAnalyzerResult : AnalyzerResultBase
- {
- [Description("Average Start Test Value")]
- public double AverageStartTestValue { get; set; }
- [Description("Average End Test Value")]
- public double AverageEndTestValue { get; set; }
- [Description("Absolute Value")]
- public double AbsoluteTestValue { get; set; }
- public SealingAnalyzerResult()
- {
- AverageStartTestValue = 0.0;
- AverageEndTestValue = 0.0;
- AbsoluteTestValue = 0.0;
- Result = AnalyzerResultValue.Undetermined;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config
deleted file mode 100644
index ddc8cb7a6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.config
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml
deleted file mode 100644
index 8969f50af..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml
+++ /dev/null
@@ -1,56 +0,0 @@
-<Application x:Class="Tango.DispenserAnalyzer.UI.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI"
- Startup="Application_Startup">
- <Application.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/materialdesigncolor.lightblue.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/materialdesigncolor.yellow.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.TextBlock.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Label.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Slider.xaml">
- </ResourceDictionary>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.ProgressBar.xaml"/>
- <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ComboBox.xaml" />
-
- </ResourceDictionary.MergedDictionaries>
- <FontFamily x:Key="FontName">Segoe UI</FontFamily>
- <FontFamily x:Key="NotesFont">Lucida Console</FontFamily>
-
- <sys:Double x:Key="ExtraExtraLargeFontSize">28</sys:Double>
- <sys:Double x:Key="ExtraLargeFontSize">26</sys:Double>
- <sys:Double x:Key="LargeFontSize">20</sys:Double>
- <sys:Double x:Key="MediumFontSize">16</sys:Double>
- <sys:Double x:Key="SmallFontSize">14</sys:Double>
- <sys:Double x:Key="MiniFontSize">12</sys:Double>
- <sys:Double x:Key="TinyFontSize">9</sys:Double>
- </ResourceDictionary>
- </Application.Resources>
-</Application>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs
deleted file mode 100644
index f3bce6c99..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/App.xaml.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- private void Application_Startup(object sender, StartupEventArgs e)
- {
- MainWindow wnd = new MainWindow();
-
- string[] args = null;
- if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null)
- {
- string[] inputArgs = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
-
- if (inputArgs != null && inputArgs.Length > 0)
- {
- char[] spearator = { ','};
- args = inputArgs[0].Split(spearator);
- }
- }
- else if (e.Args.Length > 0)
- {
- char[] spearator = { ',' };
- args = e.Args[0].Split(spearator);
- }
- if(args != null && args.Length > 0)
- {
- //MessageBox.Show("Before generate" + String.Join(" ", args));
- wnd.GenerateResultsInBackground(args);
- }
- else
- {
- wnd.Show();
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs
deleted file mode 100644
index 7172a4ff1..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/FileHelper.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- public static class FileHelper
- {
- private const string FILE_EXTENSION = ".pdf";
- private const string FILE_EXEL_EXTENSION = ".xlsx";
-
- public static string OpenFilePath{ get; set; }
-
- public static string GetResultFilePath()
- {
- if (File.Exists(OpenFilePath))
- {
- var ext = Path.GetExtension(OpenFilePath);
- var dir = Path.GetDirectoryName(OpenFilePath);
- var resultFile = Path.Combine(dir, string.Format("{0}-result{1}", Path.GetFileNameWithoutExtension(OpenFilePath), FILE_EXTENSION));
- return resultFile;
- }
- return "";
- }
-
- public static string GetFileToSaveFlowRangeToTimeData( int extNumber)
- {
- if (File.Exists(OpenFilePath))
- {
- var ext = Path.GetExtension(OpenFilePath);
- var dir = Path.GetDirectoryName(OpenFilePath);
- var resultFile = Path.Combine(dir, string.Format("{0}_rangeToTime{1}{2}", Path.GetFileNameWithoutExtension(OpenFilePath), extNumber.ToString(), FILE_EXEL_EXTENSION));
- return resultFile;
- }
- return "";
- }
-
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml
deleted file mode 100644
index 595d74e3d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml
+++ /dev/null
@@ -1,198 +0,0 @@
-<Window x:Class="Tango.DispenserAnalyzer.UI.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:oxy="http://oxyplot.org/wpf"
- xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
- xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
- xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI"
- xmlns:vm ="clr-namespace:Tango.DispenserAnalyzer.UI.ViewModels"
- mc:Ignorable="d"
- Title="{Binding WindowTitle, RelativeSource={RelativeSource Mode=Self}}" Height="1000" Width="860" WindowStartupLocation="CenterScreen" WindowStyle="SingleBorderWindow" ResizeMode="CanResize" Foreground="#202020"
- d:DataContext="{d:DesignInstance Type=vm:MainWindowVM, IsDesignTimeCreatable=False}">
- <Window.Resources>
- <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
- <converters:IsNullToVisibilityConverter x:Key="IsNullToVisibilityConverter"/>
- <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
- <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" />
- <Style TargetType="ScrollBar">
- <Setter Property="Background" Value="#B9E7E9E9"/>
- </Style>
- </Window.Resources>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="80"/>
- <RowDefinition Height="60"/>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="40*"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid Grid.Row="0" Margin="10 20 10 20">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*"></ColumnDefinition>
- <ColumnDefinition Width="100"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <TextBox x:Name="tbPath" BorderThickness="1" FontSize="16" VerticalContentAlignment="Center" IsReadOnly="False" Grid.Column="0" Margin="0 0 20 0" Text="{Binding OpenFilePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AllowDrop="True" PreviewDrop="TextBlock_PreviewDrop" PreviewDragOver="TextBox_PreviewDragOver" BorderBrush="Silver" Padding="5 0 0 0 "></TextBox>
- <Button Grid.Column="1" Command="{Binding OpenCSVFileCommand}">Browse</Button>
- </Grid>
- <Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="10 0 20 20">
- <Button Command="{Binding GenerateCommand}" Content="{Binding ButtonName}" Margin="0 0 30 0"></Button>
- <Button Command="{Binding OpenSettingWndCommand}" HorizontalAlignment="Right" VerticalAlignment="Center" Width="20" Height="20" Margin="0 0 0 0" Padding="0" Style="{StaticResource MaterialDesignFlatButton}" ToolTip="Open Setting Window">
- <materialDesign:PackIcon Kind="Settings" Width="16" Height="16" VerticalAlignment="Center"></materialDesign:PackIcon>
- </Button>
- </Grid>
- <Grid Grid.Row="2">
- <Border BorderBrush="Silver" Padding="5" BorderThickness="1" CornerRadius="5" Margin="10">
- <Expander IsExpanded="True">
- <Expander.Header>
- <Grid >
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="1*" />
- <ColumnDefinition Width="auto" />
- </Grid.ColumnDefinitions>
- <TextBlock Padding="0" Text="{Binding TestName}" Margin="10,0,0,0" VerticalAlignment="Center" FontWeight="DemiBold"/>
- <materialDesign:PackIcon Grid.Column="1" Kind="Information" Width="24" Height="24" VerticalAlignment="Center" Foreground="#03A9F4" Background="Transparent">
- <materialDesign:PackIcon.ToolTip>
- <TextBlock>
- <Run Text="Panning: CTRL + RIGHT CLICK and select area;"></Run>
- <LineBreak/>
- <Run Text="Zooming: MOUSE WHEEL on Axis Area;"></Run>
- <LineBreak/>
- <Run Text="Reset all : CTRL + DOUBLE RIGHT CLICK;"></Run>
- </TextBlock>
- </materialDesign:PackIcon.ToolTip>
- </materialDesign:PackIcon>
- </Grid>
- </Expander.Header>
- <oxy:Plot Title="{Binding TestName}" x:Name="PressurePlot" Height="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding Points}" Color="#73B6EC" MarkerType="None"/>
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "{Binding TitleAxisBottom}" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True"/>
- <oxy:LinearAxis Position="Left" Title = "{Binding TitleAxisLeft}" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding From}" Maximum="{Binding To}"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </Expander>
- </Border>
- </Grid>
-
- <Border Visibility="Visible" BorderThickness="1" BorderBrush="Silver" CornerRadius="5" Margin="10" Grid.Row="3">
- <DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <Label Height="30" Content="RESULT" Background="LightSkyBlue" Grid.Row="0" DockPanel.Dock="Top" />
-
- <ScrollViewer VerticalScrollBarVisibility="Auto" Visibility="Visible" Focusable="True" Foreground="Black" Margin="5"
- Style="{StaticResource {x:Type ScrollViewer}}">
- <ScrollViewer.Resources>
- <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">15</sys:Double>
- </ScrollViewer.Resources>
- <ItemsControl x:Name="resultItems" ItemsSource="{Binding AnalyzerResults}" Margin="0 0 10 10 ">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border HorizontalAlignment="Stretch" Margin="10 10 0 0" VerticalAlignment="Stretch" BorderThickness="1" BorderBrush="Silver">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="1*"/>
- <ColumnDefinition Width="100"/>
- </Grid.ColumnDefinitions>
- <StackPanel Orientation="Vertical" Margin="5" Grid.Column="0">
- <ItemsControl ItemsSource="{Binding Properties}" >
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Vertical" Margin="5">
- <TextBlock Margin="5 0 0 0" FontSize="12"><Run Text="{Binding Name}"></Run> <Run Text=" : "></Run><Run Text="{Binding Value,StringFormat=0}"></Run></TextBlock>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- <Border x:Name="PlotBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowPlotResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="PlotStackPanel">
- <oxy:Plot Title="{Binding RangeToCountChart.Title}" x:Name="RangeToCountPlot" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" Loaded="RangeToCountPlot_Loaded" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:ColumnSeries ItemsSource="{Binding RangeToCountChart.Points}" Color="#73B6EC" StrokeThickness="1" FillColor="#73B6EC" ValueField="Y" LabelFormatString="{}{0}" LabelPlacement="Base" />
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:CategoryAxis Position="Bottom" Title = "Max-min \ range [mbar]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" ItemsSource="{Binding RangeToCountChart.Points}" LabelField="X" IsZoomEnabled="False"/>
- <oxy:LinearAxis Position="Left" Title = "Count" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" Minimum="0" MinimumPadding="5" AbsoluteMinimum="0" IsZoomEnabled="False"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- <Border x:Name="RangeToTimeBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowPlotResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="RangeToTimeStackPanel">
- <oxy:Plot Title="{Binding RangeToTimeChart.Title}" x:Name="RangeToTimePlot" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding RangeToTimeChart.Points}" Color="#73B6EC" StrokeThickness="1" MarkerFill="SteelBlue" />
- </oxy:Plot.Series>
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "Location" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True"/>
- <oxy:LinearAxis Position="Left" Title = "Max-min \ range [mbar]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" Minimum="{Binding RangeToTimeChart.FromYAxis}" Maximum="{Binding RangeToTimeChart.ToYAxis}"/>
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- <Border x:Name="ChartBorder" BorderBrush="Silver" Padding="2" BorderThickness="1" CornerRadius="5" Margin="10" Visibility="{Binding IsShowLineChartResult, Converter={StaticResource BooleanToVisibilityConverter}}" MinHeight="300">
- <StackPanel Orientation="Vertical" x:Name="ChartStackPanel">
- <!--<StackPanel Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center">MinDisplayValue</TextBlock>
- <TextBox VerticalAlignment="Center" Margin="10 0 30 0" x:Name="MinFilter" Text="{Binding LineChart.FromXAxis, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Delay=10}" FontWeight="DemiBold" FontSize="14" Foreground="Blue"></TextBox>
- <TextBlock VerticalAlignment="Center" >MaxDisplayValue</TextBlock>
- <TextBox Margin="10 0 10 0" x:Name="MaxFilter" Text="{Binding LineChart.ToXAxis,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Delay=10}" FontWeight="DemiBold" FontSize="14" Foreground="Blue"></TextBox>
- </StackPanel>-->
- <oxy:Plot x:Name="ChartProcess" Title="{Binding LineChart.Title}" LegendPlacement="Outside" LegendPosition="RightTop" LegendOrientation="Vertical" ClipToBounds="True" MinWidth="220" MinHeight="300">
- <oxy:Plot.Series >
- <oxy:LineSeries ItemsSource="{Binding LineChart.Points}" Color="#73B6EC" MarkerType="None"/>
- </oxy:Plot.Series>
-
- <oxy:Plot.Axes>
- <oxy:LinearAxis Position="Bottom" Title = "Time [msec]" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" Minimum="{Binding LineChart.FromXAxis}" Maximum="{Binding LineChart.ToXAxis}"/>
- <oxy:LinearAxis Position="Left" Title = "Value" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" IsZoomEnabled="True" />
- </oxy:Plot.Axes>
- </oxy:Plot>
- </StackPanel>
- </Border>
- </StackPanel>
- <Border Grid.Column="1" HorizontalAlignment="Center" Margin="10 0 0 0" VerticalAlignment="Center">
- <materialDesign:PackIcon Kind="{Binding Result, Converter= {StaticResource EnumToDescriptionConverter}}" Width="60" Height="60" HorizontalContentAlignment="Center" VerticalAlignment="Center" >
- <materialDesign:PackIcon.Style>
- <Style TargetType="materialDesign:PackIcon">
- <Setter Property="Foreground" Value="Orange"></Setter>
- <Style.Triggers>
- <Trigger Property="Kind" Value="Check">
- <Setter Property="Foreground" Value="green"></Setter>
- </Trigger>
- <Trigger Property="Kind" Value="CloseCircle">
- <Setter Property="Foreground" Value="Red"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
- </materialDesign:PackIcon.Style>
- </materialDesign:PackIcon>
- </Border>
- </Grid>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </ScrollViewer>
-
- </DockPanel>
- </Border>
-
-
- <Grid Grid.Row="1" Grid.RowSpan="3"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Visibility="{Binding IsRunning, Converter={StaticResource BooleanToVisibilityConverter}}"
- Background="#8BFFFFFF">
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
- <TextBlock Text="Loading..." FontStyle="Italic" FontSize="30" VerticalAlignment="Center"></TextBlock>
- </StackPanel>
- </Grid>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs
deleted file mode 100644
index e7d263a1c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/MainWindow.xaml.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using OxyPlot;
-using OxyPlot.Axes;
-using System;
-using System.Threading.Tasks;
-using System.Windows;
-using Tango.DispenserAnalyzer.UI.ViewModels;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- private MainWindowVM _vm;
-
- public string WindowTitle
- {
- get
- {
- Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
- return "Dispenser Analyzer - Version" + version;
- }
- }
-
-
- public MainWindow()
- {
- InitializeComponent();
- _vm = new MainWindowVM();
- DataContext = _vm;
- _vm.PlotControl = PressurePlot;
- _vm.ResultsPanel = resultItems;
-
- foreach (var ax in PressurePlot.Axes)
- ax.Maximum = ax.Minimum = Double.NaN;
- }
-
- public async void GenerateResultsInBackground( string[] filePathArr)
- {
- if(_vm != null)
- {
- for (int index = 0; index < filePathArr.Length; index++)
- {
- await _vm.GenerateInBackground(filePathArr[index]);
- if(index < filePathArr.Length)
- {
- await Task.Delay(500);
- }
- }
- }
- await Task.Delay(500);
- Application.Current.Shutdown();
- }
-
- private void TextBlock_PreviewDrop(object sender, DragEventArgs e)
- {
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- if (files != null && files.Length != 0 && System.IO.Path.GetExtension(files[0]).ToUpperInvariant() == ".CSV")
- {
- tbPath.Text = files[0];
- }
- e.Handled = true;
- }
-
- private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
- {
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- if (files == null || files.Length == 0 || System.IO.Path.GetExtension(files[0]).ToUpperInvariant() != ".CSV")
- {
- e.Effects = DragDropEffects.None;
- e.Handled = true;
- }
- else
- {
- e.Effects = DragDropEffects.All;
- e.Handled = true;
- }
- }
-
- private void RangeToCountPlot_Loaded(object sender, RoutedEventArgs e)
- {
- var element = (FrameworkElement)sender;
-
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs
deleted file mode 100644
index e3f270ab0..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserCsvRow.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class DispenserCsvRow
- {
- [CsvOrder(0)]
- public String Pressure { get; set; }
- [CsvOrder(1)]
- public String Label { get; set; }
- [CsvOrder(2)]
- public String Command { get; set; }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs
deleted file mode 100644
index 899aaa600..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSample.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class DispenserSample: ISample
- {
- public double Pressure { get; set; }
- public String Command { get; set; }
- public int Index { get; set; }
-
- public override string ToString()
- {
- return $"{Pressure}, {Command}";
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs
deleted file mode 100644
index 15b0008d4..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/DispenserSampleCommand.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public enum DispenserSampleCommand
- {
- LB1,
- LB2,
- LB3,
- LB4
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx
deleted file mode 100644
index 5f0e4b651..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/FlowRangeToTimeResults.xlsx
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs
deleted file mode 100644
index ea374a846..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ISample.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public interface ISample
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs
deleted file mode 100644
index 33e85d5b5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessCsvRow.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.CSV;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class ProcessCsvRow
- {
- [CsvOrder(0)]
- public String Time { get; set; }
- [CsvOrder(1)]
- public String Value { get; set; }
- }
-} \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs
deleted file mode 100644
index 3f02ea35d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/ProcessSample.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public class ProcessSample : ISample
- {
- public double TimeIntervalSec { get; set; }
- public DateTime Time { get; set; }
- public double Value { get; set; }
-
- public ProcessSample()
- {
- Value = 0.0;
- }
-
- public override string ToString()
- {
- return $"{TimeIntervalSec}, {Value}";
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs
deleted file mode 100644
index 5540e4b25..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Models/SettingsModel.cs
+++ /dev/null
@@ -1,147 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core;
-using Tango.Core.Commands;
-
-namespace Tango.DispenserAnalyzer.UI.Models
-{
- public interface ISettingsModel
- {
- string PropertyName { get; set; }
- double PropertyValue { get; set; }
- double DefaultValue { get; set; }
- string DefaultValueDisplay { get; set; }
- double MinRangeValue { get; set; }
- double MaxRangeValue { get; set; }
- bool IsRangeVisible { get; set; }
- }
-
- public class SettingsModel: ExtendedObject, ISettingsModel
- {
- public AnalyzerSettingsEnum _enumName;
- private string _propertyName;
-
- public string PropertyName
- {
- get { return _propertyName; }
- set { _propertyName = value; RaisePropertyChangedAuto(); }
- }
-
- private double _propertyvalue;
-
- public double PropertyValue
- {
- get { return _propertyvalue; }
- set {
- if( _propertyvalue != value)
- {
- _propertyvalue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
-
- private void OnPropertyvalueChanged()
- {
- if(SettingValueEvent != null)
- {
- SettingValueEvent?.Invoke(this, new EventArgs());
- }
-
- }
-
- private double _defaultValue;
-
- public double DefaultValue
- {
- get { return _defaultValue; }
- set { _defaultValue = value; RaisePropertyChangedAuto(); }
- }
-
- private string _defaultValueDisplay;
-
- public string DefaultValueDisplay
- {
- get { return _defaultValueDisplay; }
- set { _defaultValueDisplay = value; }
- }
-
- private double _minDefaultRangeValue;
- public double MinDefaultRangeValue
- {
- get { return _minDefaultRangeValue; }
- set { _minDefaultRangeValue = value; RaisePropertyChangedAuto(); }
- }
-
- private double _maxDefaultRangeValue;
- public double MaxDefaultRangeValue
- {
- get { return _maxDefaultRangeValue; }
- set { _maxDefaultRangeValue = value; RaisePropertyChangedAuto(); }
- }
-
- private double _minRangeValue;
- public double MinRangeValue
- {
- get { return _minRangeValue; }
- set {
- if (_minRangeValue != value)
- {
- _minRangeValue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
-
- private double _maxRangeValue;
- public double MaxRangeValue
- {
- get { return _maxRangeValue; }
- set {
- if (_maxRangeValue != value)
- {
- _maxRangeValue = value;
- RaisePropertyChangedAuto();
- OnPropertyvalueChanged();
- }
- }
- }
- public bool IsRangeVisible { get; set; }
-
- public event EventHandler SettingValueEvent;
-
- public RelayCommand SetDefaultCommand { get; set; }
-
-
- public SettingsModel(AnalyzerSettingsEnum enumName, string defaultValueDisplay, bool isrange = false)
- {
- _enumName = enumName;
- PropertyName = _enumName.ToDescription();
- DefaultValueDisplay = defaultValueDisplay;
- DefaultValue = Settings.GetDefaultValueByName(enumName);
- PropertyValue = Settings.GetValueByName(enumName);
- IsRangeVisible = isrange;
- MinDefaultRangeValue = IsRangeVisible ? Settings.GetDefaultValueByName(AnalyzerSettingsEnum.AvgMinValue) : 0.0;
- MaxDefaultRangeValue = IsRangeVisible ? Settings.GetDefaultValueByName(AnalyzerSettingsEnum.AvgMaxValue) : 0.0;
- MinRangeValue = IsRangeVisible? Settings.GetValueByName(AnalyzerSettingsEnum.AvgMinValue) : 0.0;
- MaxRangeValue = IsRangeVisible? Settings.GetValueByName(AnalyzerSettingsEnum.AvgMaxValue) : 0.0;
- SetDefaultCommand = new RelayCommand(SetDefault);
- }
-
- private void SetDefault()
- {
- if(IsRangeVisible)
- {
- MinRangeValue = MinDefaultRangeValue;
- MaxRangeValue = MaxDefaultRangeValue;
- return;
- }
- PropertyValue = DefaultValue;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6438e7278..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Dispenser Analyzer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Twine")]
-[assembly: AssemblyProduct("Dispenser Analyzer")]
-[assembly: AssemblyCopyright("Copyright © 2019")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.1.1.3")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: NeutralResourcesLanguage("en-AS")]
-
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs
deleted file mode 100644
index 2b3284e18..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.DispenserAnalyzer.UI.Properties
-{
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.DispenserAnalyzer.UI.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx
deleted file mode 100644
index af7dbebba..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs
deleted file mode 100644
index abad5ee82..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.DispenserAnalyzer.UI.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs
deleted file mode 100644
index d515a0940..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Settings.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Tango.DispenserAnalyzer.UI
-{
- public enum AnalyzerSettingsEnum
- {
- [Description("Print Results to PDF file")]
- PrintResultsToPDF,
- [Description("PBU Pass fail")]
- PBUPassFail,
- [Description("PBU Pass fail")]
- FlowPBUPassFail,
- [Description("Exclude from analysis")]
- ExcludeAnalysis,
- [Description("Avg value")]
- AvgMaxValue,
- [Description("Avg value")]
- AvgMinValue,
- [Description("Max-Min range")]
- MaxMinRange,
- [Description("Max Min intervals")]
- MaxMinIntervals,
- [Description("Max error")]
- MaxError,
- [Description("Take off 'Max-min' values(out of highest results)")]
- TakeOffMaxMin,
- [Description("Time gap between data point [sec]")]
- TimeInterval,
- [Description("Time point to start calculation [sec]")]
- StartCalculation,
- [Description("Time point to end calculation [sec]")]
- EndCalculation,
- [Description("How many points to use for moving average")]
- MovingAvg
-
-
- }
-
- public static class Settings
- {
- public static Dictionary<AnalyzerSettingsEnum, double> DefaultValues { get; set; }
- public static Dictionary<AnalyzerSettingsEnum, double> CurrentValues { get; set; }
-
- static Settings()
- {
- DefaultValues = new Dictionary<AnalyzerSettingsEnum, double>();
- DefaultValues[AnalyzerSettingsEnum.PBUPassFail] = 4.5;
- DefaultValues[AnalyzerSettingsEnum.FlowPBUPassFail] = 4.5;
- DefaultValues[AnalyzerSettingsEnum.ExcludeAnalysis] = 1800;
- DefaultValues[AnalyzerSettingsEnum.AvgMinValue] = 1400;
- DefaultValues[AnalyzerSettingsEnum.AvgMaxValue] = 1850;
- DefaultValues[AnalyzerSettingsEnum.MaxMinRange] = 450;
- DefaultValues[AnalyzerSettingsEnum.MaxMinIntervals] = 450;
- DefaultValues[AnalyzerSettingsEnum.MaxError] = 1.5;
- DefaultValues[AnalyzerSettingsEnum.TakeOffMaxMin] = 3;
- DefaultValues[AnalyzerSettingsEnum.TimeInterval] = 0.1;
- DefaultValues[AnalyzerSettingsEnum.StartCalculation] = 600;
- DefaultValues[AnalyzerSettingsEnum.EndCalculation] = 900;
- DefaultValues[AnalyzerSettingsEnum.MovingAvg] = 50;
-
- CurrentValues = new Dictionary<AnalyzerSettingsEnum, double>(DefaultValues);
-
- }
- public static double GetValueByName(AnalyzerSettingsEnum name)
- {
- double value;
- if (CurrentValues.TryGetValue(name, out value))
- {
- return value;
- }
- return 0.0;
- }
- public static void SetValueByName(AnalyzerSettingsEnum name, double value)
- {
- CurrentValues[name] = value;
- }
- public static double GetDefaultValueByName(AnalyzerSettingsEnum name)
- {
- double value;
- if (DefaultValues.TryGetValue(name, out value))
- {
- return value;
- }
- return 0.0;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj
deleted file mode 100644
index 51d693d88..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/Tango.DispenserAnalyzer.UI.csproj
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{D74893F2-9E39-4C72-BDD4-937404E1FC37}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>Tango.DispenserAnalyzer.UI</RootNamespace>
- <AssemblyName>Tango.DispenserAnalyzer.UI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <PublishUrl>P:\Dispenser Analyzer Installer\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Background</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <TargetCulture>en</TargetCulture>
- <ProductName>Dispenser Analyser</ProductName>
- <PublisherName>Twine</PublisherName>
- <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
- <ApplicationRevision>4</ApplicationRevision>
- <ApplicationVersion>3.1.1.%2a</ApplicationVersion>
- <UseApplicationTrust>true</UseApplicationTrust>
- <CreateDesktopShortcut>true</CreateDesktopShortcut>
- <PublishWizardCompleted>true</PublishWizardCompleted>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\Build\DispenserAnalyzer\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\Build\DispenserAnalyzer\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <ManifestCertificateThumbprint>E5B326DBA5A7604EBB456C9664FBF874933BA54E</ManifestCertificateThumbprint>
- </PropertyGroup>
- <PropertyGroup>
- <ManifestKeyFile>Tango.DispenserAnalyzer.UI_TemporaryKey.pfx</ManifestKeyFile>
- </PropertyGroup>
- <PropertyGroup>
- <GenerateManifests>true</GenerateManifests>
- </PropertyGroup>
- <PropertyGroup>
- <SignManifests>true</SignManifests>
- </PropertyGroup>
- <PropertyGroup>
- <ApplicationIcon>twin.ico</ApplicationIcon>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="MahApps.Metro">
- <HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
- </Reference>
- <Reference Include="MaterialDesignColors">
- <HintPath>..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
- </Reference>
- <Reference Include="MaterialDesignThemes.Wpf">
- <HintPath>..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
- </Reference>
- <Reference Include="MathNet.Numerics, Version=4.9.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\MathNet.Numerics.4.9.0\lib\net461\MathNet.Numerics.dll</HintPath>
- </Reference>
- <Reference Include="OxyPlot, Version=2.0.0.0, Culture=neutral, PublicKeyToken=638079a8f0bd61e9, processorArchitecture=MSIL">
- <HintPath>..\..\packages\OxyPlot.Core.2.0.0\lib\net45\OxyPlot.dll</HintPath>
- </Reference>
- <Reference Include="OxyPlot.Wpf, Version=2.0.0.0, Culture=neutral, PublicKeyToken=75e952ba404cdbb0, processorArchitecture=MSIL">
- <HintPath>..\..\packages\OxyPlot.Wpf.2.0.0\lib\net45\OxyPlot.Wpf.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp-WPF">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp-WPF.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp.Charting, Version=1.50.5147.0, Culture=neutral, PublicKeyToken=f94615aa0424f9eb, processorArchitecture=MSIL">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll</HintPath>
- </Reference>
- <Reference Include="PdfSharp.Xps">
- <HintPath>..\..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Xps.dll</HintPath>
- </Reference>
- <Reference Include="ReachFramework" />
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Numerics" />
- <Reference Include="System.Printing" />
- <Reference Include="System.Runtime.Serialization" />
- <Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Compile Include="Analysis\AnalyserResultChartData.cs" />
- <Compile Include="Analysis\AnalysisPlotValue.cs" />
- <Compile Include="Analysis\AnalyzerResultProperty.cs" />
- <Compile Include="Analysis\AnalyzerResultBase.cs" />
- <Compile Include="Analysis\AnalyzerResultValue.cs" />
- <Compile Include="Analysis\AnalysisService.cs" />
- <Compile Include="Analysis\DispenserReader.cs" />
- <Compile Include="Analysis\IAnalyzerResult.cs" />
- <Compile Include="Analysis\IAnalyzer.cs" />
- <Compile Include="Analysis\IReader.cs" />
- <Compile Include="Analysis\ProcessReader.cs" />
- <Compile Include="Analyzers\DynamicSealingAnalyzer.cs" />
- <Compile Include="Analyzers\FlowAnalyser.cs" />
- <Compile Include="Analyzers\PressureBuildUpAnalyser.cs" />
- <Compile Include="Analyzers\PrimingAnalyzer.cs" />
- <Compile Include="Analyzers\ProcessAnalyser.cs" />
- <Compile Include="Analyzers\ReliabilityTestAnalyser.cs" />
- <Compile Include="Analyzers\SealingAnalyzer.cs" />
- <Compile Include="Analysis\AnalyzerAttribute.cs" />
- <Compile Include="FileHelper.cs" />
- <Compile Include="Models\DispenserCsvRow.cs" />
- <Compile Include="Models\DispenserSample.cs" />
- <Compile Include="Models\DispenserSampleCommand.cs" />
- <Compile Include="Models\ISample.cs" />
- <Compile Include="Models\ProcessCsvRow.cs" />
- <Compile Include="Models\ProcessSample.cs" />
- <Compile Include="Models\SettingsModel.cs" />
- <Compile Include="Settings.cs" />
- <Compile Include="ViewModels\MainWindowVM.cs" />
- <Compile Include="ViewModels\SettingsVM.cs" />
- <Compile Include="View\SettingsWnd.xaml.cs">
- <DependentUpon>SettingsWnd.xaml</DependentUpon>
- </Compile>
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Page Include="View\SettingsWnd.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <EmbeddedResource Include="Models\FlowRangeToTimeResults.xlsx" />
- <None Include="packages.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- <None Include="Tango.DispenserAnalyzer.UI_TemporaryKey.pfx" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.CSV\Tango.CSV.csproj">
- <Project>{58e8825f-0c96-449c-b320-1e82b0aa876b}</Project>
- <Name>Tango.CSV</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Documents\Tango.Documents.csproj">
- <Project>{ca87a608-7b17-4c98-88f2-42abee10f4c1}</Project>
- <Name>Tango.Documents</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj">
- <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
- <Name>Tango.SharedUI</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Folder Include="Converters\" />
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.6.1 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <ItemGroup>
- <Resource Include="twin.ico" />
- </ItemGroup>
- <ItemGroup />
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml
deleted file mode 100644
index d8d4594b8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml
+++ /dev/null
@@ -1,213 +0,0 @@
-<Window x:Class="Tango.DispenserAnalyzer.UI.View.SettingsWnd"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
- xmlns:local="clr-namespace:Tango.DispenserAnalyzer.UI.View"
- mc:Ignorable="d"
- Title="Settings" Height="690" Width="800" FontSize="22" ResizeMode="NoResize" WindowStyle="ToolWindow" Closing="Window_Closing">
- <Window.Resources>
- <Style TargetType="{x:Type TextBlock}" x:Key="WrapText">
- <Setter Property="TextWrapping" Value="Wrap"/>
- </Style>
-
- <Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
- <Setter Property="HorizontalAlignment" Value="Left"></Setter>
- <Setter Property="HorizontalContentAlignment" Value="Left"></Setter>
- <Setter Property="Padding" Value="0 0 0 0"></Setter>
- <Setter Property="Margin" Value="8 0 0 0"></Setter>
- <Setter Property="FontWeight" Value="SemiBold"/>
- <Setter Property="BorderThickness" Value="1"/>
- <Setter Property="Height" Value="Auto"/>
- <Setter Property="FontSize" Value="14"/>
- </Style>
- <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="Padding" Value="1" />
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="HorizontalAlignment" Value="Left"/>
- <Setter Property="Margin" Value="8 0 8 0"/>
- <Setter Property="Height" Value="Auto"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type DataGridCell}">
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
- </Trigger>
- </Style.Triggers>
- </Style>
- <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
- <Setter Property="BorderThickness" Value="0 0 0 1"/>
- <Setter Property="BorderBrush" Value="LightGray"/>
- <Setter Property="Height" Value="Auto"/>
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="#4fc3f7" />
- <Setter Property="Cursor" Value="Hand"></Setter>
- </Trigger>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- </Style.Triggers>
- </Style>
-
- <Style x:Key="PropertyDataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
- <Setter Property="BorderBrush" Value="#FF688CAF"/>
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="HorizontalScrollBarVisibility" Value="Disabled" />
- <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
- </Style>
-
- <Style x:Key="ItemsControlStyle1" TargetType="{x:Type ItemsControl}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ItemsControl}">
- <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
- <ScrollViewer VerticalScrollBarVisibility="Auto">
- <ScrollViewer.Resources>
- <Style TargetType="ScrollBar">
- <Setter Property="Width" Value="10"/>
- <Setter Property="MinWidth" Value="10" />
- </Style>
- </ScrollViewer.Resources>
- <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
- </ScrollViewer>
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
-
- </Window.Resources>
-
-
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="80"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
-
- </Grid.ColumnDefinitions>
- <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <ItemsControl ItemsSource="{Binding Settings}" Height="Auto" Style="{StaticResource ItemsControlStyle1}" MinHeight="20" Margin="0 0 20 20">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel VerticalAlignment="Center" Orientation="Vertical" IsItemsHost="True"></StackPanel>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
-
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border BorderThickness="1" BorderBrush="#4D4B4B4B" Margin="10" CornerRadius="6">
- <Grid Height="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="Auto"/>
- </Grid.RowDefinitions>
- <Grid Grid.Row="0" VerticalAlignment="Top">
- <Border Margin="20 20 20 0" BorderBrush="LightGray" BorderThickness="0.6" CornerRadius="4" Height="36">
- <Border.Effect>
- <DropShadowEffect/>
- </Border.Effect>
- </Border>
- <Border Margin="20 20 20 0" BorderBrush="LightGray" BorderThickness="0.6" CornerRadius="4" Height="34" Background="#C4EEFC">
- <TextBlock FontSize="22" Padding="2" Text="{Binding Name}"/>
- </Border>
- </Grid>
- <DataGrid Grid.Row="1" Style="{StaticResource PropertyDataGrid}" ItemsSource="{Binding Settings}" Margin="20 20 20 0" GridLinesVisibility="None" SelectionMode="Single" AlternatingRowBackground="#F6F6F6" FontSize="12" HorizontalAlignment="Left" SelectionUnit="FullRow" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
- <DataGrid.Columns>
- <DataGridTextColumn Header="Property Name" Binding="{Binding PropertyName}" Width="250" ElementStyle="{StaticResource WrapText}"/>
- <DataGridTemplateColumn Header="Property Value" Width="150">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <TextBox Text="{Binding PropertyValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Width="50" VerticalAlignment="Top">
- <TextBox.Style>
- <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}">
- <Setter Property="Visibility" Value="Visible"/>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsRangeVisible}" Value="true">
- <Setter Property="Visibility" Value="Collapsed"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBox.Style>
- </TextBox>
- <DockPanel HorizontalAlignment="Stretch" Width="150">
- <DockPanel.Style>
- <Style TargetType="{x:Type DockPanel}">
- <Setter Property="Visibility" Value="Collapsed"/>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsRangeVisible}" Value="true">
- <Setter Property="Visibility" Value="Visible"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </DockPanel.Style>
- <TextBox DockPanel.Dock="Left" Name="MinRangeValue" Width="50" Text="{Binding MinRangeValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
- <TextBox DockPanel.Dock="Right" Name="MaxRangeValue" Width="50" Text="{Binding MaxRangeValue, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
- </DockPanel>
- </StackPanel>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTextColumn Header="Default Value" Binding="{Binding DefaultValueDisplay}" Width="150" ElementStyle="{StaticResource WrapText}" />
- <DataGridTemplateColumn Header="" Width="Auto">
- <DataGridTemplateColumn.CellStyle>
- <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="HorizontalAlignment" Value="Stretch"/>
- <Setter Property="Margin" Value="0 0 0 0"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type DataGridCell}">
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
- </Trigger>
- </Style.Triggers>
- </Style>
- </DataGridTemplateColumn.CellStyle>
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
- <Button Width="80" Padding="2" Height="26" FontSize="12" Margin="0 8" Command="{Binding SetDefaultCommand}">Set Default</Button>
- </Grid>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- </DataGrid.Columns>
- </DataGrid>
- </Grid>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </Grid>
- <Grid Grid.Row="1" >
- <Button Width="80" HorizontalAlignment="Right" Margin="20" Click="SaveButton_Click" IsDefault="True">Save</Button>
- </Grid>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs
deleted file mode 100644
index 9879d8f7a..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/View/SettingsWnd.xaml.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-using Tango.DispenserAnalyzer.UI.ViewModels;
-
-namespace Tango.DispenserAnalyzer.UI.View
-{
- /// <summary>
- /// Interaction logic for SettingsWnd.xaml
- /// </summary>
- public partial class SettingsWnd : Window
- {
- private SettingsVM vm;
- public SettingsWnd()
- {
- InitializeComponent();
- vm = new SettingsVM();
- DataContext = vm;
- Loaded += Window_loaded;
- }
-
- public Dictionary<AnalyzerSettingsEnum, double> GetChanges()
- {
- return vm.GetChanges();
- }
-
- private void Window_loaded(object sender, RoutedEventArgs e)
- {
- Application curApp = Application.Current;
- Window mainWindow = curApp.MainWindow;
- this.Left = mainWindow.Left + (mainWindow.Width - this.ActualWidth) / 2;
- this.Top = mainWindow.Top + (mainWindow.Height - this.ActualHeight) / 2;
- }
-
- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- vm.Dispose();
- }
- public void SaveButton_Click(object sender, RoutedEventArgs e)
- {
- this.DialogResult = true;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
deleted file mode 100644
index 48d426d23..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/MainWindowVM.cs
+++ /dev/null
@@ -1,578 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.Win32;
-using Tango.Core.Commands;
-using Tango.CSV;
-using Tango.DispenserAnalyzer.UI.Models;
-using Tango.SharedUI;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Windows.Input;
-using Tango.DispenserAnalyzer.UI.Analysis;
-using System.Windows;
-using System.Windows.Threading;
-using OxyPlot;
-using OxyPlot.Wpf;
-using OxyPlot.Annotations;
-using System.Windows.Media;
-using System.Diagnostics;
-using System.Windows.Documents;
-using System.Windows.Controls;
-using System.Windows.Xps;
-using System.Windows.Xps.Packaging;
-using System.Windows.Media.Imaging;
-using PdfSharp;
-using OxyPlot.Reporting;
-using System.Threading;
-using Tango.DispenserAnalyzer.UI.View;
-using Tango.Core.Helpers;
-using Tango.Documents;
-
-namespace Tango.DispenserAnalyzer.UI.ViewModels
-{
- public class MainWindowVM: ViewModel
- {
- private const string FILE_EXTENSION = ".pdf";
-
- public Plot PlotControl { get; set; }
-
- /// <summary>
- /// Gets or sets the results panel. Using to save all results in xps file
- /// </summary>
- public System.Windows.Controls.ItemsControl ResultsPanel { get; set; }
-
- private string _openFilePath;
- public string OpenFilePath
- {
- get { return _openFilePath; }
- set
- {
- if(value != null && _openFilePath != value)
- {
- _openFilePath = value;
- OnSelectedFileChanged();
- RaisePropertyChangedAuto();
- GenerateCommand.RaiseCanExecuteChanged();
- }
- }
- }
-
- private string _filename;
- public string FileName
- {
- get { return _filename; }
- set { _filename = value;
- RaisePropertyChangedAuto();
- RaisePropertyChanged("ButtonName"); }
- }
-
- public string ButtonName {
- get { return "Generate result for " + FileName; }
- }
-
- private string _testName = "";
- public string TestName
- {
- get { return _testName.ToUpper() + " TEST"; }
- set { _testName = value; RaisePropertyChangedAuto(); }
- }
-
- private IList<DataPoint> _points;
- /// <summary>
- /// Binding to ItemsSource of line chart.
- /// </summary>
- public IList<DataPoint> Points
- {
- get { return _points; }
- set
- {
- _points = value;
- RaisePropertyChangedAuto();
- }
- }
- private int _step;
- public int XStep
- {
- get { return _step; }
- set { _step = value; RaisePropertyChangedAuto(); }
- }
-
- private double _from;
- /// <summary>
- /// From use to binding to bottom axis min value
- /// </summary>
- public double From
- {
- get { return _from; }
- set
- {
- _from = value; RaisePropertyChangedAuto();
- }
- }
-
- private double _to;
- /// <summary>
- /// To use to binding to bottom axis max value
- /// </summary>
- public double To
- {
- get { return _to; }
- set
- {
- _to = value; RaisePropertyChangedAuto();
- }
- }
-
- private string _titleAxisBottom;
-
- public string TitleAxisBottom
- {
- get { return _titleAxisBottom; }
- set { _titleAxisBottom = value; RaisePropertyChangedAuto(); }
- }
-
- private string _titleAxisLeft;
-
- public string TitleAxisLeft
- {
- get { return _titleAxisLeft; }
- set { _titleAxisLeft = value; RaisePropertyChangedAuto(); }
- }
-
-
-
- private bool _isRunning;
- /// <summary>
- /// Gets or sets a value indicating whether this instance is running.
- /// </summary>
- public bool IsRunning
- {
- get { return _isRunning; }
- set { _isRunning = value; RaisePropertyChangedAuto(); }
- }
-
- private ObservableCollection<IAnalyzerResult> _analyzerResults;
- public ObservableCollection<IAnalyzerResult> AnalyzerResults
- {
- get { return _analyzerResults; }
- set { _analyzerResults = value; RaisePropertyChangedAuto(); }
- }
-
- public Func<double, string> YFormatter { get; set; }
-
- public RelayCommand OpenCSVFileCommand { get; set; }
- public RelayCommand GenerateCommand { get; set; }
- public RelayCommand OpenSettingWndCommand { get; set; }
-
- public MainWindowVM()
- {
- OpenCSVFileCommand = new RelayCommand(OpenCSVFile);
- GenerateCommand = new RelayCommand(Generate, CanGenerate);
- OpenSettingWndCommand = new RelayCommand(OpenSettingWnd);
-
- YFormatter = value => value.ToString();
- _from = 0;
- _to = 1;
- XStep = 1;
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>();
- _isRunning = false;
- TitleAxisBottom = "";
- TitleAxisLeft = "";
- this.Points = new List<DataPoint>();
- }
-
- #region Settings
-
- public void OpenSettingWnd()
- {
- SettingsWnd settings = new SettingsWnd();
- settings.Owner = System.Windows.Application.Current.MainWindow;
- if(true == settings.ShowDialog())
- {
- Dictionary<AnalyzerSettingsEnum, double> changes = settings.GetChanges();
- foreach (KeyValuePair<AnalyzerSettingsEnum, double> entry in changes)
- {
- Settings.SetValueByName(entry.Key, entry.Value);
- }
- }
- }
-
- #endregion
-
- #region Read File
- private void OpenCSVFile()
- {
- OpenFileDialog dlg = new OpenFileDialog();
- dlg.Filter = "CSV Files|*.csv";
- if (dlg.ShowDialog().Value)
- {
- try
- {
- OpenFilePath = dlg.FileName;
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occurred while trying to import the CSV file. " + ex.Message,
- "Warning",
- MessageBoxButton.OK,
- MessageBoxImage.Warning);
- }
- }
- }
- protected virtual bool IsFileLocked(string filePath)
- {
- FileStream stream = null;
- try
- {
- stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.None);
- }
- catch (IOException ex)
- {
- MessageBox.Show("Warning: " + ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
- return true;
- }
- finally
- {
- if (stream != null)
- stream.Close();
- }
- return false;
- }
-
- private void OnSelectedFileChanged()
- {
- ResetSettings();
- if(File.Exists(OpenFilePath))
- {
- FileHelper.OpenFilePath = OpenFilePath;
- FileName = Path.GetFileName(OpenFilePath);
- }
- }
- #endregion
-
- #region Generate
-
- public bool CanGenerate()
- {
- return (OpenFilePath!= null && OpenFilePath.Length != 0 && File.Exists(OpenFilePath));
- }
-
- /// <summary>
- /// Generates all results.
- /// </summary>
- public async void Generate()
- {
- if (false == File.Exists(OpenFilePath) || IsFileLocked(OpenFilePath))
- return;
- ResetSettings();
-
- var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
- if (analyzer == null)
- return;
-
- IsRunning = true;
- AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
- if (attr != null && attr.Count() > 0)
- {
- TestName = attr[0].Name;
- }
- List<OxyPlot.Wpf.LineAnnotation> annotations = new List<OxyPlot.Wpf.LineAnnotation>();
- var samples = analyzer.Reader.ReadScvFile(OpenFilePath, annotations);
- analyzer.GetPoints(samples, Points);
- if (Points.Count == 0)
- {
- IsRunning = false;
- return;
- }
- annotations.ForEach(x => PlotControl.Annotations.Add(x));
- To = 0;
- From = 0;
-
- List<IAnalyzerResult> res = await analyzer.Process(samples, false);
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>(res);
-
- _to = Points.Max(x => x.Y);
- _from = TestName.Contains("sealtest") ? Points.FirstOrDefault(x => x.X == 0).Y : Points.Min(x => x.Y);
- List<string> titles = analyzer.Reader.GetTitles(OpenFilePath);
- TitleAxisBottom = titles[0];
- TitleAxisLeft = titles[1];
-
- // data.Clear();
- _to += 100;
- RaisePropertyChanged("To");
- if (_from != 0)
- _from -= 100;
- RaisePropertyChanged("From");
- XStep = (int)(Points.Count / 5);
-
- IsRunning = false;
- PlotControl.InvalidatePlot(true);
-
- if(analyzer.Reader.PrintResultsToPDFFile())
- {
- await PrintToXpsFile();
- }
- }
-
- /// <summary>
- /// Generates all results from command line and close application.
- /// </summary>
- public async Task GenerateInBackground(string openFilePath)
- {
- OpenFilePath = openFilePath;
-
- if (false == File.Exists(OpenFilePath) || IsFileLocked(OpenFilePath))
- return;
-
- var analyzer = AnalysisService.GetAnalyzer(OpenFilePath);
- if (analyzer == null)
- return;
-
- AnalyzerAttribute[] attr = analyzer.GetType().GetCustomAttributes(typeof(AnalyzerAttribute), true);
- if (attr != null && attr.Count() > 0)
- {
- TestName = attr[0].Name;
- }
-
- List<OxyPlot.Wpf.LineAnnotation> annotations = new List<OxyPlot.Wpf.LineAnnotation>();
- var samples = analyzer.Reader.ReadScvFile(OpenFilePath, annotations);
- analyzer.GetPoints(samples, Points);
- if (Points.Count == 0)
- {
- return;
- }
-
- List<IAnalyzerResult> res = await analyzer.Process(samples, true);
- AnalyzerResults = new ObservableCollection<IAnalyzerResult>(res);
-
- await ExportResultsToTextFile();
- }
- #endregion
-
- private void ResetSettings()
- {
- Points.Clear();
-
- AnalyzerResults.Clear();
- TestName = "";
- foreach (var ax in PlotControl.Axes)
- {
- ax.Maximum = ax.Minimum = Double.NaN;
- PlotControl.ResetAllAxes();
- }
- PlotControl.Annotations.Clear();
- PlotControl.InvalidatePlot(true);
- }
-
- #region SaveInXps file
- private async Task PrintToXpsFile()
- {
- await Task.Delay(200);
- try
- {
- var resultFile = FileHelper.GetResultFilePath();
- if (resultFile.IsNotNullOrEmpty())
- {
- SaveResultsAsXps(resultFile);
- }
- }
- catch(Exception ex)
- {
- Debug.WriteLine(ex);
- }
- }
-
- public void SaveResultsAsXps( string fileName)
- {
- var dir = Path.GetDirectoryName(fileName);
- var name = Path.GetFileNameWithoutExtension(fileName);
- string fileNameWithoutExtension = Path.Combine(dir, name);
-
- ContentControl cc = ResultsPanel.Parent as ContentControl;
- ResultsPanel.UpdateLayout();
-
- List<Plot> all_plots = ResultsPanel.FindVisualChildren<OxyPlot.Wpf.Plot>().ToList();
- List<Plot> plots = new List<Plot>();
- List<System.Windows.Controls.Image> plotimages = new List<System.Windows.Controls.Image>();
- int index = 0;
- foreach (var item in all_plots)
- {
- var seriesdata = item.Series[0].ItemsSource;
-
- item.RaiseEvent(new System.Windows.RoutedEventArgs(OxyPlot.Wpf.PlotView.LoadedEvent));
- item.InvalidatePlot(true);
- if (item.IsMeasureValid && item.ActualHeight > 0)
- {
- plots.Add(item);
- string pngPlotFileName = String.Format($"{fileNameWithoutExtension}_Plottest{index}.png");
- File.Delete(pngPlotFileName);
- System.Windows.Controls.Image plotImage = new System.Windows.Controls.Image();
- //print plot to png file - removed 2/07/2020
- //using (var stream = File.Open(pngPlotFileName, FileMode.Create, FileAccess.ReadWrite))
- {
- PngExporter exporter = new PngExporter() { Width = (int)item.ActualWidth, Height = (int)item.ActualHeight, Background = OxyColors.White, Resolution = 96 };
- //exporter.Export(item.ActualModel, stream);
-
- BitmapSource bitmap = exporter.ExportToBitmap(item.ActualModel);
- plotImage.Source = bitmap;
- plotImage.UpdateLayout();
- var parent = item.Parent;
- if (parent is Panel)
- {
- var plpanel = (Panel)parent;
- plpanel.Children.Remove(item);
- plpanel.Children.Add(plotImage);
- plpanel.UpdateLayout();
- }
- else if (parent is Decorator)
- {
- ((Decorator)parent).Child = plotImage;
- ((Border)parent).UpdateLayout();
- }
- }
- plotimages.Add(plotImage);
- index++;
- }
- ResultsPanel.UpdateLayout();
- }
-
- if (cc != null)
- {
- cc.Content = null;
- CreateDoc(fileName, plots, plotimages);
- cc.Content = ResultsPanel;
- }
- }
-
- private void CreateDoc( string fileName, List<Plot> plots, List<System.Windows.Controls.Image> plotimages)
- {
- Dispatcher.CurrentDispatcher.Invoke( DispatcherPriority.Loaded, new Action(() =>
- {
- var dir = Path.GetDirectoryName(fileName);
- var name = Path.GetFileNameWithoutExtension(fileName);
- string fileNameWithoutExtension = Path.Combine(dir, name);
-
- Size reportSize = GetReportSize(ResultsPanel);
-
- FixedDocument fixedDoc = new FixedDocument();
- PageContent pageContent = new PageContent();
- FixedPage fixedPage = new FixedPage();
- fixedPage.Width = reportSize.Width;
- fixedPage.Height = reportSize.Height;
- fixedPage.Children.Add(ResultsPanel);
- fixedPage.UpdateLayout();
-
- pageContent.BeginInit();
- ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
- pageContent.EndInit();
-
- fixedDoc.Pages.Add(pageContent);
-
- InjectData(fixedDoc, AnalyzerResults);
- ResultsPanel.Measure(reportSize);
- ResultsPanel.Arrange(new Rect(new Point(0, 0), ResultsPanel.DesiredSize));
- ResultsPanel.UpdateLayout();
-
-
- String sourceXpsFile = String.Format($"{fileNameWithoutExtension}_test.xps");
- File.Delete(sourceXpsFile);
- using (XpsDocument xpsd = new XpsDocument(sourceXpsFile, FileAccess.Write))
- {
- System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
- xw.Write(fixedDoc);
- }
- fixedPage.Children.Remove(ResultsPanel);
- PdfSharp.Xps.XpsConverter.Convert(sourceXpsFile, fileName, 0);
- File.Delete(sourceXpsFile);
- }));
-
-
- }
-
- /// <summary>
- /// Injects the data to printed document. Without this the binding data to elements doesn't work.
- /// </summary>
- /// <param name="document">The document.</param>
- /// <param name="dataSource">The data source.</param>
- protected void InjectData(FixedDocument document, object dataSource)
- {
- document.DataContext = new { AnalyzerResults = dataSource };
- // we need to give the binding infrastructure a push as we
- // are operating outside of the intended use of WPF
- var dispatcher = Dispatcher.CurrentDispatcher;
- dispatcher.Invoke(DispatcherPriority.SystemIdle, new DispatcherOperationCallback(delegate { return null; }), null);
- }
-
- private static Size GetReportSize(ItemsControl reportContainer)
- {
- double reportWidth = reportContainer.ActualWidth + 10;
- double reportHeight = reportContainer.ActualHeight + 10;// (reportWidth / printDialog.PrintableAreaWidth) * printDialog.PrintableAreaHeight;
-
- return new Size(reportWidth, reportHeight);
- }
-
- public static void Print(IPlotModel model, string fileName, double width, double height)
- {
- using (var stream = File.Open(fileName, FileMode.Create, FileAccess.ReadWrite))
- {
- var exporter = new XpsExporter { Width = width, Height = height};
- //PngExporter.Export(this.Plot.ActualModel, fileName, 600, 400, OxyColors.White)
- exporter.Export(model, stream);
- }
- }
-
- #endregion
-
- #region ExportToExel
-
- public async Task ExportResultsToTextFile()
- {
- var resultFile = FileHelper.GetResultFilePath();
- var dir = Path.GetDirectoryName(resultFile);
- var name = Path.GetFileNameWithoutExtension(resultFile);
- string fileNameWithoutExtension = Path.Combine(dir, name);
- String sourceFile = String.Format($"{fileNameWithoutExtension}s.txt");
- File.Delete(sourceFile);
-
- await Task.Factory.StartNew(() =>
- {
- try
- {
- List<IAnalyzerResult> results = AnalyzerResults.ToList();
-
- using (StreamWriter outputFile = new StreamWriter(sourceFile))
- {
- outputFile.WriteLine(String.Format($" {TestName.ToUpper()} RESULTS: "));
- outputFile.WriteLine("");
- outputFile.WriteLine("");
- foreach (var res in results)
- {
- if (res.GetType().IsSubclassOf(typeof(AnalyzerResultBase)))
- {
- List<AnalyzerResultProperty> properties = (res as AnalyzerResultBase).Properties;
- foreach (var prop in properties)
- {
- outputFile.WriteLine(String.Format($" {prop.Name} : {prop.Value}"));
- }
- string resV = String.Format($" RESULT = {res.Result.ToString()}");
- outputFile.WriteLine(resV);
- outputFile.WriteLine("");
- }
- }
- outputFile.Flush();
- }
- }
- catch (Exception ex)
- {
- Debug.WriteLine(ex);
- }
- });
-
- }
- #endregion
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
deleted file mode 100644
index b610d7652..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/ViewModels/SettingsVM.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.DispenserAnalyzer.UI.Models;
-using Tango.SharedUI;
-
-namespace Tango.DispenserAnalyzer.UI.ViewModels
-{
- public class SettingVM: ViewModel
- {
- private string _name;
-
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
-
- private ObservableCollection<SettingsModel> _settings;
-
- public ObservableCollection<SettingsModel> Settings
- {
- get { return _settings; }
- set { _settings = value; RaisePropertyChangedAuto(); }
- }
-
- public SettingVM(string name)
- {
- _settings = new ObservableCollection<SettingsModel>();
- Name = name;
- }
-
- public void AddSettings(List<SettingsModel> settings)
- {
- settings.ForEach(x => Settings.Add(x));
- }
-
-
- }
- public class SettingsVM : ViewModel, IDisposable
- {
- public Dictionary<AnalyzerSettingsEnum, double> ChangedValues { get; set; }
-
- private ObservableCollection<SettingVM> _settings;
-
- public ObservableCollection<SettingVM> Settings
- {
- get { return _settings; }
- set { _settings = value; RaisePropertyChangedAuto(); }
- }
-
- public SettingsVM()
- {
- _settings = new ObservableCollection<SettingVM>();
- ChangedValues = new Dictionary<AnalyzerSettingsEnum, double>();
- InitPBUTestSettings();
- InitProcessSettings();
- InitFlowTestSettings();
-
- }
-
- private void InitPBUTestSettings()
- {
- SettingVM model = new SettingVM("Pressure build up");
- List<SettingsModel> list = new List<SettingsModel>();
- list.Add(new SettingsModel(AnalyzerSettingsEnum.PBUPassFail, "4.5 sec"));
- model.AddSettings(list);
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- Settings.Add(model);
- }
-
- private void InitFlowTestSettings()
- {
- SettingVM model = new SettingVM("Flow test");
- List<SettingsModel> list = new List<SettingsModel>();
-
- list.Add(new SettingsModel(AnalyzerSettingsEnum.FlowPBUPassFail, "4.5 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.ExcludeAnalysis, "1800 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.AvgMinValue, "1400-1850 [mbar]", true));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinRange, "450 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxMinIntervals, "450 reads"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MaxError, "1.5%"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.TakeOffMaxMin, "3"));
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- model.AddSettings(list);
- Settings.Add(model);
- }
-
- private void InitProcessSettings()
- {
- SettingVM model = new SettingVM("Process");
- List<SettingsModel> list = new List<SettingsModel>();
- list.Add(new SettingsModel(AnalyzerSettingsEnum.TimeInterval, "0.1 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.StartCalculation, "600 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.EndCalculation, "900 sec"));
- list.Add(new SettingsModel(AnalyzerSettingsEnum.MovingAvg, "50 points"));
- list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
- model.AddSettings(list);
- Settings.Add(model);
- }
-
- private void OnSettingValueChanged(object sender, EventArgs e)
- {
- if (sender is SettingsModel)
- {
- SettingsModel settingModel = sender as SettingsModel;
- if (settingModel.IsRangeVisible)
- {
- ChangedValues[AnalyzerSettingsEnum.AvgMinValue] = settingModel.MinRangeValue;
- ChangedValues[AnalyzerSettingsEnum.AvgMaxValue] = settingModel.MaxRangeValue;
- }
- else
- ChangedValues[settingModel._enumName] = settingModel.PropertyValue;
- }
- }
-
- public Dictionary<AnalyzerSettingsEnum, double> GetChanges()
- {
- return ChangedValues;
- }
-
- public void Dispose()
- {
- Settings.ToList().ForEach(x => {
- x.Settings.ToList().ForEach(k => k.SettingValueEvent -= OnSettingValueChanged);
- });
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config
deleted file mode 100644
index 832cf227f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="MathNet.Numerics" version="4.9.0" targetFramework="net461" />
- <package id="OxyPlot.Core" version="2.0.0" targetFramework="net461" />
- <package id="OxyPlot.Wpf" version="2.0.0" targetFramework="net461" />
- <package id="PDFsharp" version="1.50.5147" targetFramework="net461" />
-</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy
deleted file mode 100644
index c78699979..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/ColorMine.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy
deleted file mode 100644
index 7978b0462..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/DocumentFormat.OpenXml.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy
deleted file mode 100644
index 5fb35f260..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EFCache.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy
deleted file mode 100644
index 9275df68e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/EntityFramework.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy
deleted file mode 100644
index faa4f959f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Google.Protobuf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy
deleted file mode 100644
index ca08f66f5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/LiteDB.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy
deleted file mode 100644
index 4c52491f6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MahApps.Metro.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy
deleted file mode 100644
index f7c1eaa44..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignColors.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy
deleted file mode 100644
index 8bfe328ab..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MaterialDesignThemes.Wpf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy
deleted file mode 100644
index 2aa884d31..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/MathNet.Numerics.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy
deleted file mode 100644
index be6558d2d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Newtonsoft.Json.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy
deleted file mode 100644
index 44f75da1d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.Wpf.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy
deleted file mode 100644
index f2c722528..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/OxyPlot.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy
deleted file mode 100644
index 048b3d85d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp-WPF.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy
deleted file mode 100644
index f648e4a19..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Charting.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy
deleted file mode 100644
index 5a0e8a3fe..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.Xps.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy
deleted file mode 100644
index 4fcde52f1..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/PdfSharp.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy
deleted file mode 100644
index c70970ba9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/SimpleValidator.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy
deleted file mode 100644
index 59f3dcc37..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Data.SQLite.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy
deleted file mode 100644
index f8468a652..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.IO.Compression.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy
deleted file mode 100644
index 931c744c8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/System.Windows.Interactivity.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy
deleted file mode 100644
index fd3c6747d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.BL.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy
deleted file mode 100644
index 25105272c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.CSV.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy
deleted file mode 100644
index 7c6414e91..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Core.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application
deleted file mode 100644
index f490058f7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.application
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <description asmv2:publisher="Dispenser Analyser" asmv2:product="Tango.Dispenser Analyser" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <deployment install="true" mapFileExtensions="true" />
- <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
- <framework targetVersion="4.6.1" profile="Full" supportedRuntime="4.0.30319" />
- </compatibleFrameworks>
- <dependency>
- <dependentAssembly dependencyType="install" codebase="Application Files\Tango.DispenserAnalyzer.UI_2_0_0_0\Tango.DispenserAnalyzer.UI.exe.manifest" size="26869">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>eiKxJvcr4ylNdFFD94Ti1JzvXyOiOJBZVkzaPrLMawU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sn9KPiVwf5LL2QPSXS4tvuYjY4MZRQxAsMkMtjjSnrs=</DigestValue></Reference></SignedInfo><SignatureValue>t0T5+l4gViKhYgwhMba1xkyrc3bQ9EhXqsk4rZX7R6/vSdm7/QtQoSEVvlCbkA4rw56Q+n09pwohezJNla+Kre/kWe5EfJ2UcMk2PorKF0V3HWauRpqqfh9TjkuQLoaUdX1cUf92kmNK8pRMNZeeASO7OBUQWMccb1ePNsFS++g=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="bb9ed238b60cc9b0400c4519836323e6be2d2e5dd203d9cb927f70253e4a7f4a" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>gXJTLU7syw5LlEy5QT6ApZg3NAr3qHl8g3/qZ6xl9ms=</DigestValue></Reference></SignedInfo><SignatureValue>KU6gcRD5cWaF0D2D08Zpr8oVMZeFtNvtszM59rs3WuJ3c79RZlzsd2IYW4YYNCE0LGgpvlnu+ydp7aZwtFVQ7yhGPNkcwijZoumVd4ZTaw0bIuwvCswvlzq+CCbKy+BB6JfKnITutKUuwTsyIdhKVDyZJxj3VFJHN3p0EvRpcfI=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy
deleted file mode 100644
index ddc8cb7a6..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.config.deploy
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy
deleted file mode 100644
index 54bb356a8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest
deleted file mode 100644
index f5a991ddc..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DispenserAnalyzer.UI.exe.manifest
+++ /dev/null
@@ -1,425 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <asmv1:assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <application />
- <entryPoint>
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI" version="1.1.0.0" language="neutral" processorArchitecture="msil" />
- <commandLine file="Tango.DispenserAnalyzer.UI.exe" parameters="" />
- </entryPoint>
- <trustInfo>
- <security>
- <applicationRequestMinimum>
- <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
- <defaultAssemblyRequest permissionSetReference="Custom" />
- </applicationRequestMinimum>
- <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
- <!--
- UAC Manifest Options
- If you want to change the Windows User Account Control level replace the
- requestedExecutionLevel node with one of the following.
-
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
- <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
-
- If you want to utilize File and Registry Virtualization for backward
- compatibility then delete the requestedExecutionLevel node.
- -->
- <requestedExecutionLevel level="asInvoker" uiAccess="false" />
- </requestedPrivileges>
- </security>
- </trustInfo>
- <dependency>
- <dependentOS>
- <osVersionInfo>
- <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
- </osVersionInfo>
- </dependentOS>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
- <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ColorMine.dll" size="32256">
- <assemblyIdentity name="ColorMine" version="1.2.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>PgU74yyS2Imy65XcI2cVNH84c06vXrmm6+fcSsYYliY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="DocumentFormat.OpenXml.dll" size="5697824">
- <assemblyIdentity name="DocumentFormat.OpenXml" version="2.7.2.0" publicKeyToken="8FB06CB64D019A17" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>poeWiknlhBNq1OeIpsSUWt4fCGjpLQslgLOzl2R98Uc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EFCache.dll" size="35328">
- <assemblyIdentity name="EFCache" version="1.1.3.0" publicKeyToken="46C4868AF4307D2C" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>1C04PduKM0+kdK7ANZe+gEuk82+Iuhzm+jGwm94Hv5w=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="EntityFramework.dll" size="5225168">
- <assemblyIdentity name="EntityFramework" version="6.0.0.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>nCD7KthqdgsMauvZMByQCYkdAq4UcgqTkmwLU1uK0Js=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Google.Protobuf.dll" size="276480">
- <assemblyIdentity name="Google.Protobuf" version="3.4.1.0" publicKeyToken="A7D26565BAC4D604" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>cGM/vPf7KHrrIx37vLOM3VplFKKihDWG6LHCEGtoWIM=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="LiteDB.dll" size="461824">
- <assemblyIdentity name="LiteDB" version="5.0.4.0" publicKeyToken="4EE40123013C9F27" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>AJ0b8xq+/Qx1zTCw9vCkluaCb7VL1+GQCnJXMKKx+lc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MahApps.Metro.dll" size="1146368">
- <assemblyIdentity name="MahApps.Metro" version="1.5.0.23" publicKeyToken="F4FB5A3C4D1E5B4F" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>8ajYIaF9mjjIeLYjnxwULwRJVgetF0VwIu9YeWwSfVE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MaterialDesignColors.dll" size="224256">
- <assemblyIdentity name="MaterialDesignColors" version="1.1.2.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>d4wZkVSpfjUBqYKDtRfNT80gSBwKfOiY66XUQlfkFX0=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MaterialDesignThemes.Wpf.dll" size="4538880">
- <assemblyIdentity name="MaterialDesignThemes.Wpf" version="2.3.1.953" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>rOZ71y/A8+NZqgkh4zex0EuvaI3YUPF3jmcHeU1sx9s=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MathNet.Numerics.dll" size="1676824">
- <assemblyIdentity name="MathNet.Numerics" version="4.9.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>mbS2KeRuHkrky7/Kb8t9QzlV5FMYxnascno1yXE0UjE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Newtonsoft.Json.dll" size="526336">
- <assemblyIdentity name="Newtonsoft.Json" version="9.0.0.0" publicKeyToken="30AD4FE6B2A6AEED" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>V14w+Y5OpCyeUW7ci7sprYtQsXOj5rNrW6OeEzzOlAY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="OxyPlot.dll" size="549376">
- <assemblyIdentity name="OxyPlot" version="2.0.0.0" publicKeyToken="638079A8F0BD61E9" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>vK0M/swEOEMAi0ryfXTkz0Zjigbl2dinsJ/6tuWCmpg=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="OxyPlot.Wpf.dll" size="160768">
- <assemblyIdentity name="OxyPlot.Wpf" version="2.0.0.0" publicKeyToken="75E952BA404CDBB0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>ISsNz4aIwqIJLHtgXpc8mMX2dSeDKtrQruRZx50YLSs=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.dll" size="535040">
- <assemblyIdentity name="PdfSharp" version="1.50.5147.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>L6CJPGoajmQ0LmXlRk+tQXN2vSzJhOU1dfWCmwfmoGc=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.Charting.dll" size="80896">
- <assemblyIdentity name="PdfSharp.Charting" version="1.50.5147.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>iZ82KufB7VL4vikYPHOk4epNcuQzBa0wqUJtaeI6ecg=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp.Xps.dll" size="126464">
- <assemblyIdentity name="PdfSharp.Xps" version="1.0.0.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>huTss2rXs8KGQ8PQHtADyWJl0oeyPKg2ATaCakFu+d0=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="PdfSharp-WPF.dll" size="589312">
- <assemblyIdentity name="PdfSharp-WPF" version="1.31.1789.0" publicKeyToken="F94615AA0424F9EB" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>meUyQ9VFctyBIGBgDrxIjzfQMEzpKaEzTFPwN6TXJA8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="SimpleValidator.dll" size="30208">
- <assemblyIdentity name="SimpleValidator" version="0.6.1.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>XzWWPUCP55BeUMXcoXUNc2yKEpSn/fQVP1A9383qWYA=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Data.SQLite.dll" size="345600">
- <assemblyIdentity name="System.Data.SQLite" version="1.0.108.0" publicKeyToken="DB937BC2D44FF139" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>VLEF/4rXqsFJ5PQmFaN6Bj/sfOmz7dLNbN7B62xX4sA=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.IO.Compression.dll" size="111984">
- <assemblyIdentity name="System.IO.Compression" version="4.1.2.0" publicKeyToken="B77A5C561934E089" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>uWPrlWJ7XyI+gT/OilPmydcokXFJI95yYxEUc/rr8+8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Windows.Interactivity.dll" size="55904">
- <assemblyIdentity name="System.Windows.Interactivity" version="4.5.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>k/vFnkiAr8nxNsOsCXatp/P6p8rO3OXIJLM3y8qdLr8=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.BL.dll" size="987136">
- <assemblyIdentity name="Tango.BL" version="2.0.36.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>p7x0p3lnYvy5wrWHUOr1BIJb+z1ebGPRZEAY+yhdhRU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Core.dll" size="138240">
- <assemblyIdentity name="Tango.Core" version="2.0.33.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>3mf3dtzccuo8w8eRRue7CDVltNZygjDwR5DytqWY/IQ=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.CSV.dll" size="22016">
- <assemblyIdentity name="Tango.CSV" version="2.0.17.1657" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>VHg/VJxYIyR+GBIvRWuc8bpfbqXP114iJm+q/80u6pE=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.DispenserAnalyzer.UI.exe" size="61368">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI" version="1.1.0.0" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>IP7iNwWCnAWkBM5sAjmrDPRrTTYlaG4hd5YLQDuArWQ=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Documents.dll" size="20480">
- <assemblyIdentity name="Tango.Documents" version="2.0.4.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>XqWUXg9aTwfULoENsOT1FrHjyaTeAzs59nmarlFI8Ms=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.DragAndDrop.dll" size="20480">
- <assemblyIdentity name="Tango.DragAndDrop" version="2.0.28.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>FXBik223FPVVyaQ129dlIS+HSP/zcJTiiHdQ9hOkc/E=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Logging.dll" size="37888">
- <assemblyIdentity name="Tango.Logging" version="2.0.37.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>8nHS0Sg2Flxj99FNk2i9m3dRwHyA2wM8w9hrNFyY2GY=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.PMR.dll" size="1528832">
- <assemblyIdentity name="Tango.PMR" version="2.0.40.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>mIpF+uzDNjXFbHDs8j1lPSx7PBBr4cJWQfQVLBkvOCU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.Settings.dll" size="9728">
- <assemblyIdentity name="Tango.Settings" version="2.0.31.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>FmjatwQJYqP/M/14WnGYcdClZz1aTrHjPfcrTW/M7x4=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <dependency>
- <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Tango.SharedUI.dll" size="147456">
- <assemblyIdentity name="Tango.SharedUI" version="2.0.30.1608" language="neutral" processorArchitecture="msil" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>vIwcd2kaaQ+//z0LesOJ5ii+rFGDRIWAz0ZZbOiVZJU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
- <file name="Tango.DispenserAnalyzer.UI.exe.config" size="3319">
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>1H/fzVxmuhnT5x+/KUVkLmAvaVR00DWbcBWiIuTZ+YU=</dsig:DigestValue>
- </hash>
- </file>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>oQrQIybPh1ABsGASktthQ5Xzbed3JXUYLtBMG6x8G4E=</DigestValue></Reference></SignedInfo><SignatureValue>jKuL6/A+K+HlShS6lNOlVrQIcS4dddTgqd5Vp+3Geet0wI0SN4qv9D04ShxrOnVBwOx4G7uFDDlBYhTqxUxqS4GsvBermpLO4CQiRd9lDu/lT+0U63J6ItpFVWefj6Wt2q+iBQzu4wH5JMJtFiKdCcrxVF7lV0qkO2dydBK7xx8=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="811b7cac1b4cd02e18752577e76df3954361db921260b0015087cf2623d00aa1" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sl9VRiIgqJCocNFBEoq367mW/veMU/Wh0Pyt2/2ioEw=</DigestValue></Reference></SignedInfo><SignatureValue>zu/VNl7VVo/rRgw/lrDLAkhb7d1uaJYQCj+SDAGrAluVWP5D9bHTjngbUie388ttvIEmoZycnqwAh1mAxhlfSmWGkyJVrq2WCl0bgdWqI/MaHXFtm5dysLstFe4ITwm9KW6TuKGT1NCAp/8i5VmlGCXJbn/4sqMwidYI95tGcMA=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy
deleted file mode 100644
index bf31b6586..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Documents.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy
deleted file mode 100644
index fc66ab2c7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.DragAndDrop.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy
deleted file mode 100644
index 3a2a22e66..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Logging.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy
deleted file mode 100644
index ab3ecc069..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.PMR.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy
deleted file mode 100644
index 758e0f9d3..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.Settings.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy
deleted file mode 100644
index 2b8b64f8f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Application Files/Tango.DispenserAnalyzer.UI_2_0_0_0/Tango.SharedUI.dll.deploy
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application
deleted file mode 100644
index f490058f7..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/Tango.DispenserAnalyzer.UI.application
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <description asmv2:publisher="Dispenser Analyser" asmv2:product="Tango.Dispenser Analyser" xmlns="urn:schemas-microsoft-com:asm.v1" />
- <deployment install="true" mapFileExtensions="true" />
- <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
- <framework targetVersion="4.6.1" profile="Full" supportedRuntime="4.0.30319" />
- </compatibleFrameworks>
- <dependency>
- <dependentAssembly dependencyType="install" codebase="Application Files\Tango.DispenserAnalyzer.UI_2_0_0_0\Tango.DispenserAnalyzer.UI.exe.manifest" size="26869">
- <assemblyIdentity name="Tango.DispenserAnalyzer.UI.exe" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" type="win32" />
- <hash>
- <dsig:Transforms>
- <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
- </dsig:Transforms>
- <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
- <dsig:DigestValue>eiKxJvcr4ylNdFFD94Ti1JzvXyOiOJBZVkzaPrLMawU=</dsig:DigestValue>
- </hash>
- </dependentAssembly>
- </dependency>
-<publisherIdentity name="CN=TWINE\victoria" issuerKeyHash="59607512eeb9e38b76e48f6d9fa40740c59f2d3c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>Sn9KPiVwf5LL2QPSXS4tvuYjY4MZRQxAsMkMtjjSnrs=</DigestValue></Reference></SignedInfo><SignatureValue>t0T5+l4gViKhYgwhMba1xkyrc3bQ9EhXqsk4rZX7R6/vSdm7/QtQoSEVvlCbkA4rw56Q+n09pwohezJNla+Kre/kWe5EfJ2UcMk2PorKF0V3HWauRpqqfh9TjkuQLoaUdX1cUf92kmNK8pRMNZeeASO7OBUQWMccb1ePNsFS++g=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="bb9ed238b60cc9b0400c4519836323e6be2d2e5dd203d9cb927f70253e4a7f4a" Description="" Url=""><as:assemblyIdentity name="Tango.DispenserAnalyzer.UI.application" version="2.0.0.0" publicKeyToken="132e92a17c115bb8" language="en" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=TWINE\victoria</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>gXJTLU7syw5LlEy5QT6ApZg3NAr3qHl8g3/qZ6xl9ms=</DigestValue></Reference></SignedInfo><SignatureValue>KU6gcRD5cWaF0D2D08Zpr8oVMZeFtNvtszM59rs3WuJ3c79RZlzsd2IYW4YYNCE0LGgpvlnu+ydp7aZwtFVQ7yhGPNkcwijZoumVd4ZTaw0bIuwvCswvlzq+CCbKy+BB6JfKnITutKUuwTsyIdhKVDyZJxj3VFJHN3p0EvRpcfI=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2U=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB0TCCATqgAwIBAgIQHNNUEeosJbVGklX8IkvE8TANBgkqhkiG9w0BAQsFADAnMSUwIwYDVQQDHhwAVABXAEkATgBFAFwAdgBpAGMAdABvAHIAaQBhMB4XDTIwMDYyMjE0NTcyNFoXDTIxMDYyMjIwNTcyNFowJzElMCMGA1UEAx4cAFQAVwBJAE4ARQBcAHYAaQBjAHQAbwByAGkAYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzzV0va0+OVkY61fn35CFzm10O+rOO5fK1ZgG8qU8CU8sU9ZCEqbOnj6JVDugnKocgpuUOzKPs4oTHskFB2V0VNRLM0YYN1rOie9wTg0JIMUQ69j1k1GN4ewHCrsu6FX1sFW6CxfLE4BcBPoAfDQtd7J67/G2Nnn8EVDM7b5Cq2UCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCs/8lt/tnwuA4tLzkX/huqZjpIDkyBkId+bC/z4T9W4a80G9LOcWpoYnaCUR2mIJbgST+932WNv0IGrc23jpqEjojjK2/QuvjHARGtavs/hJc5NYZD9xo5MjotGI8IbbjWxW++MKsnAU8TjpJEEbiFSQetboML65NcSiMuuo2UMw==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe
deleted file mode 100644
index fc3854ab8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/publish/setup.exe
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico b/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico
deleted file mode 100644
index 67c45cca8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.DispenserAnalyzer.UI/twin.ico
+++ /dev/null
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx
new file mode 100644
index 000000000..a9183ec04
--- /dev/null
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Events.xlsx
Binary files differ
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
index ae7bae072..20b27d7d5 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Program.cs
@@ -16,8 +16,6 @@ namespace Tango.EventsTypesGenerator
{
class Program
{
- private static string EVENTS_FILE = "Tango alarm events handling chart_Rev28.xlsx";
-
private class ExcelEventType
{
public String Code { get; set; }
@@ -33,7 +31,6 @@ namespace Tango.EventsTypesGenerator
public String ActionsEmbedded { get; set; }
public String NotificationTime { get; set; }
public String Guidance { get; set; }
- public String Persistent { get; set; }
public override string ToString()
{
@@ -45,53 +42,41 @@ namespace Tango.EventsTypesGenerator
{
Console.WriteLine("Generating event types...");
- ExcelReader reader = new ExcelReader(PathHelper.GetStartupPath() + "\\" + EVENTS_FILE);
+ ExcelReader reader = new ExcelReader(PathHelper.GetStartupPath() + "\\Events.xlsx");
var results = reader.GetDataByIndex<ExcelEventType>("ALARM EVENTS HANDLING", 2);
- //First validate excel
- foreach (var evx in results)
- {
- try
- {
- EventType te = new EventType();
- MapExcelEventToEventType(evx, te);
- }
- catch (Exception ex)
- {
- Console.WriteLine($"Invalid record found\n{evx.ToString()}\n\n{ex}");
- Console.ReadLine();
- return;
- }
- }
-
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- foreach (var evx in results)
+ foreach (var evType in results)
{
bool isNewEvent = false;
- int code = int.Parse(evx.Code);
+ int code = int.Parse(evType.Code);
- EventType ev = db.EventTypes.SingleOrDefault(x => x.Code == code);
+ EventType newEvent = db.EventTypes.SingleOrDefault(x => x.Code == code);
- if (ev == null)
+ if (newEvent == null)
{
- Console.WriteLine("Inserting " + evx.ToString());
- ev = new EventType();
- MapExcelEventToEventType(evx, ev);
+ Console.WriteLine("Inserting " + evType.ToString());
+ newEvent = new EventType();
isNewEvent = true;
}
else
{
- if (EventRequiresUpdate(evx, ev))
- {
- EventType te = new EventType();
- MapExcelEventToEventType(evx, te);
- Console.WriteLine($"Updating {ev.Name}\nSource:\n{te.ToJsonString()}\nTarget:\n{ev.ToJsonString()}");
- MapExcelEventToEventType(evx, ev);
- }
+ Console.WriteLine("Updating " + evType.ToString());
}
+ newEvent.Code = int.Parse(evType.Code);
+ newEvent.Name = evType.Name;
+ newEvent.Title = evType.Title;
+ newEvent.Description = evType.Description;
+ newEvent.TechnicalDescription = evType.TechnicalDescription;
+ newEvent.ComponentIndex = evType.Index != null ? int.Parse(evType.Index) : 0;
+ newEvent.Category = (EventTypeCategories)Enum.Parse(typeof(EventTypeCategories), evType.Category.Replace(" ", ""), true);
+ newEvent.Group = (EventTypeGroups)Enum.Parse(typeof(EventTypeGroups), evType.Group.Replace(" ", ""), true);
+ newEvent.NotificationTime = (EventTypeNotificationTimes)Enum.Parse(typeof(EventTypeNotificationTimes), evType.NotificationTime.Replace(" ", ""), true);
+ newEvent.Guidance = !String.IsNullOrWhiteSpace(evType.Guidance) ? evType.Guidance : null;
+
//TODO: Do this when Nadav fixes the excel.
@@ -112,10 +97,11 @@ namespace Tango.EventsTypesGenerator
// newEvent.Actions = new ReadOnlyCollection<EventTypeActions>(actions);
//}
+ newEvent.RequiresUserIntervention = evType.UserInterventionRequired == "Yes";
if (isNewEvent)
{
- db.EventTypes.Add(ev);
+ db.EventTypes.Add(newEvent);
}
}
@@ -127,42 +113,5 @@ namespace Tango.EventsTypesGenerator
Console.WriteLine("Done!");
Console.ReadLine();
}
-
- private static bool EventRequiresUpdate(ExcelEventType evx, EventType ev)
- {
- EventType te = new EventType();
- MapExcelEventToEventType(evx, te);
-
- if (te.Code != ev.Code) return true;
- if (te.Name != ev.Name) return true;
- if (te.Title != ev.Title) return true;
- if (te.Description != ev.Description) return true;
- if (te.TechnicalDescription != ev.TechnicalDescription) return true;
- if (te.ComponentIndex != ev.ComponentIndex) return true;
- if (te.Category != ev.Category) return true;
- if (te.Group != ev.Group) return true;
- if (te.NotificationTime != ev.NotificationTime) return true;
- if (te.Guidance != ev.Guidance) return true;
- if (te.RequiresUserIntervention != ev.RequiresUserIntervention) return true;
- if (te.Persistent != ev.Persistent) return true;
-
- return false;
- }
-
- private static void MapExcelEventToEventType(ExcelEventType evx, EventType ev)
- {
- ev.Code = int.Parse(evx.Code);
- ev.Name = evx.Name;
- ev.Title = evx.Title;
- ev.Description = evx.Description;
- ev.TechnicalDescription = evx.TechnicalDescription;
- ev.ComponentIndex = evx.Index != null ? int.Parse(evx.Index) : 0;
- ev.Category = (EventTypeCategories)Enum.Parse(typeof(EventTypeCategories), evx.Category.Replace(" ", ""), true);
- ev.Group = (EventTypeGroups)Enum.Parse(typeof(EventTypeGroups), evx.Group.Replace(" ", ""), true);
- ev.NotificationTime = (EventTypeNotificationTimes)Enum.Parse(typeof(EventTypeNotificationTimes), evx.NotificationTime.Replace(" ", ""), true);
- ev.Guidance = !String.IsNullOrWhiteSpace(evx.Guidance) ? evx.Guidance : null;
- ev.RequiresUserIntervention = evx.UserInterventionRequired == "Yes";
- ev.Persistent = evx.Persistent == "Yes";
- }
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
index ea00f8746..4c5c9cf45 100644
--- a/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.EventsTypesGenerator/Tango.EventsTypesGenerator.csproj
@@ -56,12 +56,11 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="..\..\Resources\Events Revisions\Tango alarm events handling chart_Rev28.xlsx">
- <Link>Tango alarm events handling chart_Rev28.xlsx</Link>
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
<None Include="App.config" />
<None Include="packages.config" />
+ <None Include="Events.xlsx">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Tango.BL\Tango.BL.csproj">
diff --git a/Software/Visual_Studio/Utilities/Tango.FirmwarePackageGenerator/MainWindowVM.cs b/Software/Visual_Studio/Utilities/Tango.FirmwarePackageGenerator/MainWindowVM.cs
index faca7d60e..62cef8b36 100644
--- a/Software/Visual_Studio/Utilities/Tango.FirmwarePackageGenerator/MainWindowVM.cs
+++ b/Software/Visual_Studio/Utilities/Tango.FirmwarePackageGenerator/MainWindowVM.cs
@@ -55,8 +55,6 @@ namespace Tango.FirmwarePackageGenerator
});
}
- descriptor.Validate();
-
using (MemoryStream ms = new MemoryStream())
{
descriptor.WriteTo(ms);
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.config b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.config
deleted file mode 100644
index 731f6de6c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml
deleted file mode 100644
index 66f763000..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml
+++ /dev/null
@@ -1,24 +0,0 @@
-<Application x:Class="Tango.JobProgressTester.UI.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:Tango.JobProgressTester.UI"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
-
- <!--Touch-->
- <ResourceDictionary Source="pack://application:,,,/Tango.Touch;component/Resources/Colors.xaml"/>
-
- <!--Common-->
- <ResourceDictionary Source="pack://application:,,,/Tango.PPC.Common;component/Resources/Merged.xaml" />
-
- <!--Local-->
- <!--<ResourceDictionary Source="Resources/Colors.xaml"></ResourceDictionary>
- <ResourceDictionary Source="Resources/Fonts.xaml"></ResourceDictionary>
- <ResourceDictionary Source="Resources/Styles.xaml"></ResourceDictionary>-->
-
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Application.Resources>
-</Application>
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml.cs
deleted file mode 100644
index b7efa1e9e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/App.xaml.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace Tango.JobProgressTester.UI
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs
deleted file mode 100644
index e646ee51e..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/JobHandler2.cs
+++ /dev/null
@@ -1,259 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL.Entities;
-using Tango.Integration.Operation;
-using Tango.Logging;
-using Tango.PMR.Printing;
-
-namespace Tango.JobProgressTester.UI
-{
- public class JobHandler2 : JobHandler
- {
- public JobHandler2(Action cancelAction, Job job, JobTicket jobTicket, ProcessParametersTable processParameters, JobHandlerModes mode)
- : base(cancelAction, job, jobTicket, processParameters, mode)
- {
-
- }
-
- protected override void InvalidateJobProgress(JobStatus s)
- {
- JobStatus = s;
-
- if (_last_progress != s.Progress)
- {
- if (s.Progress <= PROGRESS_REPORT_RANGE_METERS || s.Progress >= Status.TotalProgress - PROGRESS_REPORT_RANGE_METERS)
- {
- LogManager.Log($"Updating job progress {s.Progress}/{Status.TotalProgress}...");
- }
- else if (!loggedContinueMessage)
- {
- loggedContinueMessage = true;
- LogManager.Log($"Progress logging will continue {PROGRESS_REPORT_RANGE_METERS} meters before completion...");
- }
- }
-
- if (s.Progress < 0)
- {
- LogManager.Log($"Invalid job progress received '{s.Progress}'.", LogCategory.Error);
- return;
- }
-
- if (s.Progress > Status.TotalProgress)
- {
- LogManager.Log($"Invalid job progress received '{s.Progress}' while total progress is '{Status.TotalProgress}'.", LogCategory.Error);
- return;
- }
-
- if (s.Progress < _last_progress)
- {
- LogManager.Log($"Invalid job progress received '{s.Progress}' while last progress was '{_last_progress}'.");
- }
-
- _last_progress = s.Progress;
-
- List<Segment> unit_segments = new List<Segment>();
-
- Status.Progress = s.Progress;
- Status.RemainingTime = Status.TotalTime - Job.TranslateProgressToTime(Status.Progress, ProcessParameters);
- Status.RemainingProgress = Status.TotalProgress - Status.Progress;
-
- if (s.Progress < Status.SettingUpTotalProgress || Status.SettingUpProgress < Status.SettingUpTotalProgress)
- {
- Status.SettingUpProgress = Math.Min(s.Progress, this.Status.SettingUpTotalProgress);
- Status.IsSettingUp = true;
- }
- if (s.Progress >= Status.SettingUpTotalProgress)
- {
- if (Status.IsSettingUp && Status.Progress > 0)
- {
- Status.IsSettingUp = false;
- }
-
- Status.ProgressMinusSettingUp = s.Progress - this.Status.SettingUpTotalProgress;
- }
-
- int units = (int)Math.Max(Job.NumberOfUnits, 1);
-
- if (s.Progress < Job.LengthIncludingNumberOfUnits || _mode == JobHandlerModes.SettingUp)
- {
- Status.ProgressWithoutFinalization = s.Progress;
-
- unit_segments = _effectiveSegments.ToList();
- Status.CurrentUnitProgress = 0.0;
- double previousUnitsLengthWithoutThis = 0.0;
- for (int index = 0; index < units; ++index)
- {
- Status.CurrentUnit = index;
- double unitLength = !Job.EnableInterSegment || index >= units - 1 ? Job.Length : Job.Length + Job.InterSegmentLength;
- if (_mode == JobHandlerModes.Finalization)
- {
- if (s.Progress < unitLength + previousUnitsLengthWithoutThis)
- {
- Status.CurrentUnitProgress = s.Progress - previousUnitsLengthWithoutThis;
- break;
- }
- }
- else if (s.Progress <= previousUnitsLengthWithoutThis + unitLength + Status.SettingUpProgress)
- {
- if (!Status.IsSettingUp)
- {
- Status.CurrentUnitProgress = s.Progress - previousUnitsLengthWithoutThis - this.Status.SettingUpProgress;
- break;
- }
- break;
- }
- previousUnitsLengthWithoutThis += unitLength;
- }
- Status.RemainingUnits = this.Job.NumberOfUnits - this.Status.CurrentUnit;
-
- if (Job.EnableInterSegment && Job.NumberOfUnits > 1 && Status.RemainingUnits > 1)
- {
- unit_segments.Add(Job.CreateInterSegment(Job.InterSegmentLength));
- }
-
- if (unit_segments.Count != Status.CurrentUnitSegments.Count)
- {
- Status.CurrentUnitSegments = unit_segments;
- }
-
- Status.CurrentUnitTotalProgress = Status.RemainingUnits > 1 && Job.EnableInterSegment ? Job.Length + (Job.InterSegmentLength) : Job.Length;
-
- if (s.Message != _lastStatusMessage && s.Message != String.Empty)
- {
- Status.Message = s.Message;
- }
- else
- {
- Status.Message = null;
- }
-
- _lastStatusMessage = s.Message;
-
-
- RaiseStatusChanged();
-
- //Segments Completion
- if (Status.CurrentUnit > _last_unit)
- {
- foreach (var segment in Status.CurrentUnitSegments)
- {
- segment.Started = false;
- segment.Completed = false;
- }
-
- if (Job.NumberOfUnits > 1)
- {
- RaiseUnitCompleted(_last_unit);
- }
- }
-
- _last_unit = Status.CurrentUnit;
-
-
- for (int i = 0; i < Status.CurrentUnitSegments.Count; i++)
- {
- Segment segment = Status.CurrentUnitSegments[i];
- double previousSegmentsLengthWithThis = Status.CurrentUnitSegments.Take(i + 1).Sum(x => x.LengthWithFactor);
- TimeSpan segmentsDuration = Job.TranslateProgressToTime(previousSegmentsLengthWithThis, ProcessParameters);
- TimeSpan segmentRemainingTime = segmentsDuration - Job.TranslateProgressToTime(Status.CurrentUnitProgress, ProcessParameters);
-
- if (i == 0 && Status.CurrentUnitProgress > 0)
- {
- if (!segment.Started)
- {
- segment.Started = true;
- RaiseSegmentStarted(segment);
- }
- }
-
- if (Status.CurrentUnitProgress >= previousSegmentsLengthWithThis)
- {
- if (!segment.Completed)
- {
- segment.Completed = true;
- RaiseSegmentCompleted(segment);
- }
-
- if (i < Status.CurrentUnitSegments.Count - 1)
- {
- if (!Status.CurrentUnitSegments[i + 1].Started)
- {
- Status.CurrentUnitSegments[i + 1].Started = true;
- RaiseSegmentStarted(Status.CurrentUnitSegments[i + 1]);
- }
- }
- }
-
- if (segment.Started && !segment.Completed)
- {
- segment.RemainingTime = segmentRemainingTime;
- }
- }
-
- //Set Segment Completion for All Segments List
- for (int i = 0; i < Status.Segments.Count; i++)
- {
- Segment segment = Status.Segments[i];
- double previousSegmentsLengthWithThis = Status.Segments.Take(i + 1).Sum(x => x.LengthWithFactor);
- TimeSpan segmentsDuration = Job.TranslateProgressToTime(previousSegmentsLengthWithThis, ProcessParameters);
- TimeSpan segmentRemainingTime = segmentsDuration - Job.TranslateProgressToTime(Status.Progress, ProcessParameters);
-
- segment.Progress = Math.Min(Math.Max((previousSegmentsLengthWithThis - segment.Length - Status.Progress) * -1, 0), segment.Length);
-
- if (i == 0 && Status.Progress > 0)
- {
- if (!segment.Started)
- {
- segment.Started = true;
- Status.CurrentSegment = segment;
- }
- }
-
- if (Status.Progress >= previousSegmentsLengthWithThis)
- {
- if (!segment.Completed)
- {
- segment.Completed = true;
- }
-
- if (i < Status.Segments.Count - 1)
- {
- if (!Status.Segments[i + 1].Started)
- {
- Status.Segments[i + 1].Started = true;
- Status.CurrentSegment = Status.Segments[i + 1];
- }
- }
- }
-
- if (segment.Started && !segment.Completed)
- {
- segment.RemainingTime = segmentRemainingTime;
- }
- }
- }
- else
- {
- //Finalizing
- if (!_finalizing)
- {
- _finalizing = true;
- Status.IsFinalizing = true;
- var last_Segment = _effectiveSegments.Last().Clone();
- last_Segment.Length = ProcessParameters.DryerBufferLengthMeters;
- Status.CurrentUnitSegments = new List<Segment> { last_Segment };
- Status.CurrentUnitTotalProgress = last_Segment.Length;
- Status.CurrentUnitProgress = 0;
- Status.ProgressWithoutFinalization = Status.TotalProgressWithoutFinalization;
- RaiseFinalizing();
- }
-
- Status.CurrentUnitProgress = s.Progress - Job.LengthIncludingNumberOfUnits;
- Status.FinalizingProgress = s.Progress - Status.TotalProgressWithoutFinalization;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml
deleted file mode 100644
index d31e45d72..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml
+++ /dev/null
@@ -1,99 +0,0 @@
-<Window x:Class="Tango.JobProgressTester.UI.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:jobViews="clr-namespace:Tango.PPC.Jobs.Views;assembly=Tango.PPC.Jobs"
- xmlns:local="clr-namespace:Tango.JobProgressTester.UI"
- mc:Ignorable="d"
- Title="Job Progress Tester" Height="950" Width="600" d:DataContext="{d:DesignInstance Type=local:MainWindowVM,IsDesignTimeCreatable=False}">
- <Grid IsEnabled="{Binding IsFree}">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="90"/>
- <RowDefinition Height="600*"/>
- <RowDefinition Height="150*"/>
- <RowDefinition Height="110"/>
- </Grid.RowDefinitions>
-
- <ComboBox FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center" Width="350" ItemsSource="{Binding Jobs}" SelectedItem="{Binding SelectedJob}" DisplayMemberPath="Name" Margin="96,28"></ComboBox>
-
- <Grid Grid.Row="1">
- <Viewbox Stretch="Uniform">
- <jobViews:JobProgressView Width="800" Height="1000" DataContext="{Binding JobProgressViewVM}" />
- </Viewbox>
- </Grid>
-
- <Grid Grid.Row="2">
- <StackPanel Margin="10">
- <TextBlock>Current Unit Segments.</TextBlock>
- <ItemsControl ItemsSource="{Binding JobProgressViewVM.RunningJobStatus.CurrentUnitSegments}" Margin="0 5">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <DockPanel>
- <TextBlock>
- <TextBlock.Style>
- <Style TargetType="TextBlock">
- <Setter Property="Visibility" Value="Visible"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsInterSegment}" Value="True">
- <Setter Property="Visibility" Value="Collapsed"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBlock.Style>
- <Run>Segment</Run>
- <Run Text="{Binding SegmentIndex}"></Run>
- </TextBlock>
- <TextBlock Text="Inter Segment">
- <TextBlock.Style>
- <Style TargetType="TextBlock">
- <Setter Property="Visibility" Value="Collapsed"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsInterSegment}" Value="True">
- <Setter Property="Visibility" Value="Visible"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBlock.Style>
- </TextBlock>
- <TextBlock Margin="10 0 0 0">
- <TextBlock.Style>
- <Style TargetType="TextBlock">
- <Setter Property="Text" Value="Pending"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding Started}" Value="True">
- <Setter Property="Text" Value="Started"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Completed}" Value="True">
- <Setter Property="Text" Value="Completed"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBlock.Style>
- </TextBlock>
- <TextBlock Margin="10 0 0 0" Text="{Binding RemainingTime,StringFormat='hh\\:mm\\:ss'}"></TextBlock>
- </DockPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </StackPanel>
- </Grid>
-
- <Grid Grid.Row="3">
- <StackPanel Margin="20">
- <TextBlock HorizontalAlignment="Center">
- <Run Text="{Binding Progress,Mode=OneWay,StringFormat='0.0'}"></Run>
- <Run>/</Run>
- <Run Text="{Binding JobHandler.Status.TotalProgress,Mode=OneWay,StringFormat='0.0'}"></Run>
- </TextBlock>
- <DockPanel Margin="0 5 0 0" HorizontalAlignment="Center" Width="200" >
- <Button DockPanel.Dock="Right" Width="40" Height="20">SET</Button>
- <TextBox Text="{Binding Progress}"></TextBox>
- </DockPanel>
- <Slider VerticalAlignment="Center" Margin="0 10 0 0" Maximum="{Binding JobHandler.Status.TotalProgress}" Value="{Binding Progress,Mode=TwoWay}"></Slider>
- </StackPanel>
- </Grid>
- </Grid>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml.cs
deleted file mode 100644
index 2bfbf4101..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindow.xaml.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using Tango.Core.DI;
-
-namespace Tango.JobProgressTester.UI
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- TangoIOC.Default.ThrowOnRequestedTypeNotFound = false;
- InitializeComponent();
- DataContext = new MainWindowVM();
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindowVM.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindowVM.cs
deleted file mode 100644
index d21500685..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/MainWindowVM.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Data.Entity;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using Tango.BL;
-using Tango.BL.Builders;
-using Tango.BL.Entities;
-using Tango.Core;
-using Tango.Integration.Operation;
-using Tango.Logging;
-using Tango.PMR.Printing;
-using Tango.PPC.Jobs.ViewModels;
-using Tango.SharedUI;
-
-namespace Tango.JobProgressTester.UI
-{
- public class MainWindowVM : ViewModel
- {
- private DataSource _dataSource;
-
- private List<Job> _jobs;
- public List<Job> Jobs
- {
- get { return _jobs; }
- set { _jobs = value; RaisePropertyChangedAuto(); }
- }
-
- private Job _selectedJob;
- public Job SelectedJob
- {
- get { return _selectedJob; }
- set { _selectedJob = value; RaisePropertyChangedAuto(); OnSelectedJobChanged(); }
- }
-
- private Job _activeJob;
- public Job ActiveJob
- {
- get { return _activeJob; }
- set { _activeJob = value; RaisePropertyChangedAuto(); }
- }
-
- private JobProgressViewVM _jobProgressViewVM;
- public JobProgressViewVM JobProgressViewVM
- {
- get { return _jobProgressViewVM; }
- set { _jobProgressViewVM = value; RaisePropertyChangedAuto(); }
- }
-
- private JobHandler2 _jobHandler;
- public JobHandler2 JobHandler
- {
- get { return _jobHandler; }
- set { _jobHandler = value; RaisePropertyChangedAuto(); }
- }
-
- private double _progress;
- public double Progress
- {
- get { return _progress; }
- set { _progress = value; RaisePropertyChangedAuto(); OnProgressChanged(); }
- }
-
- public MainWindowVM()
- {
- Application.Current.MainWindow.ContentRendered += (_, __) => Init();
- }
-
- private async void Init()
- {
- LogManager.RegisterLogger(new VSOutputLogger());
-
- _dataSource = new DataSource()
- {
- Address = "localhost\\SQLPPC",
- Catalog = "Tango",
- IntegratedSecurity = true
- };
-
- try
- {
- IsFree = false;
- ObservablesContext.OverrideSettingsDataSource(_dataSource);
-
- using (ObservablesContext db = ObservablesContext.CreateDefault())
- {
- Jobs = await db.Jobs.ToListAsync();
- }
- }
- catch (Exception ex)
- {
- ShowError(ex.FlattenMessage());
- }
- finally
- {
- IsFree = true;
- }
- }
-
- private async void OnSelectedJobChanged()
- {
- if (SelectedJob != null)
- {
- try
- {
- IsFree = false;
-
- using (ObservablesContext db = ObservablesContext.CreateDefault())
- {
- ActiveJob = await new JobBuilder(db)
- .Set(SelectedJob)
- .WithConfiguration()
- .WithBrushStops()
- .WithRML()
- .WithSegments()
- .WithUser()
- .BuildAsync();
-
- JobHandler = new JobHandler2(() => { }, ActiveJob, null, ActiveJob.Rml.GetActiveProcessGroup().ProcessParametersTables.First(), JobHandlerModes.SettingUp);
-
- JobProgressViewVM = new JobProgressViewVM()
- {
- Job = ActiveJob,
- RunningJobStatus = JobHandler.Status,
- };
-
- Progress = 0.1;
- }
- }
- catch (Exception ex)
- {
- ShowError(ex.FlattenMessage());
- }
- finally
- {
- IsFree = true;
- }
- }
- }
-
- private void OnProgressChanged()
- {
- if(JobHandler != null)
- {
- JobHandler.RaiseStatusReceived(new JobStatus()
- {
- Progress = Progress,
- });
- }
-
- }
-
- private void ShowError(String message)
- {
- MessageBox.Show(Application.Current.MainWindow, message, "Job Progress Tester", MessageBoxButton.OK, MessageBoxImage.Error);
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/AssemblyInfo.cs
deleted file mode 100644
index a8f112331..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tango.JobProgressTester.UI")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tango.JobProgressTester.UI")]
-[assembly: AssemblyCopyright("Copyright © 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.Designer.cs
deleted file mode 100644
index d11849c50..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.JobProgressTester.UI.Properties
-{
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.JobProgressTester.UI.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.resx b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.resx
deleted file mode 100644
index af7dbebba..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.Designer.cs
deleted file mode 100644
index 832cab525..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.JobProgressTester.UI.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.settings b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Tango.JobProgressTester.UI.csproj b/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Tango.JobProgressTester.UI.csproj
deleted file mode 100644
index eb5297422..000000000
--- a/Software/Visual_Studio/Utilities/Tango.JobProgressTester.UI/Tango.JobProgressTester.UI.csproj
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{A248FF61-94E5-428C-B30C-25CB433C5F53}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>Tango.JobProgressTester.UI</RootNamespace>
- <AssemblyName>Tango.JobProgressTester.UI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="JobHandler2.cs" />
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="MainWindowVM.cs" />
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\PPC\Modules\Tango.PPC.Jobs\Tango.PPC.Jobs.csproj">
- <Project>{096f16c8-6d06-4b5f-9496-b9d2df2d94a3}</Project>
- <Name>Tango.PPC.Jobs</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\PPC\Tango.PPC.Common\Tango.PPC.Common.csproj">
- <Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project>
- <Name>Tango.PPC.Common</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.BL\Tango.BL.csproj">
- <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project>
- <Name>Tango.BL</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Integration\Tango.Integration.csproj">
- <Project>{4206ac58-3b57-4699-8835-90bf6db01a61}</Project>
- <Name>Tango.Integration</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj">
- <Project>{BC932DBD-7CDB-488C-99E4-F02CF441F55E}</Project>
- <Name>Tango.Logging</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.PMR\Tango.PMR.csproj">
- <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
- <Name>Tango.PMR</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj">
- <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
- <Name>Tango.SharedUI</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Touch\Tango.Touch.csproj">
- <Project>{fd86424c-6e84-491b-8df9-3d0f5c236a2a}</Project>
- <Name>Tango.Touch</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <PackageReference Include="EntityFramework">
- <Version>6.2.0</Version>
- </PackageReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/App.config b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/App.config
index eb619b843..b3646d281 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/App.config
+++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/App.config
@@ -13,24 +13,4 @@
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <!--<dependentAssembly>
- <assemblyIdentity name="Z.EntityFramework.Extensions" publicKeyToken="59b66d028979105b" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.50.0" newVersion="4.0.50.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
- </dependentAssembly>-->
- </assemblyBinding>
- </runtime>
</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
index 71d5779a6..6c3c62606 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Program.cs
@@ -1,16 +1,11 @@
using System;
using System.Collections.Generic;
-using System.Data.Entity;
-using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Builders;
using Tango.BL.Entities;
-using Tango.Core;
-using Tango.Integration.Operation;
-using Z.EntityFramework.Plus;
namespace Tango.JobRunsGenerator
{
@@ -18,120 +13,75 @@ namespace Tango.JobRunsGenerator
{
static void Main(string[] args)
{
- DataSource dataSource = new DataSource();
- dataSource.Catalog = "Tango_DEV";
- dataSource.Address = "twine.database.windows.net";
- dataSource.IntegratedSecurity = false;
- dataSource.UserName = "Roy";
- dataSource.Password = "Aa123456";
+ Console.WriteLine("Job Runs Generator Started...");
- using (ObservablesContext db = ObservablesContext.CreateDefault(dataSource))
+ DateTime now = DateTime.UtcNow;
+ DateTime yearago = DateTime.UtcNow.AddYears(-1);
+ Random rnd = new Random();
+ List<String> messages = new List<string>()
{
- var count = db.JobRuns.Where(x => x.JobGuid != null).Count();
+ "Timeout failure",
+ "Thread Break",
+ "Application Exception",
+ "Over Temperature",
+ "Communication Error"
+ };
- int index = 0;
- int saveIndex = 0;
+ int count = 0;
- var runsGroup = db.JobRuns.Where(x => x.JobGuid != null).GroupBy(x => x.JobGuid).ToList();
+ using (ObservablesContext db = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS"))
+ {
+ var machines = db.Machines.ToList();
- foreach (var runGroup in runsGroup)
+ foreach (var machine in machines)
{
- var runs = runGroup;
-
- var firstRun = runs.First();
-
- var job = new JobBuilder(db).Set(x => x.Guid == firstRun.JobGuid).WithSegments().WithBrushStops().WithRML().Build();
-
- if (job == null)
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine($"Job '{firstRun.JobGuid}' was not found on the database!");
- Console.ForegroundColor = ConsoleColor.Gray;
- continue;
- }
-
- var machine = new MachineBuilder(db).Set(job.MachineGuid).WithConfiguration().Build();
+ new MachineBuilder(db).Set(machine).WithJobs().Build();
- foreach (var segment in job.Segments)
+ foreach (var job in machine.Jobs)
{
- foreach (var stop in segment.BrushStops)
+ using (ObservablesContext db2 = ObservablesContext.CreateDefault("localhost\\SQLEXPRESS"))
{
- stop.SetLiquidVolumes(machine.Configuration, job.Rml, job.Rml.GetActiveProcessGroup().ProcessParametersTables.First());
- }
- }
-
- foreach (var run in runs)
- {
- Console.WriteLine($"Fixing job {job.Name}... ({index++}/{count})");
- run.MachineGuid = job.MachineGuid;
-
- run.JobSource = job.Source;
+ for (DateTime date = yearago; date < now; date = date.AddDays(1))
+ {
+ Console.WriteLine($"Adding job runs for machine '{machine.SerialNumber}' job '{job.Name}' date {date.ToShortDateString()}...");
- if (run.JobLength == 0) run.JobLength = job.LengthIncludingNumberOfUnits;
- if (run.JobName == null) run.JobName = job.Name;
- if (run.RmlGuid == null) run.RmlGuid = job.RmlGuid;
- if (run.JobString == null) run.JobString = job.ToJobFileWhenLoaded().ToString();
- if (run.LiquidQuantityString == null) run.LiquidQuantities = MachineOperator.CreateJobRunLiquidQuantities(job, machine.Configuration, job.Rml.GetActiveProcessGroup().ProcessParametersTables.First(), run.EndPosition, job.LengthIncludingNumberOfUnits);
- if (run.UserGuid == null) run.UserGuid = job.UserGuid;
- if (run.UploadingStartDate == null) run.UploadingStartDate = run.StartDate;
- if (run.HeatingStartDate == null) run.HeatingStartDate = run.StartDate;
- if (run.ActualStartDate == null) run.ActualStartDate = run.StartDate;
- run.IsGradient = job.Segments.Any(x => x.BrushStops.Count > 1);
+ for (int i = 0; i < rnd.Next(0, 9); i++)
+ {
+ int status = rnd.Next(0, 3);
+ String message = messages[rnd.Next(0, messages.Count)];
- //Set new liquid quantities.
- if (run.CyanQuantity == 0 &&
- run.MagentaQuantity == 0 &&
- run.YellowQuantity == 0 &&
- run.BlackQuantity == 0 &&
- run.TransparentQuantity == 0 &&
- run.LubricantQuantity == 0 &&
- run.CleanerQuantity == 0)
- {
- //Cyan
- var cyan = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Cyan);
- run.CyanQuantity = cyan != null ? cyan.Quantity : 0;
+ db2.JobRuns.Add(new JobRun()
+ {
+ StartDate = date,
+ EndDate = date.AddMinutes(rnd.Next(10, 61)),
+ JobGuid = job.Guid,
+ EndPosition = job.Length / rnd.Next(1, 11),
+ Status = status,
+ FailedMessage = status == 2 ? message : null,
+ });
- //Magenta
- var magenta = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Magenta);
- run.MagentaQuantity = magenta != null ? magenta.Quantity : 0;
+ count++;
+ }
+ }
- //Yellow
- var yellow = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Yellow);
- run.YellowQuantity = yellow != null ? yellow.Quantity : 0;
-
- //Black
- var black = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Black);
- run.BlackQuantity = black != null ? black.Quantity : 0;
-
- //TI
- var ti = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.TransparentInk);
- run.TransparentQuantity = ti != null ? ti.Quantity : 0;
-
- //Lubricant
- var lubricant = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Lubricant);
- run.LubricantQuantity = lubricant != null ? lubricant.Quantity : 0;
-
- //Cleaner
- var cleaner = run.LiquidQuantities.FirstOrDefault(x => x.LiquidType == BL.Enumerations.LiquidTypes.Cleaner);
- run.CleanerQuantity = cleaner != null ? cleaner.Quantity : 0;
- }
-
- saveIndex++;
-
- if (saveIndex > 100)
- {
- saveIndex = 0;
- Console.WriteLine("Saving changes...");
- db.SaveChanges();
+ db2.SaveChanges();
}
}
}
- Console.WriteLine("Saving changes...");
- db.SaveChanges();
+ Console.WriteLine($"The generator is about to insert {count} job runs to the database are you sure? [Y/N]:");
+ var key = Console.ReadKey().Key;
- Console.WriteLine("Done!");
- Console.ReadLine();
+ if (key == ConsoleKey.Y)
+ {
+ Console.WriteLine("Saving changes to database...");
+ Console.WriteLine("Done!");
+ Console.ReadLine();
+ }
+ else
+ {
+ return;
+ }
}
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj
index e8f5af6f3..04e647f46 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/Tango.JobRunsGenerator.csproj
@@ -48,15 +48,6 @@
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
- <Reference Include="Z.EntityFramework.Extensions, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Z.EntityFramework.Extensions.5.1.6\lib\net45\Z.EntityFramework.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Z.EntityFramework.Plus.EF6, Version=5.1.6.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Z.EntityFramework.Plus.EF6.5.1.6\lib\net45\Z.EntityFramework.Plus.EF6.dll</HintPath>
- </Reference>
- <Reference Include="Z.Expressions.Eval, Version=4.0.27.0, Culture=neutral, PublicKeyToken=59b66d028979105b, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Z.Expressions.Eval.4.0.27\lib\net45\Z.Expressions.Eval.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Versioning\GlobalVersionInfo.cs">
@@ -78,18 +69,6 @@
<Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
<Name>Tango.Core</Name>
</ProjectReference>
- <ProjectReference Include="..\..\Tango.Integration\Tango.Integration.csproj">
- <Project>{4206AC58-3B57-4699-8835-90BF6DB01A61}</Project>
- <Name>Tango.Integration</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.PMR\Tango.PMR.csproj">
- <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
- <Name>Tango.PMR</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Transport\Tango.Transport.csproj">
- <Project>{74E700B0-1156-4126-BE40-EE450D3C3026}</Project>
- <Name>Tango.Transport</Name>
- </ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config
index 6d95e7b5d..b3daf0d6c 100644
--- a/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config
+++ b/Software/Visual_Studio/Utilities/Tango.JobRunsGenerator/packages.config
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.2.0" targetFramework="net461" />
- <package id="Z.EntityFramework.Extensions" version="5.1.6" targetFramework="net461" />
- <package id="Z.EntityFramework.Plus.EF6" version="5.1.6" targetFramework="net461" />
- <package id="Z.Expressions.Eval" version="4.0.27" targetFramework="net461" />
</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.config b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.config
deleted file mode 100644
index 731f6de6c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml
deleted file mode 100644
index 09124c44f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml
+++ /dev/null
@@ -1,9 +0,0 @@
-<Application x:Class="Tango.LiquidColorGenerator.UI.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:Tango.LiquidColorGenerator.UI"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
-
- </Application.Resources>
-</Application>
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml.cs b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml.cs
deleted file mode 100644
index aba8ead65..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/App.xaml.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace Tango.LiquidColorGenerator.UI
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml
deleted file mode 100644
index cfdd6de22..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml
+++ /dev/null
@@ -1,21 +0,0 @@
-<Window x:Class="Tango.LiquidColorGenerator.UI.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:brush="clr-namespace:Tango.BrushPicker;assembly=Tango.BrushPicker"
- xmlns:local="clr-namespace:Tango.LiquidColorGenerator.UI"
- mc:Ignorable="d"
- Title="MainWindow" Height="300" Width="800">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="300"/>
- <ColumnDefinition Width="*"/>
- </Grid.ColumnDefinitions>
-
- <brush:BrushPicker x:Name="picker" VerticalAlignment="Stretch" BrushTypeVisibility="Collapsed" />
-
- <TextBox Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="300" FontSize="30" x:Name="txt"></TextBox>
-
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml.cs
deleted file mode 100644
index 6cba6e577..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/MainWindow.xaml.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-
-namespace Tango.LiquidColorGenerator.UI
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
-
- picker.ColorChanged += Picker_ColorChanged;
- txt.TextChanged += Txt_TextChanged;
- }
-
- private void Txt_TextChanged(object sender, TextChangedEventArgs e)
- {
- try
- {
- picker.Color = Core.Helpers.ColorHelper.IntegerToColor(int.Parse(txt.Text));
- }
- catch { }
- }
-
- private void Picker_ColorChanged(object sender, BrushPicker.ColorChangedEventArgs e)
- {
- txt.Text = Core.Helpers.ColorHelper.ColorToInteger(e.Color).ToString();
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/AssemblyInfo.cs
deleted file mode 100644
index 382030056..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tango.LiquidColorGenerator.UI")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tango.LiquidColorGenerator.UI")]
-[assembly: AssemblyCopyright("Copyright © 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.Designer.cs
deleted file mode 100644
index 9ce60d611..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.LiquidColorGenerator.UI.Properties
-{
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.LiquidColorGenerator.UI.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.resx b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.resx
deleted file mode 100644
index af7dbebba..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.Designer.cs
deleted file mode 100644
index fe9f990ce..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.LiquidColorGenerator.UI.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.settings b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Tango.LiquidColorGenerator.UI.csproj b/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Tango.LiquidColorGenerator.UI.csproj
deleted file mode 100644
index d77bd1cdd..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LiquidColorGenerator.UI/Tango.LiquidColorGenerator.UI.csproj
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{949857A0-777D-4A32-8668-7163E404D800}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>Tango.LiquidColorGenerator.UI</RootNamespace>
- <AssemblyName>Tango.LiquidColorGenerator.UI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.BrushPicker\Tango.BrushPicker.csproj">
- <Project>{40085232-aced-4cbe-945b-90ba8153c151}</Project>
- <Name>Tango.BrushPicker</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.config b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.config
deleted file mode 100644
index bafe24888..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.config
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.0.5.0" newVersion="5.0.5.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml
deleted file mode 100644
index 6d399479f..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml
+++ /dev/null
@@ -1,26 +0,0 @@
-<Application x:Class="Tango.LogViewer.UI.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:Tango.LogViewer.UI"
- xmlns:vm="clr-namespace:Tango.LogViewer.UI.ViewModels"
- StartupUri="MainWindow.xaml" Startup="App_Startup">
- <Application.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
- <!-- Accent and AppTheme setting -->
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/FlatButton.xaml" />
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Colors.xaml" />
- <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Styles.xaml" />
-
- <ResourceDictionary>
- <vm:MainViewVM x:Key="MainViewVM" />
- </ResourceDictionary>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Application.Resources>
-</Application>
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml.cs
deleted file mode 100644
index 44d17a48a..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/App.xaml.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace Tango.LogViewer.UI
-{
- /// <summary>
- /// Interaction logic for App.xaml
- /// </summary>
- public partial class App : Application
- {
- public static String[] StartArgs { get; set; }
-
- public void App_Startup(object sender, StartupEventArgs e)
- {
- StartArgs = e.Args;
- }
- }
-
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ApplicationLogViewerParser.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ApplicationLogViewerParser.cs
deleted file mode 100644
index 1a43a7eff..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ApplicationLogViewerParser.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Logging;
-using System.Text.RegularExpressions;
-using System.IO;
-using System.Globalization;
-
-namespace Tango.LogViewer.UI.LogViewerFileParser
-{
- public class ApplicationLogViewerParser : ILogViewerParser
- {
- public ApplicationLogViewerParser()
- {
-
- }
- public void Parse(string file, DateTime datetime, ref List<LogItemBase> logItems)
- {
- String text = File.ReadAllText(file);
- var logs = Regex.Split(text, @"(\[\d{2}:\d{2}:\d{2}.\d{2}\])");
-
- String logText = String.Empty;
-
- for (int i = 1; i < logs.Length; i += 2)
- {
- try
- {
- DateTime date = DateTime.ParseExact(logs[i].Replace("[", "").Replace("]", ""), "HH:mm:ss.ff", CultureInfo.InvariantCulture);
-
- logText = logs[i + 1];
- var matches = Regex.Matches(logText, @"(?<=\[)(.*?)(?=\])");
-
- MessageLogItem item = new MessageLogItem();
- item.TimeStamp = new DateTime(datetime.Year, datetime.Month, datetime.Day, date.Hour, date.Minute, date.Second, date.Millisecond);
- item.Category = (LogCategory)Enum.Parse(typeof(LogCategory), matches[0].ToString());
- item.CallerFile = matches[1].ToString();
- item.CallerMethodName = matches[2].ToString();
- item.CallerLineNumber = int.Parse(matches[3].ToString());
-
- int messageStartIndex = matches[3].Index + matches[3].Length + 2;
-
- item.Message = logText.Substring(messageStartIndex, logText.Length - messageStartIndex);
-
- logItems.Add(item);
- }
- catch (Exception ex)
- {
- LogManager.Default.Log(ex, "Could not parse log line: " + logText);
- }
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/EmbeddedLogViewerParser.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/EmbeddedLogViewerParser.cs
deleted file mode 100644
index 1d0028f10..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/EmbeddedLogViewerParser.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using Tango.Integration.Logging;
-using Tango.Logging;
-
-namespace Tango.LogViewer.UI.LogViewerFileParser
-{
- public class EmbeddedLogViewerParser : ILogViewerParser
- {
- public EmbeddedLogViewerParser()
- {
-
-
- }
- public void Parse(string file, DateTime datetime, ref List<LogItemBase> logItems)
- {
- String text = File.ReadAllText(file);
- var logs = Regex.Split(text, @"(\[\d{2}:\d{2}:\d{2}.\d{2}\])");
-
- for (int i = 1; i < logs.Length; i += 2)
- {
- try
- {
- DateTime date = DateTime.ParseExact(logs[i].Replace("[", "").Replace("]", ""), "HH:mm:ss.ff", CultureInfo.InvariantCulture);
- String rest = logs[i + 1];
-
- var entries = Regex.Split(rest, @"\[(.*?)\]");
-
- LogItemBase item = new EmbeddedLogItem(new PMR.Debugging.StartDebugLogResponse()
- {
- Category = (PMR.Debugging.DebugLogCategory)Enum.Parse(typeof(PMR.Debugging.DebugLogCategory), entries[1]),
- FileName = entries[3],
- LineNumber = uint.Parse(entries[5]),
- ModuleId = uint.Parse(entries[7]),
- Filter = uint.Parse(entries[9]),
- Message = new String(entries[10].Skip(2).ToArray())
- });
- item.TimeStamp = new DateTime(datetime.Year, datetime.Month, datetime.Day, date.Hour, date.Minute, date.Second, date.Millisecond);
-
- logItems.Add(item);
- }
- catch (Exception ex)
- {
- //LogManager.Default.Log(ex, "Could not parse log line: " + logs[i]);
- }
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ILogViewerParser.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ILogViewerParser.cs
deleted file mode 100644
index a0088a770..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerFileParser/ILogViewerParser.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Logging;
-
-namespace Tango.LogViewer.UI.LogViewerFileParser
-{
- public interface ILogViewerParser
- {
- void Parse(string file, DateTime datetime, ref List<LogItemBase> logItems);
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerManager.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerManager.cs
deleted file mode 100644
index 3615eb50a..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/LogViewerManager.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Logging;
-using Tango.LogViewer.UI.LogViewerFileParser;
-
-namespace Tango.LogViewer.UI
-{
- public class LogViewerManager
- {
- private ILogViewerParser _parser;
-
- public LogFile LogFile { get; set; }
-
- public string FileName { get; set; }
-
- public bool IsEmbeddedLog { get; set; }
-
- public int CountOfSet { get; set; }
-
- public LogViewerManager()
- {
- LogFile = null; ;
- }
-
- /// <summary>
- /// Create LogFile by given path.
- /// </summary>
- /// <param name="file">The file.</param>
- public void InitLogFile(String file)
- {
- LogFile = GetLogFile(file);
- }
-
- /// <summary>
- /// Gets set of log files by path.
- /// </summary>
- public LogFile GetLogFile(string filePath)
- {
- if (!File.Exists(filePath))
- {
- throw new IOException("File not found.");
- }
- if (Path.GetExtension(filePath) != ".log")
- {
- throw new IOException("Invalid log file extension. extension must be *.log");
- }
-
- var directoryName = Path.GetDirectoryName(filePath);
- var logfileName = Path.GetFileNameWithoutExtension(filePath);
- String fileName = logfileName;
- int index = logfileName.IndexOf("-");
- if (index >= 0)
- {
- fileName = logfileName.Substring(0, index);
- }
- int indexPos = logfileName.IndexOf(FileLogger.FILE_SET_EXTENSION);
- if (indexPos > 0)
- {
- logfileName = logfileName.Substring(0, indexPos);
- }
-
- String dateString = System.IO.Path.GetFileNameWithoutExtension(filePath).Replace($"{fileName}-", "").Replace("_session", "");
- indexPos = dateString.IndexOf(FileLogger.FILE_SET_EXTENSION);
- int indexOfFile = 0;
- CountOfSet = 0;
- if (indexPos > 0)
- {
- string fileNameIndex = dateString.Substring(indexPos + FileLogger.FILE_SET_EXTENSION.Length);
- string[] fileEntries = Directory.GetFiles(directoryName, $"{logfileName}*{Path.GetExtension(filePath)}").Where(x => Path.GetFileName(x).StartsWith(logfileName)).OrderBy(x => x).ToArray();
- CountOfSet = fileEntries.Length;
- int.TryParse(fileNameIndex, out indexOfFile);
- dateString = dateString.Substring(0, indexPos);
- }
- DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture);
- return (new LogFile() { DateTime = date, File = filePath, FileName = logfileName, PartOfSet = indexOfFile > 0, SetStartIndex = indexOfFile, SetCount = CountOfSet });
- }
-
- /// <summary>
- /// Parses the this LogFile.
- /// </summary>
- public List<LogItemBase> Parse()
- {
- IsEmbeddedLog = false;
- FileName = "";
- List<LogItemBase> logItems = new List<LogItemBase>();
- if (LogFile == null)
- return logItems;
-
- FileName = LogFile.FileName;
-
- IsEmbeddedLog = FileName.StartsWith("Embedded");
- if (IsEmbeddedLog)
- {
- _parser = new EmbeddedLogViewerParser();
- }
- else
- {
- _parser = new ApplicationLogViewerParser();
- }
-
- if (LogFile.PartOfSet)
- {
- string extension = Path.GetExtension(LogFile.File);
- var directoryName = Path.GetDirectoryName(LogFile.File);
-
- string[] fileEntries = Directory.GetFiles(directoryName, $"{FileName}*{extension}").Where(x => Path.GetFileName(x).StartsWith(FileName)).OrderBy(x => x).ToArray();
-
- foreach (var file in fileEntries)
- {
- _parser.Parse(file, LogFile.DateTime, ref logItems);
- }
- }
- else
- {
- _parser.Parse(LogFile.File, LogFile.DateTime, ref logItems);
- }
-
- return logItems;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml
deleted file mode 100644
index a4fc6a628..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml
+++ /dev/null
@@ -1,326 +0,0 @@
-<mahapps:MetroWindow x:Class="Tango.LogViewer.UI.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:System="clr-namespace:System;assembly=mscorlib"
- xmlns:local="clr-namespace:Tango.LogViewer.UI"
- xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:fa="http://schemas.fontawesome.io/icons/"
- xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
- mc:Ignorable="d"
- Title="Tango Log Viewer" WindowState="Maximized" ShowTitleBar="True" ShowCloseButton="True" DataContext="{StaticResource MainViewVM}" AllowDrop="True" Drop="FileWindow_Drop" Foreground="Gainsboro">
- <Window.Resources>
- <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter"></converters:EnumToDescriptionConverter>
- <converters:BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
- <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"/>
- <converters:BooleanInverseConverter x:Key="BooleanInverseConverter" />
-
- <SolidColorBrush x:Key="GrayBrush5" Color="#464646"/>
- <SolidColorBrush x:Key="BorderGrayBrush" Color="#464646"/>
- <SolidColorBrush x:Key="SelectedItemBrush" Color="#007ACC"/>
-
- <Style x:Key="LogDataGridCellStyle" TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
- <Setter Property="VerticalContentAlignment" Value="Center"/>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="TextBlock.VerticalAlignment" Value="Center" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type DataGridCell}">
- <Grid Background="{TemplateBinding Background}">
- <ContentPresenter VerticalAlignment="Bottom" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- </Trigger>
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="IsFocused" Value="False" />
- <Condition Property="DataGridCell.IsSelected" Value="True" />
- </MultiTrigger.Conditions>
- <MultiTrigger.Setters>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- </MultiTrigger.Setters>
- </MultiTrigger>
- </Style.Triggers>
- </Style>
-
- <Style x:Key="LogDataGridRowStyle" TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
- <Setter Property="VerticalContentAlignment" Value="Center"/>
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- <Setter Property="Cursor" Value="Hand"></Setter>
- </Trigger>
- <Trigger Property="IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
- <DataTrigger Binding="{Binding CallerMethodName}" Value="OnStartup">
- <Setter Property="Background" Value="#3F3F49"></Setter>
- <Setter Property="Foreground" Value="Gainsboro" />
- <Setter Property="FontWeight" Value="SemiBold"></Setter>
- <Setter Property="Cursor" Value="Arrow"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding LogObject}" Value="External Bridge">
- <Setter Property="Foreground" Value="#28A805" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
-
- <Style x:Key="EmLogDataGridRowStyle" TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
- <Setter Property="VerticalContentAlignment" Value="Center"/>
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- <Setter Property="Cursor" Value="Hand"></Setter>
- </Trigger>
- <Trigger Property="DataGridCell.IsSelected" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}" />
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter Property="Background" Value="Transparent"></Setter>
- </Trigger>
-
- <DataTrigger Binding="{Binding LogObject}" Value="External Bridge">
- <Setter Property="Foreground" Value="#28A805" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
-
- <DataTemplate x:Key="LogIconStyle">
- <fa:ImageAwesome Height="16" Width="14" Margin="0 0 0 0" VerticalAlignment="Top">
- <fa:ImageAwesome.Style>
- <Style TargetType="fa:ImageAwesome">
- <Setter Property="Icon" Value="ExclamationTriangle"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding Category}" Value="Info">
- <Setter Property="Icon" Value="InfoCircle"></Setter>
- <Setter Property="Foreground" Value="Gainsboro"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Warning">
- <Setter Property="Icon" Value="ExclamationTriangle"></Setter>
- <Setter Property="Foreground" Value="DarkOrange"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Error">
- <Setter Property="Icon" Value="ExclamationTriangle"></Setter>
- <Setter Property="Foreground" Value="Red"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Critical">
- <Setter Property="Icon" Value="Bell"></Setter>
- <Setter Property="Foreground" Value="Red"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding Category}" Value="Debug">
- <Setter Property="Icon" Value="Bug"></Setter>
- <Setter Property="Foreground" Value="Gray"></Setter>
- </DataTrigger>
- <DataTrigger Binding="{Binding CallerMethodName}" Value="OnStartup">
- <Setter Property="Icon" Value="ClockOutline"></Setter>
- <Setter Property="Foreground" Value="{StaticResource SelectedItemBrush}"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </fa:ImageAwesome.Style>
- </fa:ImageAwesome>
- </DataTemplate>
-
- <Style x:Key="DataGridTextColumnElementStyle" TargetType="{x:Type TextBlock}">
- <Setter Property="Margin" Value="5" />
- <Setter Property="Padding" Value="5" />
- </Style>
-
- </Window.Resources>
- <Grid IsEnabled="{Binding Loading,Converter={StaticResource BooleanInverseConverter}}">
- <Grid.RowDefinitions>
- <RowDefinition Height="28" />
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="28"/>
- <RowDefinition Height="5"/>
- </Grid.RowDefinitions>
-
- <Menu Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="10,0,0,0" BorderBrush="Transparent" Background="Transparent">
- <MenuItem Header="File" Background="Transparent">
- <MenuItem Header="Open" Command="{Binding OpeFileLogCommand}"/>
- <MenuItem Header="Exit" Click="Exit_MenuItem_Click" />
- </MenuItem>
-
- </Menu>
-
- <Grid Grid.Row="1" Margin="0 20 0 20">
- <DockPanel>
- <StackPanel Orientation="Vertical" HorizontalAlignment="Left" Margin="10 0 0 0">
- <TextBlock FontSize="10">Start Time:</TextBlock>
- <Border BorderThickness="1" BorderBrush="{StaticResource BorderGrayBrush}" VerticalAlignment="Center" CornerRadius="5" >
- <mahapps:TimePicker x:Name="startTimePicker" SelectedTime="{Binding StartSelectedTime}" Width="160" VerticalAlignment="Center" FontSize="16" IsClockVisible="False" Culture="{Binding Culture}" BorderBrush="{StaticResource BorderGrayBrush}" BorderThickness="0" Margin="1" Foreground="Gainsboro" />
- </Border>
- </StackPanel>
- <StackPanel Orientation="Vertical" HorizontalAlignment="Left" Margin="20 0 0 0">
- <TextBlock FontSize="10">End Time:</TextBlock>
- <Border BorderThickness="1" BorderBrush="{StaticResource BorderGrayBrush}" VerticalAlignment="Center" CornerRadius="5" >
- <mahapps:TimePicker x:Name="enddatePicker" SelectedTime="{Binding EndSelectedTime}" Width="160" VerticalAlignment="Center" FontSize="16" IsClockVisible="False" Culture="{Binding Culture}" PickerVisibility="HourMinute" BorderBrush="{StaticResource BorderGrayBrush}" BorderThickness="0" Margin="1" Foreground="Gainsboro"/>
- </Border>
- </StackPanel>
- <Border BorderThickness="1" BorderBrush="{StaticResource BorderGrayBrush}" VerticalAlignment="Center" Padding="10 7" CornerRadius="5" Margin="30 10 0 0">
- <StackPanel>
- <ItemsControl VerticalAlignment="Center" ItemsSource="{Binding SelectedLogCategories}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel Orientation="Horizontal" />
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
- <CheckBox IsChecked="{Binding IsSelected}" VerticalAlignment="Center" BorderBrush="{StaticResource BorderGrayBrush}"></CheckBox>
- <TextBlock Text="{Binding Data}" Margin="5 0 0 0" VerticalAlignment="Center"></TextBlock>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </StackPanel>
- </Border>
- <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="20 10 30 0">
- <fa:ImageAwesome Icon="Search" Width="24" Height="24" Foreground="#7A7A7A"/>
- <TextBox VerticalAlignment="Center" Margin="10 0 0 0" Width="300" Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged, Delay=1000}" />
- </StackPanel>
-
- </DockPanel>
- </Grid>
- <Grid Grid.Row="2" >
- <Grid Margin="10">
- <Grid.RowDefinitions>
- <RowDefinition Height="28"/>
- <RowDefinition Height="1*"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="2.5*"/>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition Width="1*"/>
- </Grid.ColumnDefinitions>
- <TextBlock FontSize="14" Grid.Row="0" FontFamily="Segoe UI">Log</TextBlock>
- <StackPanel Orientation="Horizontal" Margin="0" Grid.Row="0" Grid.Column="2">
- <TextBlock FontSize="14" Margin="10 0 0 0" FontFamily="Segoe UI">Message</TextBlock>
- <CheckBox x:Name="WrapMessgeTextCheckBox" VerticalAlignment="Center" BorderBrush="{StaticResource BorderGrayBrush}" Margin="30 -5 0 0"></CheckBox>
- <TextBlock Text="Wrap message text" Margin="5 -5 0 0" VerticalAlignment="Center"></TextBlock>
- </StackPanel>
-
- <Border Visibility="{Binding IsEmbeddedLog, Converter={StaticResource BooleanToVisibilityInverseConverter}}" Grid.Column="0" Grid.Row="1" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="{StaticResource BorderGrayBrush}" Margin="0 0 10 0">
- <DataGrid x:Name="ActionGrid" HorizontalScrollBarVisibility="Disabled" Background="Transparent" RenderOptions.EdgeMode="Aliased" RenderOptions.BitmapScalingMode="LowQuality" MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=Grid},Path=ActualWidth}" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding LogsViewSource}" SelectedItem="{Binding SelectedLog}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="True" IsReadOnly="True"
- CellStyle="{StaticResource LogDataGridCellStyle}" RowStyle="{StaticResource LogDataGridRowStyle}" Foreground="Gainsboro">
- <DataGrid.Resources>
- <Style BasedOn="{StaticResource MetroDataGridColumnHeader}" TargetType="{x:Type DataGridColumnHeader}">
- <Setter Property="Foreground" Value="Gainsboro" />
- </Style>
- </DataGrid.Resources>
- <DataGrid.Columns>
- <DataGridTemplateColumn Header="" CellTemplate="{StaticResource LogIconStyle}"/>
- <DataGridTextColumn Header="DATE TIME" Binding="{Binding TimeStamp,StringFormat=' HH:mm:ss.ff '}" Foreground="Gainsboro"/>
- <DataGridTextColumn Header="FILE" Binding="{Binding RelativeCallerFile}" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
- <DataGridTextColumn Header="METHOD" Binding="{Binding CallerMethodName}" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
- <DataGridTextColumn Header="LINE" Binding="{Binding CallerLineNumber}" />
- <DataGridTemplateColumn Header="MESSAGE" Width="1*" >
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Grid VerticalAlignment="Center" Margin="0 5 0 5">
- <Border Height="Auto" BorderThickness="0" >
- <TextBlock Text="{Binding Message}" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" ></TextBlock>
- </Border>
- </Grid>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- </DataGrid.Columns>
- </DataGrid>
- </Border>
- <StackPanel Orientation="Vertical" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding Loading,Converter={StaticResource BoolToVisibilityConverter}}">
- <mahapps:ProgressRing Foreground="LightGray" Width="80" Height="80"></mahapps:ProgressRing>
- <TextBlock Text="Loading..." FontStyle="Italic" Margin="0 40 0 0" FontSize="18" VerticalAlignment="Center"></TextBlock>
- </StackPanel>
- <Border Visibility="{Binding IsEmbeddedLog, Converter={StaticResource BoolToVisibilityConverter}}" Grid.Column="0" Grid.Row="1" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="{StaticResource BorderGrayBrush}" Margin="0 0 10 0">
- <DataGrid x:Name="embededGrid" HorizontalScrollBarVisibility="Disabled" Background="Transparent" RenderOptions.EdgeMode="Aliased" RenderOptions.BitmapScalingMode="LowQuality" MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=Grid},Path=ActualWidth}" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding LogsViewSource}" SelectedItem="{Binding SelectedLog}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="True" IsReadOnly="True"
- CellStyle="{StaticResource LogDataGridCellStyle}" RowStyle="{StaticResource EmLogDataGridRowStyle}" Foreground="Gainsboro">
- <DataGrid.Resources>
- <Style BasedOn="{StaticResource MetroDataGridColumnHeader}" TargetType="{x:Type DataGridColumnHeader}">
- <Setter Property="Foreground" Value="Gainsboro" />
- </Style>
- </DataGrid.Resources>
- <DataGrid.Columns>
- <DataGridTemplateColumn Header="ICON" CellTemplate="{StaticResource LogIconStyle}"/>
- <DataGridTextColumn Header="DATE TIME" Binding="{Binding TimeStamp,StringFormat=' HH:mm:ss.ff '}" Foreground="Gainsboro"/>
- <DataGridTextColumn Header="FILE" Binding="{Binding DebugLogResponse.FileName}" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
- <DataGridTextColumn Header="LINE" Binding="{Binding DebugLogResponse.LineNumber}" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
- <DataGridTextColumn Header="MODULE" Binding="{Binding DebugLogResponse.ModuleId}" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
- <DataGridTextColumn Header="FILTER" Binding="{Binding DebugLogResponse.Filter}" />
- <DataGridTemplateColumn Header="MESSAGE" Width="1*" >
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <Grid VerticalAlignment="Center" Margin="0 5 0 5">
- <Border Height="Auto" BorderThickness="0" >
- <TextBlock Text="{Binding MessagePlusRepeated}" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" ></TextBlock>
- </Border>
- </Grid>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- </DataGrid.Columns>
- </DataGrid>
- </Border>
- <Border Margin="10 0 0 0" Grid.Column="2" Grid.Row="1" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="{StaticResource BorderGrayBrush}">
- <TextBox BorderThickness="0" Text="{Binding Message}" IsReadOnly="True" AcceptsReturn="False" VerticalScrollBarVisibility="Auto" Foreground="Gainsboro">
- <TextBox.Style>
- <Style TargetType="TextBox" BasedOn="{StaticResource MetroTextBox}">
- <Setter Property="TextWrapping" Value="NoWrap"></Setter>
- <Setter Property="HorizontalScrollBarVisibility" Value="Auto"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding ElementName=WrapMessgeTextCheckBox, Path=IsChecked}" Value="True">
- <Setter Property="TextWrapping" Value="Wrap"></Setter>
- <Setter Property="HorizontalScrollBarVisibility" Value="Hidden"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBox.Style>
- </TextBox>
- </Border>
- <GridSplitter Grid.Column="1" Grid.Row="1" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="4" Background="{StaticResource BorderGrayBrush}"/>
- </Grid>
- </Grid>
- <StatusBar Grid.Row="3" Grid.ColumnSpan="2" Background="Transparent">
- <StatusBar.ItemsPanel>
- <ItemsPanelTemplate>
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="10" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- </Grid>
- </ItemsPanelTemplate>
- </StatusBar.ItemsPanel>
- <StatusBarItem Grid.Column="1">
- <TextBlock Text="{Binding FileName}"></TextBlock>
- </StatusBarItem>
- <Separator Grid.Column="2" Visibility="{Binding IsSet, Converter={StaticResource BoolToVisibilityConverter}}"/>
- <StatusBarItem Grid.Column="3" Visibility="{Binding IsSet, Converter={StaticResource BoolToVisibilityConverter}}">
- <TextBlock>
- <Run Text="Set: "></Run>
- <Run Text="{Binding CountOfSet}"></Run>
- </TextBlock>
- </StatusBarItem>
- </StatusBar>
- </Grid>
-</mahapps:MetroWindow>
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml.cs
deleted file mode 100644
index 541315106..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/MainWindow.xaml.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using MahApps.Metro.Controls;
-using Tango.Logging;
-using Tango.LogViewer.UI.ViewModels;
-using Path = System.IO.Path;
-
-namespace Tango.LogViewer.UI
-{
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : MetroWindow
- {
- public MainWindow()
- {
- InitializeComponent();
- ContentRendered += MainWindow_ContentRendered;
- }
-
- private void MainWindow_ContentRendered(object sender, EventArgs e)
- {
- if (App.StartArgs.Length > 0)
- {
- var vm = DataContext as MainViewVM;
- vm.LoadLogFile(App.StartArgs[0]);
- }
- }
-
- private void Exit_MenuItem_Click(object sender, RoutedEventArgs e)
- {
- Application.Current.Shutdown();
- }
-
- private void FileWindow_Drop(object sender, DragEventArgs e)
- {
- if (e.Data.GetDataPresent(DataFormats.FileDrop))
- {
- // Note that you can have more than one file.
- string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
- var file = files[0];
- HandleFile(file);
- }
-
- }
-
- private void HandleFile(string file)
- {
- var vm = DataContext as MainViewVM;
- vm.LoadLogFile(file);
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/AssemblyInfo.cs
deleted file mode 100644
index b9768b82d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tango.LogViewer.UI")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tango.LogViewer.UI")]
-[assembly: AssemblyCopyright("Copyright © 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-//In order to begin building localizable applications, set
-//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
-//inside a <PropertyGroup>. For example, if you are using US english
-//in your source files, set the <UICulture> to en-US. Then uncomment
-//the NeutralResourceLanguage attribute below. Update the "en-US" in
-//the line below to match the UICulture setting in the project file.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
- //(used if a resource is not found in the page,
- // or application resource dictionaries)
- ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
- //(used if a resource is not found in the page,
- // app, or any theme specific resource dictionaries)
-)]
-
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.Designer.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.Designer.cs
deleted file mode 100644
index bd996bff3..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.LogViewer.UI.Properties
-{
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.LogViewer.UI.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.resx b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.resx
deleted file mode 100644
index af7dbebba..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.Designer.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.Designer.cs
deleted file mode 100644
index b9f2d694d..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Tango.LogViewer.UI.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.settings b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.settings
deleted file mode 100644
index 033d7a5e9..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
- <Settings />
-</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Tango.LogViewer.UI.csproj b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Tango.LogViewer.UI.csproj
deleted file mode 100644
index 66f8549a5..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/Tango.LogViewer.UI.csproj
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{511A8AD7-6BA2-4BB5-A20A-1454196C5503}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>Tango.LogViewer.UI</RootNamespace>
- <AssemblyName>Tango.LogViewer.UI</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <WarningLevel>4</WarningLevel>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\..\Build\LogViewer\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\..\Build\LogViewer\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="ControlzEx, Version=3.0.2.4, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll</HintPath>
- </Reference>
- <Reference Include="FontAwesome.WPF, Version=4.7.0.37774, Culture=neutral, PublicKeyToken=0758b07a11a4f466, processorArchitecture=MSIL">
- <HintPath>..\..\packages\FontAwesome.WPF.4.7.0.9\lib\net40\FontAwesome.WPF.dll</HintPath>
- </Reference>
- <Reference Include="MahApps.Metro, Version=1.6.5.1, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\MahApps.Metro.1.6.5\lib\net46\MahApps.Metro.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.0\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
- </Reference>
- <Reference Include="System" />
- <Reference Include="System.Data" />
- <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
- <HintPath>..\..\packages\ControlzEx.3.0.2.4\lib\net45\System.Windows.Interactivity.dll</HintPath>
- </Reference>
- <Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xaml">
- <RequiredTargetFramework>4.0</RequiredTargetFramework>
- </Reference>
- <Reference Include="WindowsBase" />
- <Reference Include="PresentationCore" />
- <Reference Include="PresentationFramework" />
- </ItemGroup>
- <ItemGroup>
- <ApplicationDefinition Include="App.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </ApplicationDefinition>
- <Compile Include="LogViewerFileParser\ApplicationLogViewerParser.cs" />
- <Compile Include="LogViewerFileParser\EmbeddedLogViewerParser.cs" />
- <Compile Include="LogViewerFileParser\ILogViewerParser.cs" />
- <Compile Include="LogViewerManager.cs" />
- <Compile Include="ViewModels\MainViewVM.cs" />
- <Page Include="MainWindow.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Compile Include="App.xaml.cs">
- <DependentUpon>App.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="MainWindow.xaml.cs">
- <DependentUpon>MainWindow.xaml</DependentUpon>
- <SubType>Code</SubType>
- </Compile>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs">
- <SubType>Code</SubType>
- </Compile>
- <Compile Include="Properties\Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DependentUpon>Settings.settings</DependentUpon>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- </Compile>
- <EmbeddedResource Include="Properties\Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- </EmbeddedResource>
- <None Include="packages.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Integration\Tango.Integration.csproj">
- <Project>{4206AC58-3B57-4699-8835-90BF6DB01A61}</Project>
- <Name>Tango.Integration</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj">
- <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project>
- <Name>Tango.Logging</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.PMR\Tango.PMR.csproj">
- <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
- <Name>Tango.PMR</Name>
- </ProjectReference>
- <ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj">
- <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
- <Name>Tango.SharedUI</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/ViewModels/MainViewVM.cs
deleted file mode 100644
index edcdfd241..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/ViewModels/MainViewVM.cs
+++ /dev/null
@@ -1,307 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core.Commands;
-using Tango.Logging;
-using Tango.SharedUI;
-using Tango.SharedUI.Components;
-using Microsoft.WindowsAPICodePack.Dialogs;
-using System.ComponentModel;
-using System.Windows.Data;
-using System.Diagnostics;
-using System.IO;
-using Tango.LogViewer.UI.LogViewerFileParser;
-using System.Globalization;
-using System.Windows.Input;
-using System.Windows;
-
-namespace Tango.LogViewer.UI.ViewModels
-{
- public class MainViewVM : ViewModel
- {
-
- private LogViewerManager _logViewerManager;
- #region Properties
- public SelectedObjectCollection<LogCategory> SelectedLogCategories { get; set; }
-
- private TimeSpan? _endSelectedTime;
- /// <summary>
- /// Gets or sets the end selected time of time picker.
- /// </summary>
- public TimeSpan? EndSelectedTime
- {
- get { return _endSelectedTime; }
- set
- {
- _endSelectedTime = value;
- RaisePropertyChangedAuto();
- ApplyLogsFilter();
- }
- }
-
- private TimeSpan? _startSelectedTime;
- /// <summary>
- /// Gets or sets the start selected time of time picker.
- /// </summary>
- public TimeSpan? StartSelectedTime
- {
- get { return _startSelectedTime; }
- set
- {
- _startSelectedTime = value;
- RaisePropertyChangedAuto();
- ApplyLogsFilter();
- }
- }
-
- private String _filter;
- /// <summary>
- /// Gets or sets the filter for log message.
- /// </summary>
- public String Filter
- {
- get { return _filter; }
- set
- {
- _filter = value;
- RaisePropertyChangedAuto();
- ApplyLogsFilter();
- }
- }
-
- private ObservableCollection<LogItemBase> _logs;
- /// <summary>
- /// Gets or sets the collection of LogItemBase after parsing log files.
- /// </summary>
- public ObservableCollection<LogItemBase> Logs
- {
- get { return _logs; }
- set { _logs = value; RaisePropertyChangedAuto(); }
- }
-
- private ICollectionView _logsViewSource;
-
- /// <summary>
- /// Wrapper around the Logs collection that provides filtering
- /// </summary>
- public ICollectionView LogsViewSource
- {
- get { return _logsViewSource; }
- set { _logsViewSource = value; RaisePropertyChangedAuto(); }
- }
-
- private LogItemBase _selectedLog;
- /// <summary>
- /// Gets or sets the selected log.
- /// </summary>
- public LogItemBase SelectedLog
- {
- get { return _selectedLog; }
- set { _selectedLog = value; RaisePropertyChangedAuto(); Message = _selectedLog != null ? _selectedLog.Message : ""; }
- }
-
-
- private string _fileName;
- /// <summary>
- /// Gets or sets the full path of the open file to display in Status bar.
- /// </summary>
- public string FileName
- {
- get { return _fileName; }
- set { _fileName = value; RaisePropertyChangedAuto(); }
- }
-
- private int _countOfSet;
- /// <summary>
- /// Gets or sets the count of file set to display in Status bar.
- /// </summary>
- public int CountOfSet
- {
- get { return _countOfSet; }
- set { _countOfSet = value; RaisePropertyChangedAuto(); }
- }
-
- private string _message;
- /// <summary>
- /// Gets the message of selected log item to display in right panel.
- /// </summary>
- public string Message
- {
- get { return _message; }
- set { _message = value; RaisePropertyChangedAuto(); }
-
- }
- private bool _isEmbeddedLog;
-
- public bool IsEmbeddedLog
- {
- get { return _isEmbeddedLog; }
- set { _isEmbeddedLog = value; RaisePropertyChangedAuto(); }
- }
-
- private bool _isSet;
- /// <summary>
- /// Gets or sets a value indicating whether set of files.
- /// </summary>
- public bool IsSet
- {
- get { return _isSet; }
- set { _isSet = value; RaisePropertyChangedAuto(); }
- }
-
- private bool _loading;
-
- public bool Loading
- {
- get { return _loading; }
- set { _loading = value; RaisePropertyChangedAuto(); }
- }
-
- public CultureInfo Culture { get; set; }
-
- #endregion
-
- public RelayCommand OpeFileLogCommand { get; set; }
-
- #region Constructors
- public MainViewVM()
- {
- Culture = new CultureInfo("he-IL");
-
- SelectedLogCategories = new SelectedObjectCollection<LogCategory>(new ObservableCollection<LogCategory>()
- {
- LogCategory.Info,
- LogCategory.Warning,
- LogCategory.Error,
- LogCategory.Critical,
- LogCategory.Debug,
- }, new ObservableCollection<LogCategory>()
- {
- LogCategory.Info,
- LogCategory.Warning,
- LogCategory.Error,
- LogCategory.Critical,
- LogCategory.Debug,
- });
- _logViewerManager = new LogViewerManager();
- IsSet = false;
- IsEmbeddedLog = false;
- Loading = false;
- Clear();
- OpeFileLogCommand = new RelayCommand(OpenLogFile);
- SelectedLogCategories.SynchedSource.CollectionChanged += (_, __) =>
- {
- ApplyLogsFilter();
- };
- }
- #endregion
-
- #region Loading
- /// <summary>
- /// Clears the all filters. Set filter properties to init state.
- /// </summary>
- private void Clear()
- {
- FileName = "";
- StartSelectedTime = null;
- EndSelectedTime = null;
- Filter = "";
- SelectedLog = null;
- SelectedLogCategories.SynchedSource = SelectedLogCategories.Source;
- CountOfSet = 0;
- IsSet = false;
- if (Logs != null)
- {
- Logs.Clear();
- RaisePropertyChanged("Logs");
- }
-
- }
-
- /// <summary>
- /// Opens the log file from menu.
- /// </summary>
- private void OpenLogFile()
- {
- var dialog = new CommonOpenFileDialog()
- {
- Multiselect = false,
- EnsureFileExists = true,
-
- };
- dialog.Filters.Add(new CommonFileDialogFilter("Log files", "*.log"));
- CommonFileDialogResult result = dialog.ShowDialog();
- if (result == CommonFileDialogResult.Ok)
- {
- LoadLogFile(dialog.FileName);
- }
- }
-
- /// <summary>
- /// Loads the log file from menu or command line.
- /// </summary>
- public async void LoadLogFile(String fileName)
- {
- try
- {
- Clear();
- Loading = true;
-
- Mouse.OverrideCursor = Cursors.Wait;
- _logViewerManager.InitLogFile(fileName);
- List<LogItemBase> logs = new List<LogItemBase>();
- await Task.Factory.StartNew(() =>
- {
- logs.AddRange(_logViewerManager.Parse());
- });
-
- CountOfSet = _logViewerManager.CountOfSet;
- IsSet = CountOfSet > 0 ? true : false;
- IsEmbeddedLog = _logViewerManager.IsEmbeddedLog;
- FileName = _logViewerManager.FileName;
- Logs = new ObservableCollection<LogItemBase>(logs);
- LogsViewSource = CollectionViewSource.GetDefaultView(Logs);
- StartSelectedTime = Logs.Min(x => x.TimeStamp).TimeOfDay;
- EndSelectedTime = Logs.Max(x => x.TimeStamp).TimeOfDay;
- ApplyLogsFilter();
- }
- catch (Exception ex)
- {
- Mouse.OverrideCursor = null;
- Loading = false;
- MessageBox.Show(ex.FlattenMessage());
- }
- finally
- {
- Mouse.OverrideCursor = null;
- Loading = false;
- }
- }
-
-
- #endregion
-
- #region Filtering
- /// <summary>
- /// Applies the all filters( time, categories,filter massage) to view.
- /// </summary>
- private void ApplyLogsFilter()
- {
- if (LogsViewSource != null)
- {
- LogsViewSource.Filter = (x) =>
- {
- LogItemBase log = x as LogItemBase;
- return (SelectedLogCategories.SynchedSource.Contains(log.Category) && (String.IsNullOrWhiteSpace(Filter) || log.Message.ToLower().Contains(Filter.ToLower()))
- && (StartSelectedTime == null || StartSelectedTime == TimeSpan.Zero || log.TimeStamp.TimeOfDay >= StartSelectedTime) && (EndSelectedTime == null || EndSelectedTime == TimeSpan.Zero || log.TimeStamp.TimeOfDay <= EndSelectedTime));
- };
- }
-
- }
- #endregion
-
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/packages.config b/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/packages.config
deleted file mode 100644
index 0ac4ca4b4..000000000
--- a/Software/Visual_Studio/Utilities/Tango.LogViewer.UI/packages.config
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
- <package id="ControlzEx" version="3.0.2.4" targetFramework="net461" />
- <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net461" />
- <package id="MahApps.Metro" version="1.6.5" targetFramework="net461" />
- <package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.0" targetFramework="net461" />
- <package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net461" />
-</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml
deleted file mode 100644
index 22468a052..000000000
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml
+++ /dev/null
@@ -1,51 +0,0 @@
-<UserControl x:Class="Tango.MachineEM.UI.Controls.InkFillingStatusView"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
- xmlns:fa="http://schemas.fontawesome.io/icons/"
- xmlns:ifs="clr-namespace:Tango.PMR.IFS;assembly=Tango.PMR"
- xmlns:diagnostics="clr-namespace:Tango.PMR.Diagnostics;assembly=Tango.PMR"
- xmlns:vm="clr-namespace:Tango.MachineEM.UI.ViewModels"
- xmlns:local="clr-namespace:Tango.MachineEM.UI.Views"
- mc:Ignorable="d"
- d:DesignHeight="400" Width="500" Foreground="Gainsboro" d:DataContext="{d:DesignInstance Type=ifs:InkFillingStatus, IsDesignTimeCreatable=False}" >
-
- <UserControl.Resources>
- <converters:BooleanInverseConverter x:Key="BooleanInverseConverter"></converters:BooleanInverseConverter>
- <converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
- </UserControl.Resources>
- <Grid>
- <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Padding="5">
- <ItemsControl ItemsSource="{Binding CartridgesStatuses}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border BorderBrush="DimGray" BorderThickness="1" Margin="0 5" Padding="5" CornerRadius="5">
- <StackPanel>
- <DockPanel>
- <TextBlock>
- <TextBlock.Style>
- <Style TargetType="TextBlock">
- <Setter Property="Text" Value="Waste"></Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding Cartridge.Slot}" Value="Ink">
- <Setter Property="Text" Value="Ink"></Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </TextBlock.Style>
- </TextBlock>
- <TextBlock Margin="5 0 0 0" Text="{Binding Cartridge.Index}"></TextBlock>
- </DockPanel>
- <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Source={x:Type ifs:CartridgeState},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding State,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
- <Slider Margin="0 5 0 0" Minimum="0" MaxHeight="100" Value="{Binding ProgressPercentage}"></Slider>
- </StackPanel>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </ScrollViewer>
- </Grid>
-</UserControl>
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml.cs
deleted file mode 100644
index 575e12210..000000000
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Controls/InkFillingStatusView.xaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-
-namespace Tango.MachineEM.UI.Controls
-{
- /// <summary>
- /// Interaction logic for MainView.xaml
- /// </summary>
- public partial class InkFillingStatusView : UserControl
- {
- public InkFillingStatusView()
- {
- InitializeComponent();
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Converters/EventTypeToStringConverter.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Converters/EventTypeToStringConverter.cs
deleted file mode 100644
index de771f2a8..000000000
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Converters/EventTypeToStringConverter.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using Google.Protobuf.Reflection;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Data;
-using Tango.PMR.Diagnostics;
-
-namespace Tango.MachineEM.UI.Converters
-{
- public class EventTypeToStringConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- EventType eventType = (EventType)value;
- FieldInfo fi = value.GetType().GetField(eventType.ToString());
- String name = fi.GetCustomAttribute<OriginalNameAttribute>().Name;
- return $"{(int)eventType} {name}";
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
- {
- throw new NotImplementedException();
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml
deleted file mode 100644
index 05a4b33cd..000000000
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml
+++ /dev/null
@@ -1,25 +0,0 @@
-<Window x:Class="Tango.MachineEM.UI.InputWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
- xmlns:local="clr-namespace:Tango.MachineEM.UI"
- mc:Ignorable="d"
- Title="Input" Height="250" Width="600">
- <Grid>
- <DockPanel>
- <UniformGrid Columns="2" DockPanel.Dock="Bottom" HorizontalAlignment="Right" Height="45">
- <Button x:Name="btnCancel" Width="150" Margin="5" Style="{StaticResource AccentedSquareButtonStyle}" BorderThickness="0" mahapps:ButtonHelper.PreserveTextCase="True">CANCEL</Button>
- <Button IsDefault="True" x:Name="btnOK" Width="150" Margin="5" Style="{StaticResource AccentedSquareButtonStyle}" BorderThickness="0" mahapps:ButtonHelper.PreserveTextCase="True">OK</Button>
- </UniformGrid>
-
- <Rectangle DockPanel.Dock="Bottom" Stroke="#494949" StrokeThickness="1" />
-
- <StackPanel Margin="40">
- <TextBlock x:Name="txtMessage" Text="Please enter a value" Foreground="Gainsboro"></TextBlock>
- <TextBox x:Name="txtValue" Margin="0 10 120 0"></TextBox>
- </StackPanel>
- </DockPanel>
- </Grid>
-</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml.cs
deleted file mode 100644
index 191b53072..000000000
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/InputWindow.xaml.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-
-namespace Tango.MachineEM.UI
-{
- /// <summary>
- /// Interaction logic for InputWindow.xaml
- /// </summary>
- public partial class InputWindow : Window
- {
- public String Value { get; set; }
- public String Message { get; set; }
-
- public InputWindow()
- {
- InitializeComponent();
-
- btnOK.Click += BtnOK_Click;
- btnCancel.Click += BtnCancel_Click;
- Loaded += InputWindow_Loaded;
- }
-
- private void InputWindow_Loaded(object sender, RoutedEventArgs e)
- {
- txtValue.Text = Value;
- txtMessage.Text = Message;
-
- txtValue.Focus();
- Keyboard.Focus(txtValue);
- }
-
- private void BtnCancel_Click(object sender, RoutedEventArgs e)
- {
- DialogResult = false;
- Close();
- }
-
- private void BtnOK_Click(object sender, RoutedEventArgs e)
- {
- Value = txtValue.Text;
- DialogResult = true;
- Close();
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
index 8f066800e..7bfc7f0fd 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/MainWindow.xaml
@@ -9,7 +9,7 @@
xmlns:local="clr-namespace:Tango.MachineEM.UI"
xmlns:views="clr-namespace:Tango.MachineEM.UI.Views"
mc:Ignorable="d"
- Title="Tango Embedded Emulator" Height="820" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}">
+ Title="Tango Embedded Emulator" Height="720" Width="1300" TitleCaps="False" BorderBrush="Gray" BorderThickness="1" WindowStartupLocation="CenterScreen" Background="#202020" Foreground="Gainsboro" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<views:MainView DataContext="{StaticResource MainViewVM}"></views:MainView>
</Grid>
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj
index c6f382afe..bce166287 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Tango.MachineEM.UI.csproj
@@ -80,25 +80,10 @@
<Compile Include="..\..\Versioning\GlobalVersionInfo.cs">
<Link>GlobalVersionInfo.cs</Link>
</Compile>
- <Compile Include="Controls\InkFillingStatusView.xaml.cs">
- <DependentUpon>InkFillingStatusView.xaml</DependentUpon>
- </Compile>
- <Compile Include="Converters\EventTypeToStringConverter.cs" />
- <Compile Include="InputWindow.xaml.cs">
- <DependentUpon>InputWindow.xaml</DependentUpon>
- </Compile>
<Compile Include="ViewModels\MainViewVM.cs" />
<Compile Include="Views\MainView.xaml.cs">
<DependentUpon>MainView.xaml</DependentUpon>
</Compile>
- <Page Include="Controls\InkFillingStatusView.xaml">
- <Generator>MSBuild:Compile</Generator>
- <SubType>Designer</SubType>
- </Page>
- <Page Include="InputWindow.xaml">
- <SubType>Designer</SubType>
- <Generator>MSBuild:Compile</Generator>
- </Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
index c993be2d7..1662a3ede 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/ViewModels/MainViewVM.cs
@@ -12,9 +12,6 @@ using Tango.Transport.Servers;
using Tango.Transport.Transporters;
using Tango.Core;
using Tango.Settings;
-using Tango.PMR.ThreadLoading;
-using Tango.PMR.DataStore;
-using System.Windows;
namespace Tango.MachineEM.UI.ViewModels
{
@@ -23,7 +20,6 @@ namespace Tango.MachineEM.UI.ViewModels
private TcpServer TcpServer;
private bool _running;
private LogManager logManager = LogManager.Default;
- private bool _isThreadLoading;
#region Properties
@@ -67,30 +63,10 @@ namespace Tango.MachineEM.UI.ViewModels
set { _selectedPort = value; RaisePropertyChanged(nameof(SelectedPort)); }
}
- private ThreadLoadingState _threadLoadingState;
- public ThreadLoadingState ThreadLoadingState
- {
- get { return _threadLoadingState; }
- set { _threadLoadingState = value; OnThreadLoadingStateChanged(); }
- }
-
-
#endregion
#region Private Methods
- private void OnThreadLoadingStateChanged()
- {
- try
- {
- Emulator?.SetThreadLoadingState(ThreadLoadingState);
- }
- catch (Exception ex)
- {
- LogManager.Log(ex);
- }
- }
-
#endregion
#region Commands
@@ -125,27 +101,6 @@ namespace Tango.MachineEM.UI.ViewModels
/// </summary>
public RelayCommand ValidateCartridgeCommand { get; set; }
- /// <summary>
- /// Gets or sets the start thread loading sequence command.
- /// </summary>
- public RelayCommand StartThreadLoadingCommand { get; set; }
-
- /// <summary>
- /// Gets or sets the finalize thread loading command.
- /// </summary>
- public RelayCommand FinalizeThreadLoadingCommand { get; set; }
-
- /// <summary>
- /// Gets or sets the abort job.
- /// </summary>
- public RelayCommand AbortJobCommand { get; set; }
-
- public RelayCommand GetDataStoreItemCommand { get; set; }
-
- public RelayCommand PutDataStoreItemCommand { get; set; }
-
- public RelayCommand PerformDataStoreTestCommand { get; set; }
-
#endregion
#region Constructors
@@ -176,9 +131,6 @@ namespace Tango.MachineEM.UI.ViewModels
CancelCommand = new RelayCommand(Cancel, (x) => _running);
ClearCommand = new RelayCommand(() => Log = String.Empty);
ValidateCartridgeCommand = new RelayCommand(ValidateCartridge, (x) => Emulator.IsStarted);
- StartThreadLoadingCommand = new RelayCommand(StartThreadLoading, (x) => Emulator.IsStarted && !_isThreadLoading);
- FinalizeThreadLoadingCommand = new RelayCommand(FinalizeThreadLoading, (x) => Emulator.IsStarted && _isThreadLoading);
- AbortJobCommand = new RelayCommand(() => Emulator?.AbortJob(), (x) => Emulator.IsStarted);
Ports = new List<string>()
{
@@ -195,10 +147,6 @@ namespace Tango.MachineEM.UI.ViewModels
};
SelectedPort = Ports.First();
-
- PerformDataStoreTestCommand = new RelayCommand(Emulator.PerformDataStoreTest);
- GetDataStoreItemCommand = new RelayCommand(GetDataStoreItem);
- PutDataStoreItemCommand = new RelayCommand(PutDataStoreItem);
}
#endregion
@@ -270,140 +218,6 @@ namespace Tango.MachineEM.UI.ViewModels
}
}
- private async void StartThreadLoading()
- {
- LogManager.Log("Starting thread loading sequence...");
- Emulator.StartThreadLoading();
- _isThreadLoading = true;
- InvalidateRelayCommands();
-
- await Task.Delay(10000);
- _isThreadLoading = false;
- InvalidateRelayCommands();
- }
-
- private void FinalizeThreadLoading()
- {
- LogManager.Log("Finalizing thread loading sequence...");
- Emulator.FinalizeThreadLoading();
- _isThreadLoading = false;
- InvalidateRelayCommands();
- }
-
- private void GetDataStoreItem()
- {
- try
- {
- var result = GetUserInput<String>("Get Data Store Item", "Enter collection name", String.Empty);
- if (!result.Confirmed) return;
- var collectionName = result.Value;
-
- result = GetUserInput<String>("Get Data Store Item", "Enter item key", String.Empty);
- if (!result.Confirmed) return;
- var key = result.Value;
-
- Emulator.GetDataStoreItem(new PMR.DataStore.GetDataStoreItemRequest()
- {
- Collection = collectionName,
- Key = key
- });
- }
- catch { }
- }
-
- private void PutDataStoreItem()
- {
- try
- {
- var result = GetUserInput<String>("Put Data Store Item", "Enter collection name", String.Empty);
- if (!result.Confirmed) return;
- var collectionName = result.Value;
-
- result = GetUserInput<String>("Put Data Store Item", "Enter item key", String.Empty);
- if (!result.Confirmed) return;
- var key = result.Value;
-
- result = GetUserInput<String>("Put Data Store Item", "Enter data type", "Int32");
- if (!result.Confirmed) return;
- DataType dataType = (DataType)Enum.Parse(typeof(DataType), result.Value);
-
- result = GetUserInput<String>("Put Data Store Item", "Enter value", "10");
- if (!result.Confirmed) return;
- var value = result.Value;
-
- DataStoreItem item = new DataStoreItem();
- item.DataType = dataType;
-
- switch (dataType)
- {
- case DataType.Int32:
- item.Int32Value = int.Parse(value);
- break;
- case DataType.Float:
- item.FloatValue = float.Parse(value);
- break;
- case DataType.Double:
- item.DoubleValue = double.Parse(value);
- break;
- case DataType.Boolean:
- item.BooleanValue = bool.Parse(value);
- break;
- case DataType.String:
- item.StringValue = value;
- break;
- default:
- LogManager.Log("Data type not supported by this emulator.");
- throw new NotSupportedException();
- }
-
- Emulator.PutDataStoreItem(new PutDataStoreItemRequest()
- {
- Collection = collectionName,
- Key = key,
- Item = item
- });
- }
- catch { }
- }
-
- #endregion
-
- #region Private Methods
-
- private class InputResult<T>
- {
- public bool Confirmed { get; set; }
- public T Value { get; set; }
- }
-
- private InputResult<T> GetUserInput<T>(String title, String message, T defaultValue)
- {
- InputWindow window = new InputWindow();
- window.Title = title;
- window.Message = message;
- window.Value = defaultValue.ToStringSafe();
- window.Owner = Application.Current.MainWindow;
- window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
- window.WindowStyle = WindowStyle.ToolWindow;
-
- try
- {
- if (window.ShowDialog().Value)
- {
- return new InputResult<T>() { Confirmed = true, Value = (T)Convert.ChangeType(window.Value, typeof(T)) };
- }
- else
- {
- return new InputResult<T>();
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error parsing input.");
- throw ex;
- }
- }
-
#endregion
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
index c0c4b7b97..036fec7dc 100644
--- a/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.MachineEM.UI/Views/MainView.xaml
@@ -3,23 +3,19 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:controls="clr-namespace:Tango.MachineEM.UI.Controls"
xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:editors="clr-namespace:Tango.SharedUI.Editors;assembly=Tango.SharedUI"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:fa="http://schemas.fontawesome.io/icons/"
xmlns:vm="clr-namespace:Tango.MachineEM.UI.ViewModels"
xmlns:pmr="clr-namespace:Tango.PMR.MachineStatus;assembly=Tango.PMR"
- xmlns:threadLoading="clr-namespace:Tango.PMR.ThreadLoading;assembly=Tango.PMR"
- xmlns:localConverters="clr-namespace:Tango.MachineEM.UI.Converters"
xmlns:local="clr-namespace:Tango.MachineEM.UI.Views"
mc:Ignorable="d"
- d:DesignHeight="780" d:DesignWidth="1300" Foreground="Gainsboro" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" >
+ d:DesignHeight="720" d:DesignWidth="1300" Foreground="Gainsboro" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" >
<UserControl.Resources>
<converters:BooleanInverseConverter x:Key="BooleanInverseConverter"></converters:BooleanInverseConverter>
<converters:EnumToItemsSourceConverter x:Key="EnumToItemsSourceConverter" />
- <localConverters:EventTypeToStringConverter x:Key="EventTypeToStringConverter" />
</UserControl.Resources>
<Grid>
<Grid.Background>
@@ -57,141 +53,17 @@
<Grid>
<Grid.ColumnDefinitions>
- <ColumnDefinition Width="220"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="280"/>
</Grid.ColumnDefinitions>
- <Grid Background="#A3000000">
- <StackPanel>
- <!--BUTTONS HERE-->
- <Button Padding="10 0 0 0" Height="45" Margin="5" HorizontalContentAlignment="Left" MinWidth="100" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding StartThreadLoadingCommand}">
- <StackPanel Orientation="Horizontal">
- <fa:ImageAwesome Icon="ChevronCircleDown" Width="16"></fa:ImageAwesome>
- <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">START THREAD LOADING</TextBlock>
- </StackPanel>
- </Button>
- <Button Padding="10 0 0 0" Height="45" Margin="5" HorizontalContentAlignment="Left" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding FinalizeThreadLoadingCommand}">
- <StackPanel Orientation="Horizontal">
- <fa:ImageAwesome Icon="ChevronCircleUp" Width="16"></fa:ImageAwesome>
- <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">FINALIZE THREAD LOADING</TextBlock>
- </StackPanel>
- </Button>
- <Button Padding="10 0 0 0" Margin="5" Height="45" HorizontalContentAlignment="Left" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding ValidateCartridgeCommand}">
- <StackPanel Orientation="Horizontal">
- <fa:ImageAwesome Icon="FlagCheckered" Width="16"></fa:ImageAwesome>
- <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">CARTRIDGE VALIDATION</TextBlock>
- </StackPanel>
- </Button>
- <ToggleButton Style="{StaticResource AccentedSquareButtonStyle}" BorderThickness="0" x:Name="toggleLevels" Height="45" Margin="5">
- <StackPanel Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">MACHINE STATUS</TextBlock>
- <fa:ImageAwesome Icon="ChevronDown" Width="16" Foreground="White"></fa:ImageAwesome>
- </StackPanel>
- </ToggleButton>
- <Popup IsOpen="{Binding ElementName=toggleLevels,Path=IsChecked}" StaysOpen="True">
- <Border Padding="10">
- <StackPanel Orientation="Horizontal">
- <StackPanel HorizontalAlignment="Left">
- <TextBlock Foreground="Red">IDS Packs Levels</TextBlock>
- <ScrollViewer Height="400" HorizontalScrollBarVisibility="Disabled" Width="300">
- <ItemsControl Margin="0 5 0 0" ItemsSource="{Binding Emulator.MachineStatus.IDSPacksLevels}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <StackPanel Margin="0 5">
- <TextBlock>
- <Run Text="Index: "></Run>
- <Run Text="{Binding Index}"></Run>
- </TextBlock>
-
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="Dispenser Level (nl): " />
- <TextBox Text="{Binding ElementName=sliderDispenser,Path=Value,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"></TextBox>
- </StackPanel>
-
- <Slider x:Name="sliderDispenser" Orientation="Horizontal" Minimum="0" Maximum="130000000" Value="{Binding DispenserLevel}"></Slider>
-
- <TextBlock>
- <Run Text="MidTank Level (ml): "></Run>
- <Run Text="{Binding ElementName=sliderMidTank,Path=Value}"></Run>
- </TextBlock>
-
- <Slider x:Name="sliderMidTank" Orientation="Horizontal" Minimum="0" Maximum="1.8" Value="{Binding MidTankLevel}"></Slider>
- </StackPanel>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </ScrollViewer>
- </StackPanel>
- <StackPanel Margin="10 0 0 0">
- <TextBlock Foreground="Red">MACHINE STATE</TextBlock>
- <ComboBox Margin="0 5 0 0" Width="150" ItemsSource="{Binding Source={x:Type pmr:MachineState},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding Emulator.MachineStatus.State,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
-
- <TextBlock Margin="0 20 0 0" Foreground="Red" Width="160">
- <Run>OVERALL TEMPERATURE</Run>
- <Run Text="{Binding ElementName=sliderTemperature,Path=Value,StringFormat='0.0',Mode=OneWay}"></Run>
- </TextBlock>
- <Slider x:Name="sliderTemperature" Margin="0 5 0 0" Minimum="0" Maximum="60" Value="{Binding Emulator.MachineStatus.OverallTemperature,Mode=TwoWay}"></Slider>
-
- <TextBlock Margin="0 10 0 0">SPOOL STATE</TextBlock>
- <ComboBox Margin="0 5 0 0" Width="150" ItemsSource="{Binding Source={x:Type pmr:SpoolState},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding Emulator.MachineStatus.SpoolState,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
- </StackPanel>
- </StackPanel>
- </Border>
- </Popup>
-
- <ToggleButton Style="{StaticResource AccentedSquareButtonStyle}" BorderThickness="0" x:Name="toggleIFS" Height="45" Margin="5">
- <StackPanel Orientation="Horizontal">
- <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">INK FILLING STATUS</TextBlock>
- <fa:ImageAwesome Icon="ChevronDown" Width="16" Foreground="White"></fa:ImageAwesome>
- </StackPanel>
- </ToggleButton>
- <Popup IsOpen="{Binding ElementName=toggleIFS,Path=IsChecked}" StaysOpen="True" PlacementTarget="{Binding ElementName=toggleIFS}" Placement="Bottom">
- <controls:InkFillingStatusView Height="300" Width="210" DataContext="{Binding Emulator.InkFillingStatus}" />
- </Popup>
-
- <Button Padding="10 0 0 0" Margin="5" Height="45" HorizontalContentAlignment="Left" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding AbortJobCommand}">
- <DockPanel>
- <fa:ImageAwesome Icon="ExclamationTriangle" Width="16"></fa:ImageAwesome>
- <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center">ABORT JOB</TextBlock>
- </DockPanel>
- </Button>
-
- <Button Padding="10 0 0 0" Margin="5" HorizontalContentAlignment="Left" Height="45" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding PerformDataStoreTestCommand}">
- <DockPanel>
- <fa:ImageAwesome Icon="Database" Width="16"></fa:ImageAwesome>
- <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center">DATASTORE TEST</TextBlock>
- </DockPanel>
- </Button>
-
- <Button Padding="10 0 0 0" Margin="5" HorizontalContentAlignment="Left" Height="45" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding GetDataStoreItemCommand}">
- <DockPanel>
- <fa:ImageAwesome Icon="Download" Width="16"></fa:ImageAwesome>
- <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center">GET DATA STORE ITEM</TextBlock>
- </DockPanel>
- </Button>
-
- <Button HorizontalContentAlignment="Left" Padding="10 0 0 0" Margin="5" Height="45" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding PutDataStoreItemCommand}">
- <DockPanel>
- <fa:ImageAwesome Icon="Upload" Width="16"></fa:ImageAwesome>
- <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center">PUT DATA STORE ITEM</TextBlock>
- </DockPanel>
- </Button>
- <!--BUTTONS HERE-->
-
- <DockPanel Margin="5 20 5 0">
- <TextBlock FontSize="12" DockPanel.Dock="Top">Thread Loading State</TextBlock>
- <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Source={x:Type threadLoading:ThreadLoadingState},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ThreadLoadingState,Mode=OneWayToSource}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
- </DockPanel>
- </StackPanel>
- </Grid>
- <TextBox x:Name="txtLog" Grid.Column="1" FontFamily="monospaced" TextChanged="txtLog_TextChanged" Text="{Binding Log}" Background="Transparent" Foreground="Red" FontSize="11" Padding="5" Style="{x:Null}" BorderThickness="0" IsReadOnly="True" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap">
+ <TextBox x:Name="txtLog" FontFamily="monospaced" TextChanged="txtLog_TextChanged" Text="{Binding Log}" Background="Transparent" Foreground="Red" FontSize="11" Padding="5" Style="{x:Null}" BorderThickness="0" IsReadOnly="True" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap">
</TextBox>
- <Grid Grid.Column="2">
+ <Grid Grid.Column="1">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Margin="10 0 0 0">HARDWARE EVENTS</TextBlock>
- <ListBox BorderThickness="0" Background="#66000000" Margin="10 10 10 0" ItemsSource="{Binding Emulator.EventsStates}" FontSize="11">
+ <ListBox BorderThickness="0" Background="#66000000" Margin="10 10 10 40" ItemsSource="{Binding Emulator.EventsStates}" FontSize="11">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
@@ -199,7 +71,7 @@
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
- <CheckBox FontSize="11" Content="{Binding EventType,Converter={StaticResource EventTypeToStringConverter}}" IsChecked="{Binding IsActive}" Margin="5"></CheckBox>
+ <CheckBox FontSize="11" Content="{Binding EventType}" IsChecked="{Binding IsActive}" Margin="5"></CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
@@ -309,6 +181,59 @@
<SolidColorBrush Color="#151515" Opacity="0.8" />
</Grid.Background>
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Margin="5">
+ <Button Margin="5" MinWidth="100" Style="{StaticResource AccentedSquareButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding ValidateCartridgeCommand}">
+ <StackPanel Orientation="Horizontal">
+ <fa:ImageAwesome Icon="FlagCheckered" Width="16"></fa:ImageAwesome>
+ <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">CARTRIDGE VALIDATION</TextBlock>
+ </StackPanel>
+ </Button>
+ <ToggleButton Style="{StaticResource AccentedSquareButtonStyle}" BorderThickness="0" x:Name="toggleLevels" MinWidth="140" Margin="5 5 20 5">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">STATUS</TextBlock>
+ <fa:ImageAwesome Icon="ChevronDown" Width="16" Foreground="White"></fa:ImageAwesome>
+ </StackPanel>
+ </ToggleButton>
+ <Popup IsOpen="{Binding ElementName=toggleLevels,Path=IsChecked}" StaysOpen="True">
+ <Border Padding="10">
+ <StackPanel Orientation="Horizontal">
+ <StackPanel HorizontalAlignment="Left">
+ <TextBlock Foreground="Red">IDS Packs Levels</TextBlock>
+ <ScrollViewer Height="400" HorizontalScrollBarVisibility="Disabled">
+ <ItemsControl Margin="0 5 0 0" ItemsSource="{Binding Emulator.MachineStatus.IDSPacksLevels}">
+ <ItemsControl.ItemTemplate>
+ <DataTemplate>
+ <StackPanel Margin="0 5">
+ <TextBlock>
+ <Run Text="Index: "></Run>
+ <Run Text="{Binding Index}"></Run>
+ </TextBlock>
+
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="Dispenser Level (nl): " />
+ <TextBox Text="{Binding ElementName=sliderDispenser,Path=Value,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"></TextBox>
+ </StackPanel>
+
+ <Slider x:Name="sliderDispenser" Orientation="Horizontal" Minimum="0" Maximum="130000000" Value="{Binding DispenserLevel}"></Slider>
+
+ <TextBlock>
+ <Run Text="MidTank Level (ml): "></Run>
+ <Run Text="{Binding ElementName=sliderMidTank,Path=Value}"></Run>
+ </TextBlock>
+
+ <Slider x:Name="sliderMidTank" Orientation="Horizontal" Minimum="0" Maximum="2500" Value="{Binding MidTankLevel}"></Slider>
+ </StackPanel>
+ </DataTemplate>
+ </ItemsControl.ItemTemplate>
+ </ItemsControl>
+ </ScrollViewer>
+ </StackPanel>
+ <StackPanel Margin="10 0 0 0">
+ <TextBlock Foreground="Red">MACHINE STATE</TextBlock>
+ <ComboBox Margin="0 5 0 0" Width="150" ItemsSource="{Binding Source={x:Type pmr:MachineState},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding Emulator.MachineStatus.State,Mode=TwoWay}" SelectedValuePath="Value" DisplayMemberPath="DisplayName"></ComboBox>
+ </StackPanel>
+ </StackPanel>
+ </Border>
+ </Popup>
<CheckBox Margin="0 0 20 0" VerticalAlignment="Center" IsChecked="{Binding Emulator.EmulateCorruption}" Foreground="Red">Emulate Corruption</CheckBox>
<CheckBox Margin="0 0 20 0" VerticalAlignment="Center" IsChecked="{Binding Emulator.PerformNativeRoundTrip}">Perform Native RoundTrip</CheckBox>
<ComboBox IsEnabled="{Binding Emulator.IsStarted,Converter={StaticResource BooleanInverseConverter}}" MinWidth="140" Margin="5" BorderThickness="0" ItemsSource="{Binding Ports}" SelectedItem="{Binding SelectedPort}"></ComboBox>
diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
index a86454e26..78a9d0380 100644
--- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs
@@ -56,7 +56,6 @@ namespace Tango.PMRGenerator.CLI
GenerateColorLabLiquidTypes(db, pmrFolder);
GenerateDiagnosticsValueComponents(db, pmrFolder);
GenerateDiagnosticsMonitors(db, pmrFolder);
- GenerateInsightsMonitors(db, pmrFolder);
GenerateEventTypes(db, pmrFolder);
GenerateInterfaceIOs(db, pmrFolder);
}
@@ -642,7 +641,7 @@ namespace Tango.PMRGenerator.CLI
private static void GenerateDiagnosticsMonitors(ObservablesContext db, String pmrFolder)
{
- Console.WriteLine("Generating Diagnostics Monitors...");
+ Console.WriteLine("Generating Monitors...");
ProtoMessageFile messageFile = new ProtoMessageFile();
messageFile.Name = "DiagnosticsMonitors";
@@ -675,34 +674,6 @@ namespace Tango.PMRGenerator.CLI
File.WriteAllText(Path.Combine(pmrFolder, "Diagnostics", messageFile.Name + ".proto"), messageString);
}
- private static void GenerateInsightsMonitors(ObservablesContext db, string pmrFolder)
- {
- Console.WriteLine("Generating Insights Monitors...");
-
- ProtoMessageFile messageFile = new ProtoMessageFile();
- messageFile.Name = "InsightsMonitors";
- messageFile.Package = "Tango.PMR.Insights";
-
- foreach (var monitor in db.TechMonitors.ToList().OrderBy(x => x.Code))
- {
- var prop = new ProtoProperty();
- prop.Name = monitor.Name.Replace(" ", "");
- prop.Description = monitor.Description;
- prop.Type = "double";
-
- if (monitor.MultiChannel)
- {
- prop.Repeated = true;
- }
-
- messageFile.Properties.Add(prop);
- }
-
- String messageString = messageFile.GenerateCode();
-
- File.WriteAllText(Path.Combine(pmrFolder, "Insights", messageFile.Name + ".proto"), messageString);
- }
-
private static void GenerateInterfaceIOs(ObservablesContext db, String pmrFolder)
{
Console.WriteLine("Generating Interface IOs...");
@@ -777,15 +748,19 @@ namespace Tango.PMRGenerator.CLI
if (db_des != null)
{
- DbPropertyExtensionModel rangeDescription = null;
+ RangeDescriptionModel rangeDescription = null;
try
{
- rangeDescription = JsonConvert.DeserializeObject<DbPropertyExtensionModel>(db_des.ColumnDescription);
+ rangeDescription = JsonConvert.DeserializeObject<RangeDescriptionModel>(db_des.ColumnDescription);
}
catch { }
- if (rangeDescription == null)
+ if (rangeDescription != null && rangeDescription.Description != null)
+ {
+ return rangeDescription.Description.ToLines().Take(1).Concat(rangeDescription.Description.ToLines().Skip(1).Select(x => "//" + x)).Join(Environment.NewLine);
+ }
+ else
{
return db_des.ColumnDescription.ToLines().Take(1).Concat(db_des.ColumnDescription.ToLines().Skip(1).Select(x => "//" + x)).Join(Environment.NewLine);
}
diff --git a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/App.config b/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/App.config
deleted file mode 100644
index 731f6de6c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Program.cs
deleted file mode 100644
index bbb922a7c..000000000
--- a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Program.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace Tango.PasswordHashUtil.CLI
-{
- class Program
- {
- [STAThread]
- static void Main(string[] args)
- {
- Core.Cryptography.IHashGenerator gen = new Core.Cryptography.BasicHashGenerator();
-
- Console.WriteLine("Twine Password Generator.");
-
- Start:
- Console.WriteLine();
- Console.Write("Enter Password: ");
- String pass = Console.ReadLine();
- String hash = gen.Encrypt(pass);
- Clipboard.SetText(hash);
- Console.Write($"Hash copied to clipboard...");
- Console.ReadLine();
-
- goto Start;
- }
- }
-}
diff --git a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Properties/AssemblyInfo.cs
deleted file mode 100644
index 0d06d05dc..000000000
--- a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tango.PasswordHashUtil.CLI")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tango.PasswordHashUtil.CLI")]
-[assembly: AssemblyCopyright("Copyright © 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("f1dc98ef-c50a-4e84-9a39-211a68626fba")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Tango.PasswordHashUtil.CLI.csproj b/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Tango.PasswordHashUtil.CLI.csproj
deleted file mode 100644
index f9eab2640..000000000
--- a/Software/Visual_Studio/Utilities/Tango.PasswordHashUtil.CLI/Tango.PasswordHashUtil.CLI.csproj
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{F1DC98EF-C50A-4E84-9A39-211A68626FBA}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <RootNamespace>Tango.PasswordHashUtil.CLI</RootNamespace>
- <AssemblyName>tango_pass_gen</AssemblyName>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- <Deterministic>true</Deterministic>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Net.Http" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Program.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
- <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
- <Name>Tango.Core</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Program.cs
index cab2cf2bb..62dccc4ce 100644
--- a/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Program.cs
@@ -32,9 +32,9 @@ namespace Tango.PortsListGenerator
static void Main(string[] args)
{
- Console.WriteLine("Initializing Ports List...");
+ Console.WriteLine("Generating Ports List...");
- ExcelReader reader = new ExcelReader(PathHelper.GetStartupPath() + "\\Tech IOs v2.xlsx");
+ ExcelReader reader = new ExcelReader(PathHelper.GetStartupPath() + "\\PortsList.xlsx");
var results = reader.GetDataByIndex<PortItem>("Ports List", 2);
results.RemoveAll(x => String.IsNullOrWhiteSpace(x.ToString().Replace(",", "")));
@@ -65,133 +65,20 @@ namespace Tango.PortsListGenerator
return;
}
+ Console.WriteLine("Emptying TECH_IOS table...");
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- var toUpdateAdd = results.Where(x => !String.IsNullOrWhiteSpace(x.InterfaceName)).ToList();
-
- List<PortItem> toUpdate = new List<PortItem>();
- List<PortItem> toUpdateDb = new List<PortItem>();
- List<PortItem> toAdd = new List<PortItem>();
- List<PortItem> identical = new List<PortItem>();
-
- foreach (var item in toUpdateAdd)
- {
- var existingIO = db.TechIos.SingleOrDefault(x => x.InterfaceName == item.InterfaceName);
-
- if (existingIO != null)
- {
- bool shouldUpdate =
- existingIO.Name != item.InterfaceName
- ||
- existingIO.Designator != item.Designator
- ||
- existingIO.Asm != item.Asm
- ||
- existingIO.InterfaceName != item.InterfaceName
- ||
- existingIO.Sensor != item.Sensor
- ||
- existingIO.Type != (int)TypeNameToIOType(item.Type)
- ||
- existingIO.Averaging != (int)StringToNumber(item.Averaging)
- ||
- existingIO.InitValue != StringToNumber(item.InitValue);
-
- if (shouldUpdate)
- {
- toUpdate.Add(item);
-
- toUpdateDb.Add(new PortItem()
- {
- Id = existingIO.ID.ToString(),
- Asm = existingIO.Asm,
- Designator = existingIO.Designator,
- Averaging = existingIO.Averaging.ToString(),
- InitValue = existingIO.InitValue.ToString(),
- InterfaceName = existingIO.InterfaceName,
- Sensor = existingIO.Sensor,
- Type = ((IOType)existingIO.Type).ToString()
- });
- }
- else
- {
- identical.Add(item);
- }
- }
- else
- {
- toAdd.Add(item);
- }
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine($"IDENTICAL ({identical.Count}) ---------------------------------------------------------");
- Console.WriteLine();
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine($"ITEMS TO ADD ({toAdd.Count}) ---------------------------------------------------------");
- Console.WriteLine();
-
- foreach (var item in toAdd)
- {
- Console.WriteLine(item.ToString());
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine($"ITEMS TO UPDATE ({toUpdate.Count}) ---------------------------------------------------------");
- Console.WriteLine();
-
- for (int i = 0; i < toUpdate.Count; i++)
- {
- Console.WriteLine($"ID: {toUpdateDb[i].Id}: {toUpdateDb[i].ToString()} => {toUpdate[i].ToString()}");
- }
-
- Console.WriteLine();
- Console.WriteLine();
- Console.WriteLine("Press 'Y' to perform the operation...");
-
- var key = Console.ReadKey();
-
- if (key.Key != ConsoleKey.Y)
- {
- Environment.Exit(0);
- return;
- }
-
- Console.WriteLine();
- Console.WriteLine("Starting procedure...");
-
- int code = 0;
-
- if (db.TechIos.Count() > 0)
- {
- code = db.TechIos.Max(x => x.Code) + 1;
- }
+ db.Database.ExecuteSqlCommand("DELETE FROM TECH_IOS");
+ }
- foreach (var item in toUpdate)
- {
- var existingIO = db.TechIos.SingleOrDefault(x => x.InterfaceName == item.InterfaceName);
+ int code = 0;
- if (existingIO != null)
- {
- Console.WriteLine("Updating " + item.ToString());
- existingIO.Name = item.InterfaceName;
- existingIO.Designator = item.Designator;
- existingIO.Asm = item.Asm;
- existingIO.InterfaceName = item.InterfaceName;
- existingIO.Sensor = item.Sensor;
- existingIO.Type = (int)TypeNameToIOType(item.Type);
- existingIO.Averaging = (int)StringToNumber(item.Averaging);
- existingIO.InitValue = StringToNumber(item.InitValue);
- }
- }
-
- foreach (var item in toAdd)
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ foreach (var item in results.Where(x => !String.IsNullOrWhiteSpace(x.InterfaceName)))
{
Console.WriteLine("Adding " + item.ToString());
+
db.TechIos.Add(new BL.Entities.TechIo()
{
Code = code++,
diff --git a/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Tango.PortsListGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Tango.PortsListGenerator.csproj
index 4e7f11359..b89ae91ce 100644
--- a/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Tango.PortsListGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.PortsListGenerator/Tango.PortsListGenerator.csproj
@@ -60,14 +60,6 @@
<Link>PortsList.xlsx</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
- <None Include="..\..\Resources\Tech IOs\Tech IOs v1.xlsx">
- <Link>Tech IOs v1.xlsx</Link>
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <None Include="..\..\Resources\Tech IOs\Tech IOs v2.xlsx">
- <Link>Tech IOs v2.xlsx</Link>
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
@@ -88,7 +80,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Options.cs b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Options.cs
index ba4c2213e..506e3ed50 100644
--- a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Options.cs
+++ b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Options.cs
@@ -22,9 +22,6 @@ namespace Tango.Protobuf.CLI
[Option("c", Required = false, HelpText = "Optional folder names to exclusively include (separated by commas).")]
public String Includes { get; set; }
- [Option("m", Required = false, HelpText = "Perform code size optimization for C compiler by omitting all hard coded strings.")]
- public bool Min { get; set; }
-
[ParserState]
public IParserState LastParserState { get; set; }
diff --git a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Program.cs
index a1ae39c31..91f0e0ef7 100644
--- a/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.Protobuf.CLI/Program.cs
@@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using Tango.Protobuf.Compilers;
namespace Tango.Protobuf.CLI
{
@@ -63,12 +61,6 @@ namespace Tango.Protobuf.CLI
{
var compiler = CompilerFactory.CreateCompiler(language);
- if (options.Min && compiler is CCompiler)
- {
- (compiler as CCompiler).Minimize = true;
- }
-
-
compiler.CompilationProgress += (x, e) =>
{
try
@@ -114,12 +106,6 @@ namespace Tango.Protobuf.CLI
private static int ExitError(String error)
{
Console.WriteLine(error);
-
- if (Debugger.IsAttached)
- {
- Console.ReadLine();
- }
-
return -1;
}
diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/MainWindow.xaml.cs
index 011186a23..7d05ef9f5 100644
--- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/MainWindow.xaml.cs
+++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/MainWindow.xaml.cs
@@ -26,14 +26,6 @@ namespace Tango.Stubs.UI
{
InitializeComponent();
Title += " v" + Assembly.GetExecutingAssembly().GetName().Version.Major + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor;
-
- Closing += MainWindow_Closing;
- }
-
- private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- e.Cancel = true;
- Environment.Exit(0);
}
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs
index bf3b52bde..d283d9099 100644
--- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs
@@ -3,5 +3,5 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Tango - Stubs execution GUI utility")]
-[assembly: AssemblyVersion("3.5.0.0")]
+[assembly: AssemblyVersion("3.4.0.0")]
diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/App.xaml b/Software/Visual_Studio/Utilities/Tango.UITests/App.xaml
index 36674648b..43576481f 100644
--- a/Software/Visual_Studio/Utilities/Tango.UITests/App.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.UITests/App.xaml
@@ -6,13 +6,7 @@
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
-
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="pack://application:,,,/Tango.MachineStudio.Common;component/Resources/MaterialDesign.xaml" />
- <ResourceDictionary Source="pack://application:,,,/Tango.MachineStudio.Common;component/Themes/LightThemeColors.xaml" />
- </ResourceDictionary.MergedDictionaries>
-
- <!--<ResourceDictionary.MergedDictionaries>
+ <!--<ResourceDictionary.MergedDictionaries>
--><!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --><!--
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml b/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml
index c5bb2001c..53fdc25d3 100644
--- a/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml
+++ b/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml
@@ -1,323 +1,46 @@
<Window x:Class="Tango.UITests.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:colorpic="clr-namespace:Tango.ColorPickers;assembly=Tango.ColorPickers"
+ xmlns:collection="clr-namespace:System.Collections;assembly=mscorlib"
+ xmlns:local="clr-namespace:Tango.UITests"
+ xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop"
+ xmlns:components="clr-namespace:Tango.Touch.Components;assembly=Tango.Touch"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch"
+ xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
+ xmlns:stubs="clr-namespace:Tango.Stubs.Views;assembly=Tango.Stubs"
+ xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch"
+ xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common"
+ xmlns:explorer="clr-namespace:Tango.Explorer;assembly=Tango.Explorer"
mc:Ignorable="d"
- Title="MainWindow" Height="700" Width="800" DataContext="{Binding RelativeSource={RelativeSource Self}}" >
+ Title="MainWindow" Height="700" Width="800" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
- <TabControl Margin="5" TabStripPlacement="Top">
- <TabControl.Resources>
- <Style TargetType="TabPanel">
- <Setter Property="HorizontalAlignment" Value="Center"/>
- </Style>
- <Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
- <Setter Property="Padding" Value="20,2"></Setter>
- </Style>
- </TabControl.Resources>
- <TabItem Header="HSB" Padding="5">
- <Grid >
- <Grid.Background>
- <SolidColorBrush Color="{Binding ElementName=HSBPicker, Path=SelectedColor}"/>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200"></ColumnDefinition>
- <ColumnDefinition Width="1*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" Orientation="Vertical" Height="Auto" HorizontalAlignment="Center" Width="Auto" VerticalAlignment="Top" Margin="10 50 0 0">
- <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">H:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="HHSBColor" Text="230" FontSize="22" Margin="2" ></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Height="Auto" HorizontalAlignment="Left" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">S:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="SHSBColor" Text="100" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">B:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="BHSBColor" Text="50" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap">Thumb height:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center">
- <TextBox x:Name="HSBThumbHeightProp" Text="16" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap" >Thumb color:</TextBlock>
- <Border Width="90" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="HSBThumbColorProp" Text="#F4F4F4" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- </StackPanel>
- <StackPanel Grid.Column="1" VerticalAlignment="Center" Orientation="Vertical">
- <colorpic:HsbColorPicker x:Name="HSBPicker" Width="400" Height="400" Background="White" Foreground="Black" BorderBrush="Gainsboro" BorderThickness="0.8"
- H="{Binding ElementName=HHSBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- S="{Binding ElementName=SHSBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- B="{Binding ElementName=BHSBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- ThumbHeight="{Binding ElementName=HSBThumbHeightProp, Path=Text}"
- ThumbColor="{Binding ElementName=HSBThumbColorProp, Path=Text}"/>
-
- <TextBlock Background="LightGray" Margin="0 50 0 0" HorizontalAlignment="Center" Foreground="Black" Width="400" FontSize="24" Height="Auto" MinHeight="40" FontWeight="DemiBold">
- <Run Text="RGB Color: " />
- <Run Text="{Binding ElementName=HSBPicker, Path=SelectedColor}"/>
- </TextBlock>
- </StackPanel>
- </Grid>
- </TabItem>
- <TabItem Header="RGB" Padding="5">
- <Grid >
- <Grid.Background>
- <SolidColorBrush Color="{Binding ElementName=RGBPicker, Path=SelectedColor}"/>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200"></ColumnDefinition>
- <ColumnDefinition Width="1*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" Orientation="Vertical" Height="Auto" HorizontalAlignment="Center" Width="Auto" VerticalAlignment="Top" Margin="10 50 0 0">
- <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">R:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="RRGBColor" Text="30" FontSize="22" Margin="2" ></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Height="Auto" HorizontalAlignment="Left" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">G:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="GRGBColor" Text="100" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">B:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="BRGBColor" Text="220" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Top" FontWeight="DemiBold" Width="65" TextWrapping="Wrap">Thumb height:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center">
- <TextBox x:Name="RGBThumbHeightProp" Text="16" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap" >Thumb color:</TextBlock>
- <Border Width="90" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="RGBThumbColorProp" Text="#F4F4F4" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- </StackPanel>
-
- <StackPanel Grid.Column="1" VerticalAlignment="Center" Orientation="Vertical">
- <colorpic:RgbColorPicker x:Name="RGBPicker" SelectedColor="#5C3D99" Width="400" Height="300" Background="White" Foreground="Black" BorderBrush="Gainsboro" BorderThickness="0.8"
- R="{Binding ElementName=RRGBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- G="{Binding ElementName=GRGBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- B="{Binding ElementName=BRGBColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- ThumbHeight="{Binding ElementName=RGBThumbHeightProp, Path=Text}"
- ThumbColor="{Binding ElementName=RGBThumbColorProp, Path=Text}"/>
-
- <TextBlock Margin="0 50 0 0" Background="LightGray" HorizontalAlignment="Center" Foreground="Black" Width="400" FontSize="24" Height="Auto" MinHeight="40" FontWeight="DemiBold">
- <Run Text="RGB Color: " />
- <Run Text="{Binding ElementName=RGBPicker, Path=SelectedColor}"/>
- </TextBlock>
- </StackPanel>
- </Grid>
- </TabItem>
-
- <TabItem Header="CMYK" Padding="5">
- <Grid >
- <Grid.Background>
- <SolidColorBrush Color="{Binding ElementName=CmykPicker, Path=SelectedColor}"/>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200"></ColumnDefinition>
- <ColumnDefinition Width="1*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" Orientation="Vertical" Height="Auto" HorizontalAlignment="Center" Width="Auto" VerticalAlignment="Top" Margin="10 50 0 0">
- <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">C:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="CCMYKColor" Text="60" FontSize="22" Margin="2" ></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Height="Auto" HorizontalAlignment="Left" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">M:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="MCMYKColor" Text="20" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">Y:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="YCMYKColor" Text="80" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">K:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="KCMYKColor" Text="20" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap">Thumb height:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center">
- <TextBox x:Name="CMYKThumbHeightProp" Text="16" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap" >Thumb color:</TextBlock>
- <Border Width="90" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="CMYKThumbColorProp" Text="#F4F4F4" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- </StackPanel>
- <StackPanel Grid.Column="1" VerticalAlignment="Top" Orientation="Vertical" Margin="10 60 0 0">
- <colorpic:CmykColorPicker x:Name="CmykPicker" Width="400" Height="400" Background="White" Foreground="Black" BorderBrush="Gainsboro" BorderThickness="0.8"
- Cyan="{Binding ElementName=CCMYKColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- Magenta="{Binding ElementName=MCMYKColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- Yellow="{Binding ElementName=YCMYKColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- Key="{Binding ElementName=KCMYKColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- ThumbHeight="{Binding ElementName=CMYKThumbHeightProp, Path=Text}"
- ThumbColor="{Binding ElementName=CMYKThumbColorProp, Path=Text}"/>
- <TextBlock Margin="0 50 0 0" HorizontalAlignment="Center" Background="LightGray" Foreground="Black" Width="400" FontSize="24" Height="Auto" MinHeight="40" FontWeight="DemiBold">
- <Run Text="RGB Color: " />
- <Run Text="{Binding ElementName=CmykPicker, Path=SelectedColor}"/>
- </TextBlock>
- </StackPanel>
- </Grid>
- </TabItem>
+ <touch:TouchPanel>
+ <touch:LightTouchScrollViewer>
+ <Border Width="500" Height="500" Margin="0 40 0 0">
+ <Grid>
+ <aero:SystemDropShadowChrome CornerRadius="5" Color="Gray" Margin="-3">
+ <aero:SystemDropShadowChrome.RenderTransform>
+ <TranslateTransform X="-5" Y="-5"></TranslateTransform>
+ </aero:SystemDropShadowChrome.RenderTransform>
+ </aero:SystemDropShadowChrome>
+ <Border BorderThickness="1" BorderBrush="Gray" Background="White" CornerRadius="5">
- <TabItem Header="LAB" Padding="5">
- <Grid>
- <Grid.Background>
- <SolidColorBrush Color="{Binding ElementName=LabPicker, Path=SelectedColor}"/>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200"></ColumnDefinition>
- <ColumnDefinition Width="1*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" Orientation="Vertical" Height="Auto" HorizontalAlignment="Center" Width="Auto" VerticalAlignment="Top" Margin="10 50 0 0">
- <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">L:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="LLabColor" Text="77" FontSize="22" Margin="2" ></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Height="Auto" HorizontalAlignment="Left" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">A:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="ALabColor" Text="89" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">B:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="BLabColor" Text="89" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap">Thumb height:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center">
- <TextBox x:Name="ThumbHeightProp" Text="16" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap" >Thumb color:</TextBlock>
- <Border Width="90" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="ThumbColorProp" Text="#F4F4F4" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- </StackPanel>
- <StackPanel Grid.Column="1" VerticalAlignment="Top" Orientation="Vertical" Margin="10 60 0 0">
- <colorpic:LabColorPicker x:Name="LabPicker"
- L="{Binding ElementName=LLabColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- A="{Binding ElementName=ALabColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- B="{Binding ElementName=BLabColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- ThumbHeight="{Binding ElementName=ThumbHeightProp, Path=Text}"
- ThumbColor="{Binding ElementName=ThumbColorProp, Path=Text}"
- Width="400" Height="400" Background="White" Foreground="Black" BorderBrush="Gainsboro" BorderThickness="0.8" />
- <TextBlock Margin="0 50 0 0" HorizontalAlignment="Center" Background="LightGray" Foreground="Black" Width="400" FontSize="24" Height="Auto" MinHeight="40" FontWeight="DemiBold">
- <Run Text="RGB Color: " />
- <Run Text="{Binding ElementName=LabPicker, Path=SelectedColor}"/>
- </TextBlock>
- </StackPanel>
- </Grid>
- </TabItem>
+ </Border>
+
+ <StackPanel>
+ <touch:TouchNumericTextBox HorizontalAlignment="Center" VerticalAlignment="Center" Width="200"></touch:TouchNumericTextBox>
+ <touch:TouchNumericTextBox Margin="0 40 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200"></touch:TouchNumericTextBox>
- <TabItem Header="LCH" Padding="5">
- <Grid >
- <Grid.Background>
- <SolidColorBrush Color="{Binding ElementName=LchPicker, Path=SelectedColor}"/>
- </Grid.Background>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="200"></ColumnDefinition>
- <ColumnDefinition Width="1*"></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" Orientation="Vertical" Height="Auto" HorizontalAlignment="Center" Width="Auto" VerticalAlignment="Top" Margin="10 50 0 0">
- <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">L:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="LLCHColor" Text="54" FontSize="22" Margin="2" ></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Height="Auto" HorizontalAlignment="Left" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">C:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" VerticalAlignment="Center" Margin="20 0 0 0">
- <TextBox x:Name="CLCHColor" Text="55" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="24" VerticalAlignment="Center" FontWeight="DemiBold" Width="65">H:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="HLCHColor" Text="120" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap">Thumb height:</TextBlock>
- <Border Width="80" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center">
- <TextBox x:Name="LCHThumbHeightProp" Text="16" FontSize="22" Margin="2"></TextBox>
- </Border>
- </StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0 30 0 0">
- <TextBlock FontSize="20" VerticalAlignment="Center" FontWeight="DemiBold" Width="65" TextWrapping="Wrap" >Thumb color:</TextBlock>
- <Border Width="90" Background="White" CornerRadius="6" Margin="20 0 0 0" VerticalAlignment="Center" >
- <TextBox x:Name="LCHThumbColorProp" Text="#F4F4F4" FontSize="22" Margin="2"></TextBox>
- </Border>
+ <TextBox Margin="0 40 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="40"></TextBox>
+ <TextBox Margin="0 40 0 0" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="40"></TextBox>
</StackPanel>
- </StackPanel>
- <StackPanel Grid.Column="1" VerticalAlignment="Center" Orientation="Vertical">
- <colorpic:LchColorPicker x:Name="LchPicker" Width="400" Height="300" Background="White" Foreground="Black" BorderBrush="Gainsboro" BorderThickness="0.8"
- L="{Binding ElementName=LLCHColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- C="{Binding ElementName=CLCHColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- H="{Binding ElementName=HLCHColor, Path=Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
- ThumbHeight="{Binding ElementName=LCHThumbHeightProp, Path=Text}"
- ThumbColor="{Binding ElementName=LCHThumbColorProp, Path=Text}"/>
- <TextBlock Margin="0 50 0 0" HorizontalAlignment="Center" Background="LightGray" Foreground="Black" Width="400" FontSize="24" Height="Auto" MinHeight="40" FontWeight="DemiBold">
- <Run Text="RGB Color: " />
- <Run Text="{Binding ElementName=LchPicker, Path=SelectedColor}"/>
- </TextBlock>
- </StackPanel>
- </Grid>
- </TabItem>
-
- </TabControl>
-
-
-
-
- <!--<controls:MultiSelectComboBox Width="250" Height="60" Background="White" Foreground="Black"
- x:Name="MSCombobox"
- BorderBrush="Gainsboro" BorderThickness="0.8"
- Items="{Binding Items}"
- SelectedItemsList ="{Binding SelectedItems}"/>-->
-
-
+ </Grid>
+ </Border>
+ </touch:LightTouchScrollViewer>
+ </touch:TouchPanel>
</Grid>
</Window>
diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml.cs b/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml.cs
index bf2db0084..6c24121ba 100644
--- a/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml.cs
+++ b/Software/Visual_Studio/Utilities/Tango.UITests/MainWindow.xaml.cs
@@ -20,6 +20,7 @@ using System.Windows.Shapes;
using System.Windows.Threading;
using Tango.BL;
using Tango.BL.Builders;
+using Tango.BL.Catalogs;
using Tango.BL.Entities;
using Tango.Core;
using Tango.Core.Commands;
@@ -38,8 +39,6 @@ using TableDependency.SqlClient.Base.EventArgs;
using TableDependency.SqlClient.Base.Abstracts;
using Tango.Core.Components;
using System.Text.RegularExpressions;
-using Tango.SharedUI.Controls;
-using System.ComponentModel;
namespace Tango.UITests
{
@@ -48,50 +47,106 @@ namespace Tango.UITests
/// </summary>
public partial class MainWindow : Window
{
- private ObservableCollection<object> _selectedItems;
+ //private ITableDependency _dep;
- public ObservableCollection<object> SelectedItems
+ //private DataSource _dataSource;
+
+ public MainWindow()
{
- get { return _selectedItems; }
- set { _selectedItems = value; }
- }
+ //_dataSource = new DataSource()
+ //{
+ // Address = "twine.database.windows.net",
+ // Catalog = "Tango_DEV",
+ // Type = DataSourceType.SQLServer,
+ // UserName = "Roy",
+ // Password = "Aa123456",
+ // IntegratedSecurity = false,
+ //};
- private ObservableCollection<string> _items;
-
+ //InitializeComponent();
+ //EntityFrameworkCache.Initialize(new MyMemoryCache() { Expiration = TimeSpan.FromMinutes(1) });
- public ObservableCollection<string> Items
- {
- get { return _items; }
- set { _items = value; }
- }
- public MainWindow()
- {
- SelectedItems = new ObservableCollection<object>
- {
- //new MultiSelectComboBoxItem("item1"),
- //new MultiSelectComboBoxItem("item2"),
- //new MultiSelectComboBoxItem("item3"),
- //new MultiSelectComboBoxItem("item4"),
- //new MultiSelectComboBoxItem("item5")
+ //this.Closing += MainWindow_Closing;
+
+ //CmdCommand command = new CmdCommand("wmic", "pagefile list /format:list");
+ //var result = command.Run().Result;
+
+ //Regex regEx = new Regex("Name=(.+)");
+ //var pageFiles = regEx.Matches(result.StandardOutput).OfType<Match>().Select(x => x.Groups.OfType<Group>().LastOrDefault()).ToList().Select(x => x.Value.Replace("\n", "").Replace("\r", "")).ToList();
- };
- Items = new ObservableCollection<string>
- {
- "item1",
- "item2",
- "item3",
- "item4",
- "item5",
- "item6",
- "item7",
- "item8",
- "item9",
+
+ //var matches = matches.OfType<Match>().Select(x => x.Groups.OfType<Group>().Last().Value.Replace("\n","").Replace("\r","")).ToList();
- };
- InitializeComponent();
}
+
+ //private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ //{
+ // //if (_dep != null)
+ // //{
+ // // _dep.Stop();
+ // // _dep.Dispose();
+ // //}
+ //}
+
+
+ //private void btnStart_Click(object sender, RoutedEventArgs e)
+ //{
+ // Stopwatch watch = Stopwatch.StartNew();
+
+ // using (ObservablesContext db = ObservablesContext.CreateDefault(_dataSource))
+ // {
+ // var users = db.Users.ToList();
+ // var jobs = new JobsCollectionBuilder(db).SetAll().WithSegments().WithBrushStops().Build();
+ // var first_job = jobs.First();
+
+ // if (first_job.Name == "Changed Name 2")
+ // {
+ // Debug.WriteLine("Changed and cached !!!");
+ // }
+ // else
+ // {
+ // Debug.WriteLine("Not working.");
+ // }
+ // }
+
+ // Debug.WriteLine($"Time to complete: {watch.Elapsed.TotalSeconds} seconds");
+ //}
+
+ //private void btnChange_Click(object sender, RoutedEventArgs e)
+ //{
+ // using (ObservablesContext db = ObservablesContext.CreateDefault(_dataSource))
+ // {
+ // var jobs = new JobsCollectionBuilder(db).SetAll().WithSegments().WithBrushStops().Build();
+ // var first_job = jobs.First();
+ // first_job.Name = "Changed Name 2";
+ // db.SaveChanges();
+ // }
+ //}
+
+ //private void btnListen_Click(object sender, RoutedEventArgs e)
+ //{
+ // String str = _dataSource.ToConnection().ConnectionString;
+
+ // var dep = new SqlTableDependency<DAL.Remote.DB.USER>(str, "USERS", "dbo");
+ // dep.TraceLevel = TraceLevel.Verbose;
+ // dep.TraceListener = new TextWriterTraceListener(Console.Out);
+
+ // dep.OnChanged += Changed;
+ // dep.Start();
+
+ // _dep = dep;
+ //}
+
+ //private void Changed(object sender, RecordChangedEventArgs<DAL.Remote.DB.USER> e)
+ //{
+ // var changedEntity = e.Entity;
+
+ // Console.WriteLine("DML operation: " + e.ChangeType);
+
+ // Console.WriteLine(changedEntity.ToJsonString());
+ //}
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj b/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj
index 83dd699af..9ac2e3105 100644
--- a/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.UITests/Tango.UITests.csproj
@@ -49,13 +49,6 @@
<Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
<HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
</Reference>
- <Reference Include="MaterialDesignColors">
- <HintPath>..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
- </Reference>
- <Reference Include="MaterialDesignThemes.Wpf, Version=2.3.1.953, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
- </Reference>
<Reference Include="PresentationFramework.Aero" />
<Reference Include="System" />
<Reference Include="System.ComponentModel.Annotations, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -143,10 +136,6 @@
<Project>{db79fb33-ce7a-49cf-aa89-f697e5cdb0f6}</Project>
<Name>Tango.FirmwareUpdateLib</Name>
</ProjectReference>
- <ProjectReference Include="..\..\MachineStudio\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
- <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
- <Name>Tango.MachineStudio.Common</Name>
- </ProjectReference>
<ProjectReference Include="..\..\PPC\Tango.PPC.Common\Tango.PPC.Common.csproj">
<Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project>
<Name>Tango.PPC.Common</Name>
@@ -155,10 +144,6 @@
<Project>{F441FEEE-322A-4943-B566-110E12FD3B72}</Project>
<Name>Tango.BL</Name>
</ProjectReference>
- <ProjectReference Include="..\..\Tango.ColorPickers\Tango.ColorPickers.csproj">
- <Project>{f9df9435-a4f3-43c5-a6cd-aad6689b42ae}</Project>
- <Name>Tango.ColorPickers</Name>
- </ProjectReference>
<ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
<Project>{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}</Project>
<Name>Tango.Core</Name>
diff --git a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs
index 501058016..6bbcd1884 100644
--- a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs
+++ b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Program.cs
@@ -17,15 +17,10 @@ namespace Tango.WebClientGenerator
static void Main(string[] args)
{
//Generate PPC client.
- //GenerateWebClient<PPC.Common.Web.LoginRequest, PPC.Common.Web.LoginResponse, MachineService.Controllers.PPCController>("Tango.PPC.Common.Web", "PPCWebClientBase", PathHelper.GetSolutionFolder() + @"\PPC\Tango.PPC.Common\Web");
+ GenerateWebClient<PPC.Common.Web.LoginRequest, PPC.Common.Web.LoginResponse, MachineService.Controllers.PPCController>("Tango.PPC.Common.Web", "PPCWebClientBase", PathHelper.GetSolutionFolder() + @"\PPC\Tango.PPC.Common\Web");
//Generate Machine Studio client.
- //GenerateWebClient<MachineStudio.Common.Web.LoginRequest, MachineStudio.Common.Web.LoginResponse, MachineService.Controllers.MachineStudioController>("Tango.MachineStudio.Common.Web", "MachineStudioWebClientBase", PathHelper.GetSolutionFolder() + @"\MachineStudio\Tango.MachineStudio.Common\Web");
-
- //Generate FSE client.
- GenerateWebClientV2<FSE.Web.Messages.LoginRequest, FSE.Web.Messages.LoginResponse, MachineService.Controllers.FSEController>("Tango.FSE.BL.Web", "FSEWebClientBase", PathHelper.GetSolutionFolder() + @"\FSE\Tango.FSE.BL\Web");
-
- Console.WriteLine("Done");
+ GenerateWebClient<MachineStudio.Common.Web.LoginRequest, MachineStudio.Common.Web.LoginResponse, MachineService.Controllers.MachineStudioController>("Tango.MachineStudio.Common.Web", "MachineStudioWebClientBase", PathHelper.GetSolutionFolder() + @"\MachineStudio\Tango.MachineStudio.Common\Web");
}
private static void GenerateWebClient<TLoginRequest, TLoginResponse, TController>(String nameSpace, String name, String path) where TLoginRequest : WebRequestMessage where TLoginResponse : WebTokenResponse where TController : TangoController
@@ -50,28 +45,5 @@ namespace Tango.WebClientGenerator
String code = model.GenerateCode();
File.WriteAllText(Path.Combine(path, name + ".cs"), code);
}
-
- private static void GenerateWebClientV2<TLoginRequest, TLoginResponse, TController>(String nameSpace, String name, String path) where TLoginRequest : WebRequestMessage where TLoginResponse : WebTokenResponse where TController : TangoController
- {
- TangoWebClientv2CodeFile model = new TangoWebClientv2CodeFile();
- model.Namespace = nameSpace;
- model.ControllerName = typeof(TController).Name.Replace("Controller", "");
- model.Name = name;
- model.LoginRequest = typeof(TLoginRequest).FullName;
- model.LoginResponse = typeof(TLoginResponse).FullName;
-
- foreach (var action in typeof(TController).GetMethods().Where(x => typeof(WebResponseMessage).IsAssignableFrom(x.ReturnType) && x.Name != "Login"))
- {
- model.Actions.Add(new TangoWebClientv2CodeFile.ControllerAction()
- {
- Name = action.Name,
- Request = action.GetParameters()[0].ParameterType.FullName,
- Response = action.ReturnType.FullName,
- });
- }
-
- String code = model.GenerateCode();
- File.WriteAllText(Path.Combine(path, name + ".cs"), code);
- }
}
}
diff --git a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Tango.WebClientGenerator.csproj b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Tango.WebClientGenerator.csproj
index e589db6be..da8738617 100644
--- a/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Tango.WebClientGenerator.csproj
+++ b/Software/Visual_Studio/Utilities/Tango.WebClientGenerator/Tango.WebClientGenerator.csproj
@@ -53,10 +53,6 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\..\FSE\Tango.FSE.Web\Tango.FSE.Web.csproj">
- <Project>{d6f7d31d-7f8c-45e2-ae0a-fbbd1f5f9d5f}</Project>
- <Name>Tango.FSE.Web</Name>
- </ProjectReference>
<ProjectReference Include="..\..\MachineStudio\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
<Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
<Name>Tango.MachineStudio.Common</Name>