diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-26 10:55:44 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-08-26 10:55:44 +0300 |
| commit | 6e2fbaffeec9d6e3518ea9706eea107a4f1b348c (patch) | |
| tree | f50b3d8962dd37188061f8f52c1a7aeff1642232 /Software/Visual_Studio/MachineStudio | |
| parent | db3dc558ec5fe5f3584081795865cd22f912da7d (diff) | |
| parent | e6704dce7a2b7f6d5f9bbf1b8374cc7f00ea061e (diff) | |
| download | Tango-6e2fbaffeec9d6e3518ea9706eea107a4f1b348c.tar.gz Tango-6e2fbaffeec9d6e3518ea9706eea107a4f1b348c.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/MachineStudio')
133 files changed, 3815 insertions, 5692 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Properties/AssemblyInfo.cs index bda64c925..77d9cc0d8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Color Lab Module")] -[assembly: AssemblyVersion("2.0.8.1633")] +[assembly: AssemblyVersion("2.0.10.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj index a0d471522..7e8a9e126 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Tango.MachineStudio.ColorLab.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.ColorLab</RootNamespace> <AssemblyName>Tango.MachineStudio.ColorLab</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs index 5b317e6d2..02f496b1f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/ViewModels/MainViewVM.cs @@ -25,7 +25,7 @@ using Tango.SharedUI.Controls; namespace Tango.MachineStudio.ColorLab.ViewModels { - public class MainViewVM : StudioViewModel<ColorLabModule> + public class MainViewVM : StudioViewModel { private ObservablesContext _dbContext; private INotificationProvider _notification; @@ -239,34 +239,57 @@ namespace Tango.MachineStudio.ColorLab.ViewModels #endregion + #region Constructors + + /// <summary> + /// Initializes a new instance of the <see cref="MainViewVM"/> class. + /// </summary> + /// <param name="notification">The notification.</param> public MainViewVM(INotificationProvider notification) : base() { _notification = notification; - _dbContext = ObservablesContext.CreateDefault(); - CCT = new Cct(); SourceColor = new RgbVM(); SourceColor.ColorChanged += SourceColor_ColorChanged; - Machines = _dbContext.Machines.ToObservableCollection(); - ColorSpaces = _dbContext.ColorSpaces.ToObservableCollection(); - Rmls = _dbContext.Rmls.ToObservableCollection(); - ImportForwardDataCommand = new RelayCommand(ImportForwardData, () => SelectedRML != null); - ImportInverseDataCommand = new RelayCommand(ImportInverseData, () => SelectedRML != null); + ImportForwardDataCommand = new RelayCommand(ImportForwardData, () => SelectedRML != null && IsFree); + ImportInverseDataCommand = new RelayCommand(ImportInverseData, () => SelectedRML != null && IsFree); - ExportForwardDataCommand = new RelayCommand(ExportForwardData, () => SelectedRML != null && CCT != null && CCT.ForwardFileName != null); - ExportInverseDataCommand = new RelayCommand(ExportInverseData, () => SelectedRML != null && CCT != null && CCT.InverseFileName != null); + ExportForwardDataCommand = new RelayCommand(ExportForwardData, () => SelectedRML != null && CCT != null && CCT.ForwardFileName != null && IsFree); + ExportInverseDataCommand = new RelayCommand(ExportInverseData, () => SelectedRML != null && CCT != null && CCT.InverseFileName != null && IsFree); - SaveCommand = new RelayCommand(Save, () => SelectedRML != null); + SaveCommand = new RelayCommand(Save, () => SelectedRML != null && IsFree); } + #endregion + + #region Event Handlers + private void SourceColor_ColorChanged(object sender, Color e) { GetHiveSuggestions(); } + #endregion + + #region Application Ready + + public override void OnApplicationReady() + { + Task.Factory.StartNew(() => + { + _dbContext = ObservablesContext.CreateDefault(); + + Machines = _dbContext.Machines.ToObservableCollection(); + ColorSpaces = _dbContext.ColorSpaces.ToObservableCollection(); + Rmls = _dbContext.Rmls.ToObservableCollection(); + }); + } + + #endregion + #region ColorLab private void GetHiveSuggestions() @@ -417,6 +440,10 @@ namespace Tango.MachineStudio.ColorLab.ViewModels { if (SelectedMachine != null) { + IsFree = false; + + _dbContext.Adapter.GetConfiguration(x => x.Guid == SelectedMachine.ConfigurationGuid); + LiquidVolumes = SelectedMachine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex).Select(x => new LiquidVolumeVM() { Color = x.LiquidType.Color, @@ -424,12 +451,17 @@ namespace Tango.MachineStudio.ColorLab.ViewModels IdsPack = x, }).ToObservableCollection(); + + LiquidVolumes.EnableCrossThreadOperations(); + LiquidVolumes.ToList().ForEach(x => x.VolumeChanged += (s, e) => OnLiquidVolumeChanged()); InvalidateLiquidFactorsCalibrationData(); SelectedMachine.Modified -= SelectedMachine_Modified; SelectedMachine.Modified += SelectedMachine_Modified; + + IsFree = true; } } @@ -515,42 +547,61 @@ namespace Tango.MachineStudio.ColorLab.ViewModels #region RML - private void InvalidateLiquidFactorsCalibrationData() + private async void InvalidateLiquidFactorsCalibrationData() { if (SelectedRML != null && SelectedMachine != null) { - LiquidTypesRmls = SelectedMachine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); - //RmlProcessParametersTableGroup = SelectedRML.ProcessParametersTablesGroups.ToList().SingleOrDefault(x => x.Active); - - LiquidsCalibrationData = new ObservableCollection<CalibrationDataVM>(); + IsFree = false; - foreach (var idsPack in SelectedMachine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex)) + await Task.Factory.StartNew(() => { - CalibrationDataVM vm = new CalibrationDataVM(); - vm.Name = idsPack.LiquidType.Name; - vm.Color = idsPack.LiquidType.Color; - vm.IdsPack = idsPack; + using (_notification.PushTaskItem("Loading RML data...")) + { + _dbContext.Adapter.GetConfiguration(x => x.Guid == SelectedMachine.ConfigurationGuid); + _dbContext.Adapter.GetRmlCCTs(SelectedRML.Guid); + _dbContext.Adapter.GetRmlCATs(SelectedRML.Guid, SelectedMachine.Guid); + _dbContext.Adapter.GetRmlLiquidTypes(SelectedRML.Guid); - var cat = idsPack.LiquidType.Cats.FirstOrDefault(x => x.Machine == SelectedMachine && x.Rml == SelectedRML); + LiquidTypesRmls = SelectedMachine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); + //RmlProcessParametersTableGroup = SelectedRML.ProcessParametersTablesGroups.ToList().SingleOrDefault(x => x.Active); - if (cat != null) - { - var calData = cat.GetCalibrationData(); - vm.CalibrationPoints = calData.CalibrationPoints.Select(x => new CalibrationDataPointVM(x.X, x.Y)).ToObservableCollection(); - } + LiquidsCalibrationData = new ObservableCollection<CalibrationDataVM>(); + LiquidsCalibrationData.EnableCrossThreadOperations(); - LiquidsCalibrationData.Add(vm); - } + foreach (var idsPack in SelectedMachine.Configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex)) + { + CalibrationDataVM vm = new CalibrationDataVM(); + vm.Name = idsPack.LiquidType.Name; + vm.Color = idsPack.LiquidType.Color; + vm.IdsPack = idsPack; - _isNewCCT = false; - CCT = SelectedRML.Ccts.FirstOrDefault(); + var cat = idsPack.LiquidType.Cats.FirstOrDefault(x => x.Machine == SelectedMachine && x.Rml == SelectedRML); - if (CCT == null) - { - CCT = new Cct(); - CCT.Rml = SelectedRML; - _isNewCCT = true; - } + if (cat != null) + { + var calData = cat.GetCalibrationData(); + vm.CalibrationPoints = calData.CalibrationPoints.Select(x => new CalibrationDataPointVM(x.X, x.Y)).ToObservableCollection(); + } + + InvokeUINow(() => + { + LiquidsCalibrationData.Add(vm); + }); + } + + _isNewCCT = false; + CCT = SelectedRML.Ccts.FirstOrDefault(); + + if (CCT == null) + { + CCT = new Cct(); + CCT.Rml = SelectedRML; + _isNewCCT = true; + } + } + }); + + IsFree = true; } } @@ -564,6 +615,8 @@ namespace Tango.MachineStudio.ColorLab.ViewModels { try { + IsFree = false; + if (_isNewCCT) { _dbContext.Ccts.Add(CCT); @@ -601,6 +654,10 @@ namespace Tango.MachineStudio.ColorLab.ViewModels { _notification.ShowError(LogManager.Log(ex, "An error occurred while trying to save to data base.").Message + Environment.NewLine + ex.Message); } + finally + { + IsFree = true; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml index d8ef015be..78eaf04e8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.ColorLab/Views/MainView.xaml @@ -35,7 +35,7 @@ <ColumnDefinition Width="1*"/> </Grid.ColumnDefinitions> - <Grid Background="#B1FFFFFF"> + <Grid Background="#B1FFFFFF" IsEnabled="{Binding IsFree}"> <DockPanel> <Grid DockPanel.Dock="Bottom" Margin="20"> <Button Height="60" Command="{Binding SaveCommand}" Width="200" HorizontalAlignment="Right"> @@ -269,7 +269,7 @@ </StackPanel> </StackPanel> - <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center" MinWidth="420"> + <ItemsControl ItemsSource="{Binding LiquidVolumes}" VerticalAlignment="Center" MinWidth="420" IsEnabled="{Binding IsFree}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel VerticalAlignment="Center" Orientation="Horizontal" IsItemsHost="True"></StackPanel> @@ -361,7 +361,7 @@ </Grid> <Grid Margin="0 20 0 0"> - <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding LiquidsCalibrationData}"> + <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding LiquidsCalibrationData}" IsEnabled="{Binding IsFree}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Rows="1" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Properties/AssemblyInfo.cs index 3b589e28b..fe6b7a013 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio DB Module")] -[assembly: AssemblyVersion("2.0.7.1633")] +[assembly: AssemblyVersion("2.0.9.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj index 393c4e491..259f2f652 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.DB</RootNamespace> <AssemblyName>Tango.MachineStudio.DB</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs index 727436306..9503e4c38 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using System.Windows; using Tango.BL; using Tango.BL.Entities; +using Tango.Core.Commands; using Tango.Core.DI; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.StudioApplication; @@ -14,36 +15,72 @@ using Tango.SharedUI; namespace Tango.MachineStudio.DB.ViewModels { - public class MainViewVM : StudioViewModel<DBModule> + public class MainViewVM : StudioViewModel { - public MainViewVM() : base() + private bool _isLoading; + public bool IsLoading { + get { return _isLoading; } + set { _isLoading = value; RaisePropertyChangedAuto(); } + } + private bool _notLoaded; + public bool NotLoaded + { + get { return _notLoaded; } + set { _notLoaded = value; RaisePropertyChangedAuto(); } } - public override void OnModuleRequest(params object[] args) + public RelayCommand LoadCommand { get; set; } + + public MainViewVM() : base() { - if (args != null && args.Length > 0 && args[0] is IObservableEntity) - { - var arg = args[0]; + NotLoaded = true; + LoadCommand = new RelayCommand(LoadAdapter,() => !IsLoading); + } - String vmName = arg.GetType().Name + "sViewVM"; + private async void LoadAdapter() + { + IsLoading = true; + InvalidateRelayCommands(); - Type vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); + await Task.Factory.StartNew(() => + { + ObservablesEntitiesAdapter.Instance.Initialize(); + }); - if (vmType == null) - { - vmName = arg.GetType().BaseType.Name + "sViewVM"; - vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); - } + IsLoading = false; + NotLoaded = false; + } - if (vmType != null) - { - var vm = TangoIOC.Default.GetInstance(vmType); - vmType.GetProperty("SelectedEntity").SetValue(vm, arg); - vmType.GetMethod("OnEdit", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(vm, new object[] { }); - } - } + public override void OnApplicationReady() + { + } + + //public override void OnModuleRequest(params object[] args) + //{ + // if (args != null && args.Length > 0 && args[0] is IObservableEntity) + // { + // var arg = args[0]; + + // String vmName = arg.GetType().Name + "sViewVM"; + + // Type vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); + + // if (vmType == null) + // { + // vmName = arg.GetType().BaseType.Name + "sViewVM"; + // vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); + // } + + // if (vmType != null) + // { + // var vm = TangoIOC.Default.GetInstance(vmType); + // vmType.GetProperty("SelectedEntity").SetValue(vm, arg); + // vmType.GetMethod("OnEdit", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(vm, new object[] { }); + // } + // } + //} } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml index a6edd80da..050ce5f31 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml @@ -6,6 +6,7 @@ xmlns:dockablz="clr-namespace:Dragablz.Dockablz;assembly=Dragablz" xmlns:dragablz="clr-namespace:Dragablz;assembly=Dragablz" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:managers="clr-namespace:Tango.MachineStudio.DB.Managers" @@ -154,5 +155,18 @@ <Thumb HorizontalAlignment="Left" Opacity="0" Width="5" VerticalAlignment="Stretch" Cursor="SizeWE" DragDelta="Thumb_DragDelta"></Thumb> </Grid> + + <Grid Background="#C9000000" Visibility="{Binding NotLoaded,Converter={StaticResource BoolToVisConverter}}"> + <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 20 0 0"> + <TextBlock TextAlignment="Center" FontSize="16" Foreground="Gainsboro"> + <Run>The Database module is considered obsolete and will be removed in the future.</Run> + <LineBreak/> + <Run>Loading the module will require some time and memory.</Run> + </TextBlock> + + <Button Height="50" Width="200" Margin="0 40 0 0" Command="{Binding LoadCommand}">LOAD</Button> + <mahapps:ProgressRing Margin="0 20 0 0" IsActive="{Binding IsLoading}" /> + </StackPanel> + </Grid> </Grid> </UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs index 51246a5d1..01b5df038 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Data Capturing Module")] -[assembly: AssemblyVersion("2.0.8.1633")] +[assembly: AssemblyVersion("2.0.10.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj index a8cd6b1cd..15df43f6e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.DataCapture</RootNamespace> <AssemblyName>Tango.MachineStudio.DataCapture</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -31,6 +31,12 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.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.0.0\lib\net45\EntityFramework.SqlServer.dll</HintPath> + </Reference> <Reference Include="Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\Google.Protobuf.3.4.1\lib\net45\Google.Protobuf.dll</HintPath> </Reference> @@ -44,6 +50,7 @@ <HintPath>..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath> </Reference> <Reference Include="System" /> + <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> @@ -188,7 +195,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/MachineStudio/Modules/Tango.MachineStudio.DataCapture/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/app.config index 5d794b958..0e58ccf54 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/app.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/app.config @@ -1,5 +1,9 @@ <?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> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> @@ -46,6 +50,16 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> + <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> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/packages.config index 73dae1a0c..d1cf6cd7a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/packages.config @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="CommonServiceLocator" version="1.3" targetFramework="net46" /> + <package id="EntityFramework" version="6.0.0" targetFramework="net472" /> <package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net46" /> <package id="Google.Protobuf" version="3.4.1" targetFramework="net46" /> <package id="MahApps.Metro" version="1.5.0" targetFramework="net46" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs index ff8b0320d..b1039c2c5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Navigation/DeveloperNavigationManager.cs @@ -16,7 +16,7 @@ namespace Tango.MachineStudio.Developer.Navigation public void NavigateTo(DeveloperNavigationView view) { LogManager.Log(String.Format("Navigating to view {0}...", view.ToString())); - MainView.Instance.TransitionControl.NavigateTo(view.ToString()); + MainView.Instance.NavigationControl.NavigateTo(view.ToString()); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs index 66e36649b..c29c487ae 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Developer Module")] -[assembly: AssemblyVersion("2.0.15.1633")] +[assembly: AssemblyVersion("2.0.17.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj index bd7484de8..cc9831ad9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Tango.MachineStudio.Developer.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Developer</RootNamespace> <AssemblyName>Tango.MachineStudio.Developer</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -196,6 +196,10 @@ <Project>{b9ae25d6-be35-492f-9079-21a7f3e6f7cc}</Project> <Name>RealTimeGraphEx</Name> </ProjectReference> + <ProjectReference Include="..\..\..\SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj"> + <Project>{BB2ABB74-BA58-4812-83AA-EC8171F42DF4}</Project> + <Name>Tango.AutoComplete</Name> + </ProjectReference> <ProjectReference Include="..\..\..\Tango.BL\Tango.BL.csproj"> <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project> <Name>Tango.BL</Name> @@ -264,10 +268,6 @@ <Project>{fc337a7f-1214-41d8-9992-78092a3b961e}</Project> <Name>Tango.MachineStudio.DataCapture</Name> </ProjectReference> - <ProjectReference Include="..\Tango.MachineStudio.DB\Tango.MachineStudio.DB.csproj"> - <Project>{94f7acf8-55e1-4a02-b9bc-a818413fdbbf}</Project> - <Name>Tango.MachineStudio.DB</Name> - </ProjectReference> <ProjectReference Include="..\Tango.MachineStudio.Logging\Tango.MachineStudio.Logging.csproj"> <Project>{1674f726-0e66-414f-b9fd-c6f20d7f07c7}</Project> <Name>Tango.MachineStudio.Logging</Name> @@ -276,10 +276,6 @@ <Project>{d0ce8122-077d-42a2-9490-028ae4769b52}</Project> <Name>Tango.MachineStudio.MachineDesigner</Name> </ProjectReference> - <ProjectReference Include="..\Tango.MachineStudio.Technician\Tango.MachineStudio.Technician.csproj"> - <Project>{5d39c1e1-3ecd-4634-bd1b-2bcf71c54a15}</Project> - <Name>Tango.MachineStudio.Technician</Name> - </ProjectReference> </ItemGroup> <ItemGroup> <Resource Include="Images\rgb.png" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs index ebf2f2446..5f82984a4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModelLocator.cs @@ -16,8 +16,8 @@ namespace Tango.MachineStudio.Developer /// </summary> static ViewModelLocator() { - TangoIOC.Default.Register<MainViewVM>(); TangoIOC.Default.Register<DeveloperNavigationManager, DeveloperNavigationManager>(); + TangoIOC.Default.Register<MainViewVM>(); } public static MainViewVM MainViewVM diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index dace2ceac..60c2e65f9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -41,6 +41,9 @@ using Tango.MachineStudio.Common; using Tango.BL.ColorConversion; using Tango.MachineStudio.Logging.ViewModels; using Tango.MachineStudio.Logging.Views; +using Tango.AutoComplete.Editors; +using System.Data.Entity; +using System.Runtime.ExceptionServices; namespace Tango.MachineStudio.Developer.ViewModels { @@ -48,7 +51,8 @@ namespace Tango.MachineStudio.Developer.ViewModels /// Represents the developer module main view, view model. /// </summary> /// <seealso cref="Tango.SharedUI.ViewModel" /> - public class MainViewVM : StudioViewModel<DeveloperModule> + [TangoCreateWhenRegistered] + public class MainViewVM : StudioViewModel { private static object _syncLock = new object(); private const string EMB_FORMATS_EXPORT = "Baby Lock (PES)|*.pes|Tajima (DST)|*.dst|EXP|*.exp|PCS|*.pcs|HUS|*.hus|KSM|*.ksm"; @@ -71,6 +75,7 @@ namespace Tango.MachineStudio.Developer.ViewModels private bool _hiveOpened; private bool _color_changed_from_hive; private bool _dialog_shown; + private bool _disable_gamut_check; #region Properties @@ -104,16 +109,6 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _runningJobStatus = value; RaisePropertyChangedAuto(); } } - private ObservableCollection<Machine> _machines; - /// <summary> - /// Gets or sets the machines. - /// </summary> - public ObservableCollection<Machine> Machines - { - get { return _machines; } - set { _machines = value; RaisePropertyChangedAuto(); } - } - private ObservableCollection<ColorSpace> _colorSpaces; /// <summary> /// Gets or sets the color spaces. @@ -173,19 +168,32 @@ namespace Tango.MachineStudio.Developer.ViewModels get { return _selectedMachine; } set { - _selectedMachine = value; - OnSelectedMachineChanged(); - RaisePropertyChangedAuto(); - InvalidateRelayCommands(); - - if (_selectedMachine != null) + if (value != null && _selectedMachine != value) { - _selectedMachine.Modified -= SelectedMachine_Modified; - _selectedMachine.Modified += SelectedMachine_Modified; + _selectedMachine = value; + OnSelectedMachineChanged(); + RaisePropertyChangedAuto(); + InvalidateRelayCommands(); + + if (_selectedMachine != null) + { + _selectedMachine.Modified -= SelectedMachine_Modified; + _selectedMachine.Modified += SelectedMachine_Modified; + } } } } + private bool _canWork; + /// <summary> + /// Gets or sets a value indicating whether this instance is loading machine. + /// </summary> + public bool CanWork + { + get { return _canWork; } + set { _canWork = value; RaisePropertyChangedAuto(); } + } + private List<LiquidTypesRml> _liquidTypesRmls; /// <summary> /// Gets or sets the liquid types RMLS. @@ -248,7 +256,6 @@ namespace Tango.MachineStudio.Developer.ViewModels { _activeJob = value; RaisePropertyChangedAuto(); - OnActiveJobChanged(); } } @@ -322,7 +329,7 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _selectedRML = value; - InvalidateLiquidFactorsAndProcessTables(); + OnSelectedRMLChanged(); RaisePropertyChangedAuto(); InvalidateRelayCommands(); } @@ -504,6 +511,11 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _selectedJobEvent = value; RaisePropertyChangedAuto(); OnSelectedJobEventChanged(); } } + /// <summary> + /// Gets or sets the machines providers. + /// </summary> + public ISuggestionProvider MachinesProvider { get; set; } + #endregion #region Commands @@ -643,28 +655,7 @@ namespace Tango.MachineStudio.Developer.ViewModels /// <param name="notificationProvider">The notification provider.</param> public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication, IEventLogger eventLogger, ISpeechProvider speech) { - _settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>(); - - SelectedJobs = new ObservableCollection<Job>(); - - JobEvents = new ObservableCollection<MachinesEvent>(); - - LogManager.Log("Initializing machine Db context..."); - _machineDbContext = ObservablesContext.CreateDefault(); - - Machines = _machineDbContext.Machines.ToObservableCollection(); - - if (_settings.LastSelectedMachineGuid != null) - { - LogManager.Log("Setting last selected machine from settings..."); - SelectedMachine = _machineDbContext.Machines.SingleOrDefault(x => x.Guid == _settings.LastSelectedMachineGuid); - } - - if (_settings.LastSelectedJobGuid != null && SelectedMachine != null) - { - LogManager.Log("Setting last selected job from settings..."); - SelectedMachineJob = SelectedMachine.Jobs.SingleOrDefault(x => x.Guid == _settings.LastSelectedJobGuid); - } + CanWork = true; _authentication = authentication; @@ -684,36 +675,76 @@ namespace Tango.MachineStudio.Developer.ViewModels }); //Initialize Commands... - EditMachineCommand = new RelayCommand(EditMachine, () => SelectedMachine != null); - EditRMLCommand = new RelayCommand(EditRML, () => SelectedRML != null); + EditMachineCommand = new RelayCommand(EditMachine, () => SelectedMachine != null && CanWork); + EditRMLCommand = new RelayCommand(EditRML, () => SelectedRML != null && CanWork); ToggleSideBarCommand = new RelayCommand(() => IsSideBarOpened = !IsSideBarOpened); - SaveLiquidFactorsCommand = new RelayCommand(SaveLiquidFactors, () => SelectedRML != null); - AddSegmentCommand = new RelayCommand(AddSegment, () => ActiveJob != null); - RemoveSegmentCommand = new RelayCommand(RemoveSelectedSegments, () => SelectedSegment != null); - AddJobCommand = new RelayCommand(AddJob, () => SelectedMachine != null); - RemoveJobCommand = new RelayCommand(RemoveSelectedJobs, () => SelectedMachineJob != null); - AddBrushStopCommand = new RelayCommand(AddBrushStop, () => SelectedSegment != null); - RemoveBrushStopCommand = new RelayCommand(RemoveSelectedBrushStops, () => SelectedBrushStop != null); - SaveJobCommand = new RelayCommand(SaveActiveJob, () => SelectedMachine != null); - DiscardJobCommand = new RelayCommand(BackToJobs, () => SelectedMachine != null); - StartJobCommand = new RelayCommand(StartJob, () => ActiveJob != null && !IsJobRunning && MachineOperator != null && !MachineOperator.MachineEventsStateProvider.Events.ToList().Exists(x => x.ActionTypes.Contains(BL.Enumerations.ActionTypes.PreventJobExecution))); + SaveLiquidFactorsCommand = new RelayCommand(SaveLiquidFactors, () => SelectedRML != null && CanWork); + AddSegmentCommand = new RelayCommand(AddSegment, () => ActiveJob != null && CanWork); + RemoveSegmentCommand = new RelayCommand(RemoveSelectedSegments, () => SelectedSegment != null && CanWork); + AddJobCommand = new RelayCommand(AddJob, () => SelectedMachine != null && CanWork); + RemoveJobCommand = new RelayCommand(RemoveSelectedJobs, () => SelectedMachineJob != null && CanWork); + AddBrushStopCommand = new RelayCommand(AddBrushStop, () => SelectedSegment != null && CanWork); + RemoveBrushStopCommand = new RelayCommand(RemoveSelectedBrushStops, () => SelectedBrushStop != null && CanWork); + SaveJobCommand = new RelayCommand(SaveActiveJob, () => SelectedMachine != null && CanWork); + DiscardJobCommand = new RelayCommand(BackToJobs, () => SelectedMachine != null && CanWork); + StartJobCommand = new RelayCommand(StartJob, () => ActiveJob != null && CanWork && !IsJobRunning && MachineOperator != null && !MachineOperator.MachineEventsStateProvider.Events.ToList().Exists(x => x.ActionTypes.Contains(BL.Enumerations.ActionTypes.PreventJobExecution))); StartJobAndRecordCommand = new RelayCommand(StartJobAndRecord, () => _dataCaptureVM != null && !_dataCaptureVM.Recorder.IsRecording && !_dataCaptureVM.Player.IsPlaying && ActiveJob != null && !IsJobRunning && MachineOperator != null && !MachineOperator.MachineEventsStateProvider.Events.ToList().Exists(x => x.ActionTypes.Contains(BL.Enumerations.ActionTypes.PreventJobExecution))); - StopJobCommand = new RelayCommand(StopJob, () => IsJobRunning); + StopJobCommand = new RelayCommand(StopJob, () => IsJobRunning && CanWork); CloseJobCompletionStatusCommand = new RelayCommand(CloseJobCompletionStatusBar); - LoadJobCommand = new RelayCommand(LoadSelectedJob, () => SelectedMachineJob != null); - DuplicateJobCommand = new RelayCommand(DuplicateSelectedJobs, () => SelectedMachineJob != null); - DuplicateSegmentCommand = new RelayCommand(DuplicateSelectedSegments, () => SelectedSegment != null); - DuplicateBrushStopCommand = new RelayCommand(DuplicateSelectedBrushStops, () => SelectedBrushStop != null); - SaveProcessParametersCommand = new RelayCommand(SaveProcessParameters, () => SelectedRML != null && SelectedRML.ProcessParametersTablesGroups.Count > 0); - PushProcessParametersCommand = new RelayCommand(PushProcessParameters, () => SelectedRML != null && SelectedRML.ProcessParametersTablesGroups.Count > 0 && SelectedProcessParametersTable != null && MachineOperator != null); - ImportEmbroideryFileCommand = new RelayCommand(ImportEmbroideryFile, () => SelectedMachine != null); - DisplayJobEmbroideryFileCommand = new RelayCommand<Job>(DisplayJobEmbroideryFile); - ReloadMachinesCommand = new RelayCommand(ReloadMachine); + LoadJobCommand = new RelayCommand(LoadSelectedJob, () => SelectedMachineJob != null && CanWork); + DuplicateJobCommand = new RelayCommand(DuplicateSelectedJobs, () => SelectedMachineJob != null && CanWork); + DuplicateSegmentCommand = new RelayCommand(DuplicateSelectedSegments, () => SelectedSegment != null && CanWork); + DuplicateBrushStopCommand = new RelayCommand(DuplicateSelectedBrushStops, () => SelectedBrushStop != null && CanWork); + SaveProcessParametersCommand = new RelayCommand(SaveProcessParameters, () => SelectedRML != null && CanWork && SelectedRML.ProcessParametersTablesGroups.Count > 0); + PushProcessParametersCommand = new RelayCommand(PushProcessParameters, () => SelectedRML != null && CanWork && SelectedRML.ProcessParametersTablesGroups.Count > 0 && SelectedProcessParametersTable != null && MachineOperator != null); + ImportEmbroideryFileCommand = new RelayCommand(ImportEmbroideryFile, () => SelectedMachine != null && CanWork); + DisplayJobEmbroideryFileCommand = new RelayCommand<Job>(DisplayJobEmbroideryFile, () => CanWork); + ReloadMachinesCommand = new RelayCommand(() => LoadMachine(), () => CanWork && SelectedMachine != null); ApplicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; _eventLogger.NewLog += _eventLogger_NewLog; + + MachinesProvider = new SuggestionProvider((filter) => + { + try + { + return _machineDbContext.Machines.Where(x => x.SerialNumber.StartsWith(filter)).ToList(); + } + catch + { + return null; + } + }); + } + + #endregion + + #region Application Ready + + public override void OnApplicationReady() + { + _settings = SettingsManager.Default.GetOrCreate<DeveloperModuleSettings>(); + + SelectedJobs = new ObservableCollection<Job>(); + JobEvents = new ObservableCollection<MachinesEvent>(); + + LogManager.Log("Initializing machine Db context..."); + _machineDbContext = ObservablesContext.CreateDefault(); + + if (_settings.LastSelectedMachineGuid != null) + { + LogManager.Log("Setting last selected machine from settings..."); + SelectedMachine = _machineDbContext.Machines.SingleOrDefault(x => x.Guid == _settings.LastSelectedMachineGuid); + } + + if (_settings.LastSelectedJobGuid != null && SelectedMachine != null) + { + LogManager.Log("Setting last selected job from settings..."); + SelectedMachineJob = SelectedMachine.Jobs.SingleOrDefault(x => x.Guid == _settings.LastSelectedJobGuid); + } + _colorConversionThread = new Thread(ColorConversionThreadMethod); _colorConversionThread.IsBackground = true; _colorConversionThread.Start(); @@ -723,37 +754,42 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Color Conversion + [HandleProcessCorruptedStateExceptions] private void ColorConversionThreadMethod() { while (true) { - if (IsVisible && ActiveJob != null && ActiveJob.Segments != null) + if (!_disable_gamut_check && IsVisible && ActiveJob != null && ActiveJob.Segments != null) { - var stops = ActiveJob.Segments.SelectMany(x => x.BrushStops).ToList(); - - foreach (var stop in stops) + try { - if (stop.ColorSpace.Code == BL.Enumerations.ColorSpaces.Volume.ToInt32() && !stop.IsLiquidVolumesOutOfRange) + var stops = ActiveJob.Segments.SelectMany(x => x.BrushStops).ToList(); + + foreach (var stop in stops) { - try + if (stop.ColorSpace.Code == BL.Enumerations.ColorSpaces.Volume.ToInt32() && !stop.IsLiquidVolumesOutOfRange) { - var output = TangoColorConverter.GetSuggestions(stop); + try + { + var output = TangoColorConverter.GetSuggestions(stop); - stop.Red = output.SingleCoordinates.Red; - stop.Green = output.SingleCoordinates.Green; - stop.Blue = output.SingleCoordinates.Blue; + stop.Red = output.SingleCoordinates.Red; + stop.Green = output.SingleCoordinates.Green; + stop.Blue = output.SingleCoordinates.Blue; + } + catch { } } - catch { } - } - else if (stop.ColorSpace.Code == BL.Enumerations.ColorSpaces.RGB.ToInt32() && !stop.Corrected) - { - try + else if (stop.ColorSpace.Code == BL.Enumerations.ColorSpaces.RGB.ToInt32() && !stop.Corrected) { - stop.IsOutOfGamut = TangoColorConverter.IsOutOfGamut(stop); + try + { + stop.IsOutOfGamut = TangoColorConverter.IsOutOfGamut(stop); + } + catch { } } - catch { } } } + catch { } } Thread.Sleep(500); @@ -950,9 +986,12 @@ namespace Tango.MachineStudio.Developer.ViewModels if (RmlProcessParametersTableGroup != null && RmlProcessParametersTableGroup.ProcessParametersTables.Count > 0) { LogManager.Log("Process parameters group changed..."); - SelectedProcessParametersTable = RmlProcessParametersTableGroup.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault(); - UpdateEstimatedDuration(); + InvokeUI(() => + { + SelectedProcessParametersTable = RmlProcessParametersTableGroup.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault(); + UpdateEstimatedDuration(); + }); } } @@ -992,9 +1031,7 @@ namespace Tango.MachineStudio.Developer.ViewModels if (SelectedMachine != null) { LogManager.Log(String.Format("Machine {0} changed.", SelectedMachine.SerialNumber)); - ReloadMachine(); - JobsCollectionView = CollectionViewSource.GetDefaultView(SelectedMachine.Jobs); - JobsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Job.LastUpdated), ListSortDirection.Descending)); + LoadMachine(); } } @@ -1018,19 +1055,6 @@ namespace Tango.MachineStudio.Developer.ViewModels }; } - /// <summary> - /// Called when the active job has changed. - /// </summary> - protected virtual void OnActiveJobChanged() - { - if (ActiveJob != null) - { - LogManager.Log(String.Format("Active job {0} changed.", ActiveJob.Name)); - SegmentsCollectionView = CollectionViewSource.GetDefaultView(ActiveJob.Segments); - SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending)); - } - } - #endregion #region Drag & Drop @@ -1297,12 +1321,21 @@ namespace Tango.MachineStudio.Developer.ViewModels { if (SelectedRML != null) { + CanWork = false; + using (_notification.PushTaskItem("Saving Liquid Factors...")) { LogManager.Log(String.Format("Saving liquid factors for RML {0}...", SelectedRML.Name)); await SelectedRML.SaveAsync(_activeJobDbContext); - InvalidateLiquidFactorsAndProcessTables(); + LiquidTypesRmls = ActiveJob.Machine.Configuration.NoneEmptyIdsPacks.Where(x => !x.IsEmpty).OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); + + if (SelectedSegment != null) + { + SetSegmentBrushStopsLiquidVolumes(SelectedSegment); + } } + + CanWork = true; } } @@ -1312,7 +1345,6 @@ namespace Tango.MachineStudio.Developer.ViewModels private void EditRML() { LogManager.Log(String.Format("Requesting DB module for RML {0} editing...", SelectedRML.Name)); - ApplicationManager.RequestModule("Data Base", SelectedRML); } /// <summary> @@ -1323,7 +1355,10 @@ namespace Tango.MachineStudio.Developer.ViewModels if (SelectedRML != null && SelectedMachine != null) { LogManager.Log("Invalidating liquid factors, process parameters and process group history..."); - LiquidTypesRmls = SelectedMachine.Configuration.NoneEmptyIdsPacks.Where(x => !x.IsEmpty).OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); + LiquidTypesRmls = ActiveJob.Machine.Configuration.NoneEmptyIdsPacks.Where(x => !x.IsEmpty).OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); + + _activeJobDbContext.ProcessParametersTablesGroups.Where(x => x.RmlGuid == SelectedRML.Guid).Include(x => x.ProcessParametersTables).ToList(); + RmlProcessParametersTableGroup = SelectedRML.ProcessParametersTablesGroups.ToList().SingleOrDefault(x => x.Active); var selectedHistory = RmlProcessParametersTableGroup; @@ -1334,11 +1369,26 @@ namespace Tango.MachineStudio.Developer.ViewModels RmlProcessParametersTableGroup.ProcessParametersTables = RmlProcessParametersTableGroup.ProcessParametersTables.OrderBy(x => x.TableIndex).ToObservableCollection(); } - GroupsHistory = SelectedRML.ProcessParametersTablesGroups.OrderByDescending(x => x.SaveDate).OrderBy(x => !x.Active).ToObservableCollection(); + GroupsHistory = SelectedRML.ProcessParametersTablesGroups.OrderByDescending(x => x.SaveDate).OrderBy(x => !x.Active).ToObservableCollection(); _selectedGroupHistory = selectedHistory; - RaisePropertyChangedAuto(nameof(SelectedGroupHistory)); + InvokeUI(() => + { + RaisePropertyChanged(nameof(SelectedGroupHistory)); + RaisePropertyChanged(nameof(RmlProcessParametersTableGroup)); + }); + } + } + + private async void OnSelectedRMLChanged() + { + using (_notification.PushTaskItem("Loading RML...")) + { + await Task.Factory.StartNew(() => + { + InvalidateLiquidFactorsAndProcessTables(); + }); } } @@ -1375,6 +1425,8 @@ namespace Tango.MachineStudio.Developer.ViewModels if (response == null) return; + CanWork = false; + using (_notification.PushTaskItem("Saving Parameters Group...")) { LogManager.Log(String.Format("Saving process parameters group under the name {0}...", response)); @@ -1408,6 +1460,8 @@ namespace Tango.MachineStudio.Developer.ViewModels InvalidateLiquidFactorsAndProcessTables(); } + + CanWork = true; } #endregion @@ -1417,84 +1471,138 @@ namespace Tango.MachineStudio.Developer.ViewModels /// <summary> /// Loads the selected job. /// </summary> - private void LoadSelectedJob() + private async void LoadSelectedJob() { if (SelectedMachineJob != null) { + CanWork = false; + using (_notification.PushTaskItem("Loading job details...")) { - LogManager.Log(String.Format("Loading job {0}...", SelectedMachineJob.Name)); - SelectedSegments = new ObservableCollection<Segment>(); - SelectedBrushStops = new ObservableCollection<BrushStop>(); - SelectedRML = null; - SelectedSegment = null; - SelectedGroupHistory = null; - SelectedBrushStop = null; - SelectedProcessParametersTable = null; - RmlProcessParametersTableGroup = null; + await Task.Factory.StartNew(() => + { + _disable_gamut_check = true; + LogManager.Log(String.Format("Loading job {0}...", SelectedMachineJob.Name)); + SelectedSegments = new ObservableCollection<Segment>(); + SelectedBrushStops = new ObservableCollection<BrushStop>(); + SelectedRML = null; + SelectedSegment = null; + SelectedGroupHistory = null; + SelectedBrushStop = null; + SelectedProcessParametersTable = null; + RmlProcessParametersTableGroup = null; - _blockInvalidateCommands = false; + _blockInvalidateCommands = false; - LogManager.Log("Creating active job DB context..."); - _activeJobDbContext = ObservablesContext.CreateDefault(); - _activeJobDbContext.Configuration.LazyLoadingEnabled = true; + LogManager.Log("Creating active job DB context..."); + _activeJobDbContext = ObservablesContext.CreateDefault(); - LogManager.Log("Initializing available color spaces, RMLs & Winding methods..."); - var processParamsGroups = _activeJobDbContext.ProcessParametersTablesGroups.ToList(); - var processParams = _activeJobDbContext.ProcessParametersTables.ToList(); - ColorSpaces = _activeJobDbContext.ColorSpaces.ToObservableCollection(); - Rmls = _activeJobDbContext.Rmls.ToObservableCollection(); - WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection(); - SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection(); + LogManager.Log("Initializing available color spaces, RMLs & Winding methods..."); + //var processParamsGroups = _activeJobDbContext.ProcessParametersTablesGroups.ToList(); + //var processParams = _activeJobDbContext.ProcessParametersTables.ToList(); - LogManager.Log("Setting active job..."); - _activeJob = _activeJobDbContext.Jobs.SingleOrDefault(x => x.Guid == SelectedMachineJob.Guid); + ColorSpaces = _activeJobDbContext.ColorSpaces.ToObservableCollection(); + Rmls = _activeJobDbContext.Rmls.ToObservableCollection(); + WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection(); + SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection(); - _selectedRML = ActiveJob.Rml; + LogManager.Log("Setting active job..."); + ActiveJob = _activeJobDbContext.Jobs.Include(x => x.Rml).Include(x => x.Segments).Include(x => x.Segments.Select(y => y.BrushStops)).SingleOrDefault(x => x.Guid == SelectedMachineJob.Guid); - LogManager.Log("Setting selected segment..."); - _selectedSegment = ActiveJob.Segments.FirstOrDefault(); + _activeJobDbContext.Ccts.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); + _activeJobDbContext.Cats.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); + _activeJobDbContext.Machines.SingleOrDefault(x => x.Guid == ActiveJob.MachineGuid); + _activeJobDbContext.Configurations.SingleOrDefault(x => x.Guid == ActiveJob.Machine.ConfigurationGuid); - ActiveJob.LengthChanged -= ActiveJob_LengthChanged; - ActiveJob.LengthChanged += ActiveJob_LengthChanged; + _activeJobDbContext.LiquidTypesRmls.ToList(); - ActiveJob = _activeJob; + _activeJobDbContext.IdsPackFormulas.ToList(); + _activeJobDbContext.LiquidTypes.ToList(); + _activeJobDbContext.MidTankTypes.ToList(); + _activeJobDbContext.DispenserTypes.ToList(); - SelectedRML = _selectedRML; - SelectedSegment = _selectedSegment; + _activeJobDbContext.IdsPacks.Where(x => x.ConfigurationGuid == ActiveJob.Machine.ConfigurationGuid).ToList(); - UpdateEstimatedDuration(); - _blockInvalidateCommands = false; - InvalidateRelayCommands(); + + LogManager.Log("Setting selected segment..."); + _selectedSegment = ActiveJob.Segments.FirstOrDefault(); + + ActiveJob.LengthChanged -= ActiveJob_LengthChanged; + ActiveJob.LengthChanged += ActiveJob_LengthChanged; + + _selectedRML = ActiveJob.Rml; + InvalidateLiquidFactorsAndProcessTables(); + RaisePropertyChanged(nameof(SelectedRML)); + + UpdateEstimatedDuration(); + + _blockInvalidateCommands = false; + InvalidateRelayCommands(); + + _disable_gamut_check = false; + }); + + SegmentsCollectionView = CollectionViewSource.GetDefaultView(ActiveJob.Segments); + SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending)); + + SelectedSegment = _selectedSegment; UIHelper.DoEvents(); _navigation.NavigateTo(DeveloperNavigationView.JobView); - } + + CanWork = true; } } /// <summary> /// Saves the active job. /// </summary> - private void SaveActiveJob() + private async void SaveActiveJob() { if (ActiveJob != null) { + CanWork = false; + using (_notification.PushTaskItem("Saving job details...")) { - LogManager.Log(String.Format("Saving the active job {0}...", ActiveJob.Name)); - ActiveJob.LastUpdated = DateTime.UtcNow; - ActiveJob.Rml = SelectedRML; - ActiveJob.EstimatedDurationMili = (int)EstimatedDuration.TotalMilliseconds; + await Task.Factory.StartNew(() => + { + LogManager.Log(String.Format("Saving the active job {0}...", ActiveJob.Name)); + ActiveJob.LastUpdated = DateTime.UtcNow; + ActiveJob.Rml = SelectedRML; + ActiveJob.EstimatedDurationMili = (int)EstimatedDuration.TotalMilliseconds; + _activeJobDbContext.SaveChanges(); + + _machineDbContext.Entry(SelectedMachineJob).Reload(); + + + _machineDbContext.Entry(SelectedMachineJob).Collection(x => x.Segments).Load(); + + foreach (var segment in SelectedMachineJob.Segments.ToList()) + { + _machineDbContext.Entry(segment).Collection(x => x.BrushStops).Load(); - _activeJobDbContext.SaveChanges(); - ReloadMachine(); - SelectedMachineJob = SelectedMachine.Jobs.SingleOrDefault(x => x.Guid == ActiveJob.Guid); + foreach (var brushStop in segment.BrushStops.ToList()) + { + _machineDbContext.Entry(brushStop).Reload(); + } + + _machineDbContext.Entry(segment).Reload(); + } + + InvokeUI(() => + { + SelectedMachineJob.Segments = SelectedMachineJob.Segments; + }); + + }); } + + CanWork = true; } } @@ -1527,19 +1635,51 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Private Methods - private void ReloadMachine() + private async void LoadMachine() { - LogManager.Log("Reloading selected machine..."); - _machineDbContext.Dispose(); - _machineDbContext = ObservablesContext.CreateDefault(); - _machineDbContext.Configuration.LazyLoadingEnabled = true; - String machineGuid = _selectedMachine.Guid; - Machines = _machineDbContext.Machines.ToObservableCollection(); - _selectedMachine = Machines.SingleOrDefault(x => x.Guid == machineGuid); - RaisePropertyChanged(nameof(SelectedMachine)); + try + { + LogManager.Log("Loading selected machine..."); + + CanWork = false; + + using (_notification.PushTaskItem("Loading selected machine...")) + { + await _machineDbContext.Jobs.Where(x => x.MachineGuid == SelectedMachine.Guid).Include(x => x.User).Include(x => x.User.Contact).LoadAsync(); + await _machineDbContext.Configurations.SingleOrDefaultAsync(x => x.Guid == SelectedMachine.ConfigurationGuid); + + await _machineDbContext.ColorSpaces.LoadAsync(); + + SelectedMachine.Configuration.IdsPacks.EnableCrossThreadOperations(); + + await _machineDbContext.IdsPacks.OrderBy(x => x.PackIndex).Where(x => x.ConfigurationGuid == SelectedMachine.ConfigurationGuid). + Include(x => x.CartridgeType). + Include(x => x.DispenserType). + Include(x => x.LiquidType). + Include(x => x.IdsPackFormula). + Include(x => x.MidTankType).LoadAsync(); + + RaisePropertyChanged(nameof(SelectedMachine)); + + JobsCollectionView = CollectionViewSource.GetDefaultView(SelectedMachine.Jobs); + JobsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Job.LastUpdated), ListSortDirection.Descending)); + } - JobsCollectionView = CollectionViewSource.GetDefaultView(SelectedMachine.Jobs); - JobsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Job.LastUpdated), ListSortDirection.Descending)); + CanWork = true; + + foreach (var job in SelectedMachine.Jobs.OrderByDescending(x => x.LastUpdated)) + { + if (!CanWork) break; + job.Segments.EnableCrossThreadOperations(); + await _machineDbContext.Segments.Where(x => x.JobGuid == job.Guid).Include(x => x.BrushStops).OrderBy(x => x.SegmentIndex).LoadAsync(); + } + } + catch (Exception ex) + { + LogManager.Log(ex); + _notification.ShowError("An error occurred while trying to load the selected machine."); + CanWork = true; + } } private void UpdateEstimatedDuration() @@ -1557,7 +1697,7 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Setting segment brush stops liquid volumes..."); foreach (var stop in segment.BrushStops) { - stop.SetLiquidVolumes(SelectedMachine.Configuration, SelectedRML, SelectedProcessParametersTable); + stop.SetLiquidVolumes(ActiveJob.Machine.Configuration, SelectedRML, SelectedProcessParametersTable); } } } @@ -1568,7 +1708,6 @@ namespace Tango.MachineStudio.Developer.ViewModels private void EditMachine() { LogManager.Log(String.Format("Requesting machine designer module for machine {0} editing...", SelectedMachine.SerialNumber)); - ApplicationManager.RequestModule("Machine Designer", SelectedMachine); } #endregion @@ -1713,14 +1852,15 @@ namespace Tango.MachineStudio.Developer.ViewModels newJob.Rml = _machineDbContext.Rmls.FirstOrDefault(); newJob.WindingMethod = _machineDbContext.WindingMethods.FirstOrDefault(); newJob.SpoolType = _machineDbContext.SpoolTypes.FirstOrDefault(); + newJob.ColorSpace = _machineDbContext.ColorSpaces.FirstOrDefault(); newJob.Machine = SelectedMachine; SelectedMachine.Jobs.Add(newJob); + newJob.AddSolidSegment(); LogManager.Log("Saving selected machine to database..."); await SelectedMachine.SaveAsync(_machineDbContext); SelectedMachineJob = newJob; LoadSelectedJob(); - AddSegment(); } } } @@ -1769,7 +1909,7 @@ namespace Tango.MachineStudio.Developer.ViewModels stop.OffsetPercent = 100; stop.Segment = SelectedSegment; - stop.ColorSpace = _activeJobDbContext.ColorSpaces.FirstOrDefault(); + stop.ColorSpace = ColorSpaces.FirstOrDefault(); stop.Color = Colors.Black; stop.SetLiquidVolumes(SelectedMachine.Configuration, SelectedRML, SelectedProcessParametersTable); SelectedSegment.BrushStops.Add(stop); @@ -1821,6 +1961,8 @@ namespace Tango.MachineStudio.Developer.ViewModels { using (_notification.PushTaskItem("Cloning selected jobs...")) { + CanWork = false; + LogManager.LogFormat("Duplicating {0} jobs...", SelectedJobs.Count); int index = SelectedMachine.Jobs.Max(x => x.JobIndex); @@ -1834,6 +1976,8 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Saving selected machine to database..."); await SelectedMachine.SaveAsync(_machineDbContext); + + CanWork = true; } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml index 1b96b27ce..016718075 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml @@ -11,11 +11,9 @@ xmlns:hive="clr-namespace:Tango.Hive;assembly=Tango.Hive" xmlns:automation="clr-namespace:Tango.MachineStudio.Common.Automation;assembly=Tango.MachineStudio.Common" xmlns:sys="clr-namespace:System;assembly=mscorlib" - xmlns:techViews="clr-namespace:Tango.MachineStudio.Technician.Views;assembly=Tango.MachineStudio.Technician" xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker" xmlns:dispensing="clr-namespace:Tango.BL.Dispensing;assembly=Tango.BL" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" - xmlns:db="clr-namespace:Tango.MachineStudio.DB.Views.DBViews;assembly=Tango.MachineStudio.DB" xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:designer="clr-namespace:Tango.MachineStudio.MachineDesigner.Views;assembly=Tango.MachineStudio.MachineDesigner" @@ -1495,9 +1493,9 @@ </Grid> </Grid> </Expander> - <Expander Header="CONTROL PARAMETERS" IsExpanded="False" Background="#8EFFFFFF"> + <!--<Expander Header="CONTROL PARAMETERS" IsExpanded="False" Background="#8EFFFFFF"> - </Expander> + </Expander>--> </StackPanel> </ScrollViewer> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs index bb17a502d..2942d36af 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/JobView.xaml.cs @@ -64,7 +64,7 @@ namespace Tango.MachineStudio.Developer.Views if (_vm != null && _vm.ActiveJob != null) { List<Segment> segments = new List<Segment>(); - foreach (var s in _vm.ActiveJob.Segments) + foreach (var s in _vm.ActiveJob.Segments.OrderBy(x => x.SegmentIndex)) { segments.Add(s); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml index c151b62bc..279a9daf3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MachineJobSelectionView.xaml @@ -6,6 +6,7 @@ xmlns:global="clr-namespace:Tango.MachineStudio.Developer" xmlns:designer="clr-namespace:Tango.MachineStudio.MachineDesigner.Views;assembly=Tango.MachineStudio.MachineDesigner" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:automation="clr-namespace:Tango.MachineStudio.Common.Automation;assembly=Tango.MachineStudio.Common" xmlns:localConverters="clr-namespace:Tango.MachineStudio.Developer.Converters" xmlns:vm="clr-namespace:Tango.MachineStudio.Developer.ViewModels" @@ -13,6 +14,7 @@ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:commonControls="clr-namespace:Tango.MachineStudio.Common.Controls;assembly=Tango.MachineStudio.Common" xmlns:local="clr-namespace:Tango.MachineStudio.Developer.Views" mc:Ignorable="d" x:Name="control" d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> @@ -23,6 +25,7 @@ <localConverters:MillisecondsToTimeSpanConverter x:Key="MillisecondsToTimeSpanConverter" /> <converters:GreaterThanToBooleanConverter x:Key="GreaterThanToBooleanConverter" /> <converters:MathOperatorConverter x:Key="MathOperatorConverter" /> + <converters:BooleanInverseConverter x:Key="BooleanInverseConverter" /> </UserControl.Resources> <Grid> @@ -36,20 +39,20 @@ <StackPanel> <TextBlock Margin="40 20" FontSize="30" FontWeight="SemiBold" FontStyle="Italic">TARGET MACHINE</TextBlock> - <DockPanel Margin="40 0 40 0"> + <DockPanel Margin="40 0 40 0" IsEnabled="{Binding CanWork}"> <Button Command="{Binding ReloadMachinesCommand}" DockPanel.Dock="Right" ToolTip="Reload" Foreground="#404040" Margin="20 0 0 0" Padding="0" Width="40" Height="Auto" Style="{StaticResource MaterialDesignFlatButton}"> <materialDesign:PackIcon Kind="Refresh" Width="24" Height="24" /> </Button> - <ComboBox ItemsSource="{Binding Machines}" FontSize="20" SelectedItem="{Binding SelectedMachine}" materialDesign:HintAssist.Hint="Serial Number"> - <ComboBox.ItemTemplate> + <autoComplete:AutoCompleteTextBox Provider="{Binding MachinesProvider}" LoadingContent="Loading..." FontSize="20" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}" materialDesign:HintAssist.Hint="Serial Number" DisplayMember="SerialNumber"> + <autoComplete:AutoCompleteTextBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding SerialNumber}" FontWeight="Bold" FontStyle="Italic"></TextBlock> <TextBlock FontSize="11" Text="{Binding Name}" Foreground="Gray"></TextBlock> </StackPanel> </DataTemplate> - </ComboBox.ItemTemplate> - </ComboBox> + </autoComplete:AutoCompleteTextBox.ItemTemplate> + </autoComplete:AutoCompleteTextBox> </DockPanel> <designer:MachineView Width="600" IsHitTestVisible="False" Margin="0 40 0 0" DataContext="{Binding SelectedMachine}" /> <Button Command="{Binding EditMachineCommand}" HorizontalAlignment="Right" Margin="0 10 20 20" Style="{StaticResource MaterialDesignFlatButton}"> @@ -127,141 +130,139 @@ </Grid> <Grid Margin="0 20 0 0"> - <controls:MultiSelectDataGrid MouseDoubleClick="MultiSelectDataGrid_MouseDoubleClick" AutomationProperties.AutomationId="{x:Static automation:Developer.JobsDataGrid}" Style="{StaticResource {x:Type DataGrid}}" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="True" CanUserSortColumns="True" AutoGenerateColumns="False" Background="Transparent" ItemsSource="{Binding JobsCollectionView}" SelectedItem="{Binding SelectedMachineJob}" SelectedItemsList="{Binding SelectedJobs,Mode=TwoWay}"> - <DataGrid.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> - </Style> - </DataGrid.CellStyle> - <DataGrid.Columns> - <DataGridTemplateColumn> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate DataType="{x:Type observables:Job}"> - <ContentControl> - <ContentControl.Style> - <Style TargetType="ContentControl"> - <Setter Property="Content"> - <Setter.Value> - <Image Source="../Images/rgb.png" Width="40" Margin="5"></Image> - </Setter.Value> - </Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding HasEmbroideryFile}" Value="True"> - <Setter Property="Content"> - <Setter.Value> - <Button ToolTip="Press to display the attached embroidery file information" Style="{StaticResource emptyButton}" Cursor="Hand" Command="{Binding DataContext.DisplayJobEmbroideryFileCommand, Source={x:Reference control}}" CommandParameter="{Binding}"> - <Image Source="../Images/job-emb.png" Width="40" Margin="5"></Image> - </Button> - </Setter.Value> - </Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </ContentControl.Style> - </ContentControl> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="NAME" CanUserSort="True" SortMemberPath="Name"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock Text="{Binding Name}" VerticalAlignment="Center" FontSize="14"></TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="CREATION DATE" Width="150" CanUserSort="True" SortMemberPath="CreationDate"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock Text="{Binding CreationDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" FontSize="14"></TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="LAST MODIFIED" Width="150" CanUserSort="True" SortMemberPath="LastUpdated"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" FontSize="14"></TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="LAST RUN" Width="150" CanUserSort="True" SortMemberPath="LastRun"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock Text="{Binding LastRun,Converter={StaticResource DateTimeUTCToShortDateTimeConverter},FallbackValue='Never',TargetNullValue='Never'}" VerticalAlignment="Center" FontSize="14"></TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="USER" Width="100" CanUserSort="True" SortMemberPath="User"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock Text="{Binding User.Contact.FirstName}" VerticalAlignment="Center" FontSize="14"></TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="LENGTH" Width="100" CanUserSort="True" SortMemberPath="Length"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock VerticalAlignment="Center" FontSize="14"> - <Run Text="{Binding Length,Mode=OneWay,StringFormat=N2}"></Run> - <Run Text="m" Foreground="Gray"></Run> - </TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Header="DURATION" Width="100" CanUserSort="True" SortMemberPath="EstimatedDurationMili"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <TextBlock VerticalAlignment="Center" FontSize="14"> - <Run Text="{Binding EstimatedDurationMili,Converter={StaticResource MillisecondsToTimeSpanConverter},Mode=OneWay,StringFormat=hh\\:mm\\:ss,TargetNullValue='Unknown'}"></Run> - </TextBlock> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - <DataGridTemplateColumn Width="1*" Header="SEGMENTS" CanUserSort="True" SortMemberPath="Segments.Count"> - <DataGridTemplateColumn.CellTemplate> - <DataTemplate> - <StackPanel Orientation="Horizontal"> - <ItemsControl HorizontalAlignment="Right" ItemsSource="{Binding Segments}"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" MaxWidth="110"> - - </StackPanel> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <Border Width="25" Height="25" Margin="10 0 0 0" BorderThickness="1" BorderBrush="DimGray" CornerRadius="3"> - <Border.Background> - <MultiBinding Converter="{StaticResource SegmentToBrushConverterMulti}"> - <Binding Path="."></Binding> - </MultiBinding> - </Border.Background> - </Border> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> - <StackPanel Orientation="Horizontal" Margin="0 0 0 0" VerticalAlignment="Center"> - <StackPanel.Style> - <Style TargetType="StackPanel"> - <Setter Property="Visibility" Value="Collapsed"></Setter> + <commonControls:LoadingPanel IsLoading="{Binding CanWork,Converter={StaticResource BooleanInverseConverter}}"> + <controls:MultiSelectDataGrid MouseDoubleClick="MultiSelectDataGrid_MouseDoubleClick" AutomationProperties.AutomationId="{x:Static automation:Developer.JobsDataGrid}" Style="{StaticResource {x:Type DataGrid}}" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="True" CanUserSortColumns="True" AutoGenerateColumns="False" Background="Transparent" ItemsSource="{Binding JobsCollectionView}" SelectedItem="{Binding SelectedMachineJob}" SelectedItemsList="{Binding SelectedJobs,Mode=TwoWay}"> + <DataGrid.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> + </Style> + </DataGrid.CellStyle> + <DataGrid.Columns> + <DataGridTemplateColumn> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate DataType="{x:Type observables:Job}"> + <ContentControl> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="Content"> + <Setter.Value> + <Image Source="../Images/rgb.png" Width="40" Margin="5"></Image> + </Setter.Value> + </Setter> <Style.Triggers> - <DataTrigger Binding="{Binding Segments.Count,Converter={StaticResource GreaterThanToBooleanConverter},ConverterParameter=3}" Value="True"> - <Setter Property="Visibility" Value="Visible"></Setter> + <DataTrigger Binding="{Binding HasEmbroideryFile}" Value="True"> + <Setter Property="Content"> + <Setter.Value> + <Button ToolTip="Press to display the attached embroidery file information" Style="{StaticResource emptyButton}" Cursor="Hand" Command="{Binding DataContext.DisplayJobEmbroideryFileCommand, Source={x:Reference control}}" CommandParameter="{Binding}"> + <Image Source="../Images/job-emb.png" Width="40" Margin="5"></Image> + </Button> + </Setter.Value> + </Setter> </DataTrigger> </Style.Triggers> </Style> - </StackPanel.Style> - <materialDesign:PackIcon Kind="Plus" Width="18" Height="18" VerticalAlignment="Center" /> - <TextBlock Margin="0 -3 0 0" Text="{Binding Segments.Count,Converter={StaticResource MathOperatorConverter},ConverterParameter='-3'}" FontSize="16" VerticalAlignment="Center" FontWeight="SemiBold" FontStyle="Italic"></TextBlock> + </ContentControl.Style> + </ContentControl> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="NAME" CanUserSort="True" SortMemberPath="Name"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding Name}" VerticalAlignment="Center" FontSize="14"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="CREATION DATE" Width="150" CanUserSort="True" SortMemberPath="CreationDate"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding CreationDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" FontSize="14"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="LAST MODIFIED" Width="150" CanUserSort="True" SortMemberPath="LastUpdated"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" VerticalAlignment="Center" FontSize="14"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="LAST RUN" Width="150" CanUserSort="True" SortMemberPath="LastRun"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding LastRun,Converter={StaticResource DateTimeUTCToShortDateTimeConverter},FallbackValue='Never',TargetNullValue='Never'}" VerticalAlignment="Center" FontSize="14"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="USER" Width="100" CanUserSort="True" SortMemberPath="User"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding User.Contact.FirstName}" VerticalAlignment="Center" FontSize="14"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="LENGTH" Width="100" CanUserSort="True" SortMemberPath="Length"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock VerticalAlignment="Center" FontSize="14"> + <Run Text="{Binding Length,Mode=OneWay,StringFormat=N2}"></Run> + <Run Text="m" Foreground="Gray"></Run> + </TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Header="DURATION" Width="100" CanUserSort="True" SortMemberPath="EstimatedDurationMili"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock VerticalAlignment="Center" FontSize="14"> + <Run Text="{Binding EstimatedDurationMili,Converter={StaticResource MillisecondsToTimeSpanConverter},Mode=OneWay,StringFormat=hh\\:mm\\:ss,TargetNullValue='Unknown'}"></Run> + </TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTemplateColumn Width="1*" Header="SEGMENTS" CanUserSort="True" SortMemberPath="Segments.Count"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <StackPanel Orientation="Horizontal"> + <ItemsControl HorizontalAlignment="Right" ItemsSource="{Binding Segments}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" MaxWidth="110"> + + </StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border Width="25" Height="25" Margin="10 0 0 0" BorderThickness="1" BorderBrush="DimGray" CornerRadius="3" Background="{Binding SegmentBrush}"> + + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + <StackPanel Orientation="Horizontal" Margin="0 0 0 0" VerticalAlignment="Center"> + <StackPanel.Style> + <Style TargetType="StackPanel"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Segments.Count,Converter={StaticResource GreaterThanToBooleanConverter},ConverterParameter=3}" Value="True"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </StackPanel.Style> + <materialDesign:PackIcon Kind="Plus" Width="18" Height="18" VerticalAlignment="Center" /> + <TextBlock Margin="0 -3 0 0" Text="{Binding Segments.Count,Converter={StaticResource MathOperatorConverter},ConverterParameter='-3'}" FontSize="16" VerticalAlignment="Center" FontWeight="SemiBold" FontStyle="Italic"></TextBlock> + </StackPanel> </StackPanel> - </StackPanel> - </DataTemplate> - </DataGridTemplateColumn.CellTemplate> - </DataGridTemplateColumn> - </DataGrid.Columns> - </controls:MultiSelectDataGrid> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + </DataGrid.Columns> + </controls:MultiSelectDataGrid> + </commonControls:LoadingPanel> </Grid> </DockPanel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml index a7348d869..68cd65ad4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/MainView.xaml @@ -575,7 +575,7 @@ <Grid Grid.Row="1"> - <controls:NavigationControl x:Name="TransitionControl" TransitionType="Slide" KeepElementsAttached="True"> + <controls:NavigationControl x:Name="NavigationControl" TransitionType="Slide" KeepElementsAttached="True"> <local:MachineJobSelectionView controls:NavigationControl.NavigationName="MachineJobSelectionView" /> <local:JobView controls:NavigationControl.NavigationName="JobView" /> <local:RunningJobView controls:NavigationControl.NavigationName="RunningJobView" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/app.config index 77b7003e2..0e58ccf54 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/app.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/app.config @@ -50,6 +50,10 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Properties/AssemblyInfo.cs index 54e27ec27..6807ed5c8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Hardware Designer Module")] -[assembly: AssemblyVersion("2.0.8.1633")] +[assembly: AssemblyVersion("2.0.10.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj index 89942c6d6..efa7a669c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.HardwareDesigner</RootNamespace> <AssemblyName>Tango.MachineStudio.HardwareDesigner</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs index 3dd4e62a3..6ba28cb72 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs @@ -11,118 +11,15 @@ using Tango.SharedUI; using Tango.BL; using Tango.SharedUI.Components; using System.Runtime.CompilerServices; +using Tango.MachineStudio.Common; namespace Tango.MachineStudio.HardwareDesigner.ViewModels { - public class MainViewVM : ViewModel + public class MainViewVM : StudioViewModel { private INotificationProvider _notification; private bool _isNew; - - private ObservablesEntitiesAdapter _adapter; - public ObservablesEntitiesAdapter Adapter - { - get { return _adapter; } - set { _adapter = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareMotorType> _motorTypes; - public SelectedObjectCollection<HardwareMotorType> MotorTypes - { - get { return _motorTypes; } - set { _motorTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareMotorType> _selectedMotorTypes; - public ObservableCollection<HardwareMotorType> SelectedMotorTypes - { - get { return _selectedMotorTypes; } - set { _selectedMotorTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareDancerType> _dancerTypes; - public SelectedObjectCollection<HardwareDancerType> DancerTypes - { - get { return _dancerTypes; } - set { _dancerTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareDancerType> _selectedDancerTypes; - public ObservableCollection<HardwareDancerType> SelectedDancerTypes - { - get { return _selectedDancerTypes; } - set { _selectedDancerTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwarePidControlType> _pidControlTypes; - public SelectedObjectCollection<HardwarePidControlType> PidControlTypes - { - get { return _pidControlTypes; } - set { _pidControlTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwarePidControlType> _selectedPidControlTypes; - public ObservableCollection<HardwarePidControlType> SelectedPidControlTypes - { - get { return _selectedPidControlTypes; } - set { _selectedPidControlTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareWinderType> _winderTypes; - public SelectedObjectCollection<HardwareWinderType> WinderTypes - { - get { return _winderTypes; } - set { _winderTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareWinderType> _selectedWinderTypes; - public ObservableCollection<HardwareWinderType> SelectedWinderTypes - { - get { return _selectedWinderTypes; } - set { _selectedWinderTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareSpeedSensorType> _speedSensorTypes; - public SelectedObjectCollection<HardwareSpeedSensorType> SpeedSensorTypes - { - get { return _speedSensorTypes; } - set { _speedSensorTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareSpeedSensorType> _selectedSpeedSensorTypes; - public ObservableCollection<HardwareSpeedSensorType> SelectedSpeedSensorTypes - { - get { return _selectedSpeedSensorTypes; } - set { _selectedSpeedSensorTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareBlowerType> _blowerTypes; - public SelectedObjectCollection<HardwareBlowerType> BlowerTypes - { - get { return _blowerTypes; } - set { _blowerTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareBlowerType> _selectedBlowerTypes; - public ObservableCollection<HardwareBlowerType> SelectedBlowerTypes - { - get { return _selectedBlowerTypes; } - set { _selectedBlowerTypes = value; RaisePropertyChangedAuto(); } - } - - private SelectedObjectCollection<HardwareBreakSensorType> _breakSensorTypes; - public SelectedObjectCollection<HardwareBreakSensorType> BreakSensorTypes - { - get { return _breakSensorTypes; } - set { _breakSensorTypes = value; RaisePropertyChangedAuto(); } - } - - private ObservableCollection<HardwareBreakSensorType> _selectedBreakSensorTypes; - public ObservableCollection<HardwareBreakSensorType> SelectedBreakSensorTypes - { - get { return _selectedBreakSensorTypes; } - set { _selectedBreakSensorTypes = value; RaisePropertyChangedAuto(); } - } + private ObservablesContext _db; private HardwareVersion _selectedVersion; public HardwareVersion SelectedVersion @@ -144,25 +41,16 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels get { return _selectedHardwareObject; } set { - _selectedHardwareObject = null; - RaisePropertyChangedAuto(); _selectedHardwareObject = value; RaisePropertyChangedAuto(); } } - private Object _selectedHardwareObjectType; - public Object SelectedHardwareObjectType + private ObservableCollection<HardwareVersion> _hardwareVersions; + public ObservableCollection<HardwareVersion> HardwareVersions { - get { return _selectedHardwareObjectType; } - set - { - _selectedHardwareObjectType = null; - RaisePropertyChangedAuto(); - _selectedHardwareObjectType = value; - RaisePropertyChangedAuto(); - OnSelectedHardwareObjectTypeChanged(); - } + get { return _hardwareVersions; } + set { _hardwareVersions = value; RaisePropertyChangedAuto(); } } public RelayCommand SaveCommand { get; set; } @@ -179,429 +67,242 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels { _notification = notification; - Adapter = ObservablesEntitiesAdapter.Instance; - SaveCommand = new RelayCommand(Save, () => SelectedVersion != null); - NewCommand = new RelayCommand(New); - DeleteCommand = new RelayCommand(Delete, () => !_isNew && SelectedVersion != null); + CurrentVersion = new HardwareVersion(); + + SaveCommand = new RelayCommand(Save, () => SelectedVersion != null && IsFree); + NewCommand = new RelayCommand(New, () => IsFree); + DeleteCommand = new RelayCommand(Delete, () => !_isNew && SelectedVersion != null && IsFree); CurrentVersion = new HardwareVersion(); - CreateTemplate(CurrentVersion); - CopyParametersCommand = new RelayCommand(CopyParameters, (x) => SelectedVersion != null && SelectedHardwareObjectType != null); - CloneCommand = new RelayCommand(CloneCurrentVersion, () => SelectedVersion != null); + CopyParametersCommand = new RelayCommand(CopyParameters, (x) => SelectedVersion != null && IsFree); + CloneCommand = new RelayCommand(CloneCurrentVersion, () => SelectedVersion != null && IsFree); + } + + public override void OnApplicationReady() + { + Task.Factory.StartNew(() => + { + RefreshVersions(); + CreateDefaultView(); + }); } private void CopyParameters(object obj) { - IObservableEntity source = obj.GetType().GetProperty("Data").GetValue(obj) as IObservableEntity; - IObservableEntity target = null; + obj.MapPrimitivesTo(SelectedHardwareObject, + (prop) => + !prop.PropertyType.IsEnum + && + !prop.Name.ToLower().Contains("guid")); + } - if (source is HardwareMotorType) - { - target = CurrentVersion.HardwareMotors.SingleOrDefault(x => x.HardwareMotorType == source); - } - else if (source is HardwareDancerType) - { - target = CurrentVersion.HardwareDancers.SingleOrDefault(x => x.HardwareDancerType == source); - } - else if (source is HardwarePidControlType) - { - target = CurrentVersion.HardwarePidControls.SingleOrDefault(x => x.HardwarePidControlType == source); - } - else if (source is HardwareWinderType) - { - target = CurrentVersion.HardwareWinders.SingleOrDefault(x => x.HardwareWinderType == source); - } - else if (source is HardwareSpeedSensorType) - { - target = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == source); - } - else if (source is HardwareBlowerType) - { - target = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == source); - } - else if (source is HardwareBreakSensorType) - { - target = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == source); - } + private void CreateDefaultView() + { + if (_db != null) _db.Dispose(); - target.MapPrimitivesTo(SelectedHardwareObject); + _db = ObservablesContext.CreateDefault(); + + CurrentVersion.HardwareMotors = _db.HardwareMotorTypes.ToList().Select(x => new HardwareMotor() { HardwareMotorType = x }).ToObservableCollection(); + CurrentVersion.HardwareDancers = _db.HardwareDancerTypes.ToList().Select(x => new HardwareDancer() { HardwareDancerType = x }).ToObservableCollection(); + CurrentVersion.HardwarePidControls = _db.HardwarePidControlTypes.ToList().Select(x => new HardwarePidControl() { HardwarePidControlType = x }).ToObservableCollection(); + CurrentVersion.HardwareWinders = _db.HardwareWinderTypes.ToList().Select(x => new HardwareWinder() { HardwareWinderType = x }).ToObservableCollection(); + CurrentVersion.HardwareSpeedSensors = _db.HardwareSpeedSensorTypes.ToList().Select(x => new HardwareSpeedSensor() { HardwareSpeedSensorType = x }).ToObservableCollection(); + CurrentVersion.HardwareBlowers = _db.HardwareBlowerTypes.ToList().Select(x => new HardwareBlower() { HardwareBlowerType = x }).ToObservableCollection(); + CurrentVersion.HardwareBreakSensors = _db.HardwareBreakSensorTypes.ToList().Select(x => new HardwareBreakSensor() { HardwareBreakSensorType = x }).ToObservableCollection(); } - private void OnSelectedHardwareObjectTypeChanged() + private void RefreshVersions() { - if (SelectedHardwareObjectType != null) + using (var db = ObservablesContext.CreateDefault()) { - if (SelectedHardwareObjectType is SelectedObject<HardwareMotorType>) + _hardwareVersions = db.HardwareVersions.ToObservableCollection(); + InvokeUI(() => { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareMotorType>).Data; - var hardwareObj = CurrentVersion.HardwareMotors.SingleOrDefault(x => x.HardwareMotorType == type); + RaisePropertyChanged(nameof(HardwareVersions)); + }); + } + } - if (hardwareObj != null) - { - SelectedHardwareObject = hardwareObj; - } - else - { - hardwareObj = new HardwareMotor() { HardwareMotorType = type }; - CurrentVersion.HardwareMotors.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwareDancerType>) - { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareDancerType>).Data; - var hardwareObj = CurrentVersion.HardwareDancers.SingleOrDefault(x => x.HardwareDancerType == type); + private void CreateVersionView(HardwareVersion selectedVersion) + { + if (_db != null) _db.Dispose(); - if (hardwareObj != null) - { - SelectedHardwareObject = hardwareObj; - } - else - { - hardwareObj = new HardwareDancer() { HardwareDancerType = type }; - CurrentVersion.HardwareDancers.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwarePidControlType>) - { - var type = (SelectedHardwareObjectType as SelectedObject<HardwarePidControlType>).Data; - var hardwareObj = CurrentVersion.HardwarePidControls.SingleOrDefault(x => x.HardwarePidControlType == type); + _db = ObservablesContext.CreateDefault(); - if (hardwareObj != null) - { - SelectedHardwareObject = hardwareObj; - } - else - { - hardwareObj = new HardwarePidControl() { HardwarePidControlType = type }; - CurrentVersion.HardwarePidControls.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwareWinderType>) - { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareWinderType>).Data; - var hardwareObj = CurrentVersion.HardwareWinders.SingleOrDefault(x => x.HardwareWinderType == type); + CurrentVersion = _db.Adapter.GetHardwareVersion(x => x.Guid == selectedVersion.Guid); - if (hardwareObj != null) - { - SelectedHardwareObject = hardwareObj; - } - else - { - hardwareObj = new HardwareWinder() { HardwareWinderType = type }; - CurrentVersion.HardwareWinders.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwareSpeedSensorType>) - { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareSpeedSensorType>).Data; - var hardwareObj = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == type); - if (hardwareObj != null) - { - SelectedHardwareObject = hardwareObj; - } - else - { - hardwareObj = new HardwareSpeedSensor() { HardwareSpeedSensorType = type }; - CurrentVersion.HardwareSpeedSensors.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwareBlowerType>) + InvokeUINow(() => + { + ObservablesStaticCollections.Instance.HardwareMotorTypes.Where(x => !CurrentVersion.HardwareMotors.ToList().Exists(y => y.HardwareMotorType.Code == x.Code)).ToList().ForEach(x => { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareBlowerType>).Data; - var hardwareObj = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type); + CurrentVersion.HardwareMotors.Add(new HardwareMotor() + { + HardwareMotorType = _db.HardwareMotorTypes.SingleOrDefault(y => y.Code == x.Code), + }); + }); - if (hardwareObj != null) + CurrentVersion.HardwareMotors = CurrentVersion.HardwareMotors.OrderBy(x => x.HardwareMotorType.Code).ToObservableCollection(); + + ObservablesStaticCollections.Instance.HardwareDancerTypes.Where(x => !CurrentVersion.HardwareDancers.ToList().Exists(y => y.HardwareDancerType.Code == x.Code)).ToList().ForEach(x => + { + CurrentVersion.HardwareDancers.Add(new HardwareDancer() { - SelectedHardwareObject = hardwareObj; - } - else + HardwareDancerType = _db.HardwareDancerTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); + + CurrentVersion.HardwareDancers = CurrentVersion.HardwareDancers.OrderBy(x => x.HardwareDancerType.Code).ToObservableCollection(); + + ObservablesStaticCollections.Instance.HardwarePidControlTypes.Where(x => !CurrentVersion.HardwarePidControls.ToList().Exists(y => y.HardwarePidControlType.Code == x.Code)).ToList().ForEach(x => + { + CurrentVersion.HardwarePidControls.Add(new HardwarePidControl() { - hardwareObj = new HardwareBlower() { HardwareBlowerType = type }; - CurrentVersion.HardwareBlowers.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - else if (SelectedHardwareObjectType is SelectedObject<HardwareBreakSensorType>) + HardwarePidControlType = _db.HardwarePidControlTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); + + CurrentVersion.HardwarePidControls = CurrentVersion.HardwarePidControls.OrderBy(x => x.HardwarePidControlType.Code).ToObservableCollection(); + + ObservablesStaticCollections.Instance.HardwareWinderTypes.Where(x => !CurrentVersion.HardwareWinders.ToList().Exists(y => y.HardwareWinderType.Code == x.Code)).ToList().ForEach(x => { - var type = (SelectedHardwareObjectType as SelectedObject<HardwareBreakSensorType>).Data; - var hardwareObj = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type); + CurrentVersion.HardwareWinders.Add(new HardwareWinder() + { + HardwareWinderType = _db.HardwareWinderTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); + + CurrentVersion.HardwareWinders = CurrentVersion.HardwareWinders.OrderBy(x => x.HardwareWinderType.Code).ToObservableCollection(); - if (hardwareObj != null) + ObservablesStaticCollections.Instance.HardwareSpeedSensorTypes.Where(x => !CurrentVersion.HardwareSpeedSensors.ToList().Exists(y => y.HardwareSpeedSensorType.Code == x.Code)).ToList().ForEach(x => + { + CurrentVersion.HardwareSpeedSensors.Add(new HardwareSpeedSensor() { - SelectedHardwareObject = hardwareObj; - } - else + HardwareSpeedSensorType = _db.HardwareSpeedSensorTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); + + CurrentVersion.HardwareSpeedSensors = CurrentVersion.HardwareSpeedSensors.OrderBy(x => x.HardwareSpeedSensorType.Code).ToObservableCollection(); + + ObservablesStaticCollections.Instance.HardwareBlowerTypes.Where(x => !CurrentVersion.HardwareBlowers.ToList().Exists(y => y.HardwareBlowerType.Code == x.Code)).ToList().ForEach(x => + { + CurrentVersion.HardwareBlowers.Add(new HardwareBlower() { - hardwareObj = new HardwareBreakSensor() { HardwareBreakSensorType = type }; - CurrentVersion.HardwareBreakSensors.Add(hardwareObj); - SelectedHardwareObject = hardwareObj; - } - } - } - } + HardwareBlowerType = _db.HardwareBlowerTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); - private void CreateTemplate(HardwareVersion version) - { - if (version == null) - { - SelectedMotorTypes = new ObservableCollection<HardwareMotorType>(); - SelectedDancerTypes = new ObservableCollection<HardwareDancerType>(); - SelectedPidControlTypes = new ObservableCollection<HardwarePidControlType>(); - SelectedWinderTypes = new ObservableCollection<HardwareWinderType>(); - SelectedSpeedSensorTypes = new ObservableCollection<HardwareSpeedSensorType>(); - SelectedBlowerTypes = new ObservableCollection<HardwareBlowerType>(); - SelectedBreakSensorTypes = new ObservableCollection<HardwareBreakSensorType>(); - } - else - { - SelectedMotorTypes = version.HardwareMotors.Select(x => x.HardwareMotorType).ToObservableCollection(); - SelectedDancerTypes = version.HardwareDancers.Select(x => x.HardwareDancerType).ToObservableCollection(); - SelectedPidControlTypes = version.HardwarePidControls.Select(x => x.HardwarePidControlType).ToObservableCollection(); - SelectedWinderTypes = version.HardwareWinders.Select(x => x.HardwareWinderType).ToObservableCollection(); - SelectedSpeedSensorTypes = version.HardwareSpeedSensors.Select(x => x.HardwareSpeedSensorType).ToObservableCollection(); - SelectedBlowerTypes = version.HardwareBlowers.Select(x => x.HardwareBlowerType).ToObservableCollection(); - SelectedBreakSensorTypes = version.HardwareBreakSensors.Select(x => x.HardwareBreakSensorType).ToObservableCollection(); - } + CurrentVersion.HardwareBlowers = CurrentVersion.HardwareBlowers.OrderBy(x => x.HardwareBlowerType.Code).ToObservableCollection(); + + ObservablesStaticCollections.Instance.HardwareBreakSensorTypes.Where(x => !CurrentVersion.HardwareBreakSensors.ToList().Exists(y => y.HardwareBreakSensorType.Code == x.Code)).ToList().ForEach(x => + { + CurrentVersion.HardwareBreakSensors.Add(new HardwareBreakSensor() + { + HardwareBreakSensorType = _db.HardwareBreakSensorTypes.SingleOrDefault(y => y.Code == x.Code) + }); + }); - MotorTypes = new SelectedObjectCollection<HardwareMotorType>(Adapter.HardwareMotorTypes, SelectedMotorTypes); - DancerTypes = new SelectedObjectCollection<HardwareDancerType>(Adapter.HardwareDancerTypes, SelectedDancerTypes); - PidControlTypes = new SelectedObjectCollection<HardwarePidControlType>(Adapter.HardwarePidControlTypes, SelectedPidControlTypes); - WinderTypes = new SelectedObjectCollection<HardwareWinderType>(Adapter.HardwareWinderTypes, SelectedWinderTypes); - SpeedSensorTypes = new SelectedObjectCollection<HardwareSpeedSensorType>(Adapter.HardwareSpeedSensorTypes, SelectedSpeedSensorTypes); - BlowerTypes = new SelectedObjectCollection<HardwareBlowerType>(Adapter.HardwareBlowerTypes, SelectedBlowerTypes); - BreakSensorTypes = new SelectedObjectCollection<HardwareBreakSensorType>(Adapter.HardwareBreakSensorTypes, SelectedBreakSensorTypes); + CurrentVersion.HardwareBreakSensors = CurrentVersion.HardwareBreakSensors.OrderBy(x => x.HardwareBreakSensorType.Code).ToObservableCollection(); + }); } - private void OnSelectedVersionChanged() + private async void OnSelectedVersionChanged() { if (SelectedVersion != null) { - _isNew = false; - CurrentVersion = SelectedVersion.Clone(); - CreateTemplate(CurrentVersion); - } + using (_notification.PushTaskItem("Loading hardware version...")) + { + IsFree = false; - InvalidateRelayCommands(); - } + await Task.Factory.StartNew(() => + { + _isNew = false; + var selectedVersion = SelectedVersion; + RefreshVersions(); + var version = _hardwareVersions.SingleOrDefault(X => X.Guid == selectedVersion.Guid); + CreateVersionView(SelectedVersion); - private bool CheckCurrentVersionNull() - { - if (CurrentVersion == null) - { - _notification.ShowInfo("Please select a hardware version before attempting to insert any components."); - return true; + InvokeUI(() => + { + _selectedVersion = version; + RaisePropertyChanged(nameof(SelectedVersion)); + }); + }); + + IsFree = true; + } } - return false; + InvalidateRelayCommands(); } - private void New() + private async void New() { String name = _notification.ShowTextInput("Enter hardware version name", "Name"); if (!String.IsNullOrWhiteSpace(name)) { - SelectedVersion = null; - CurrentVersion = new HardwareVersion(); - CurrentVersion.Version = Adapter.HardwareVersions.Max(x => x.Version) + 1; - CurrentVersion.Name = name; - CreateTemplate(CurrentVersion); - _isNew = true; - InvalidateRelayCommands(); - } - } - - private async void Save() - { - if (CurrentVersion != null) - { - using (_notification.PushTaskItem("Saving hardware version...")) + using (_notification.PushTaskItem("Creating new machine version...")) { + IsFree = false; + await Task.Factory.StartNew(() => { - HardwareVersion realVersion = null; - - if (_isNew) - { - realVersion = CurrentVersion.Clone(); + SelectedVersion = null; + CurrentVersion = new HardwareVersion(); + CurrentVersion.Version = HardwareVersions.Max(x => x.Version) + 1; + CurrentVersion.Name = name; + CreateDefaultView(); - realVersion.HardwareMotors.ToList().Where(x => !SelectedMotorTypes.Contains(x.HardwareMotorType)).ToList().ForEach(x => realVersion.HardwareMotors.Remove(x)); - realVersion.HardwareDancers.ToList().Where(x => !SelectedDancerTypes.Contains(x.HardwareDancerType)).ToList().ForEach(x => realVersion.HardwareDancers.Remove(x)); - realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x)); - realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x)); - realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x)); - realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x)); - realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x)); - } - else - { - realVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == SelectedVersion.Guid); - - realVersion.Version = CurrentVersion.Version; - realVersion.Name = CurrentVersion.Name; - - realVersion.HardwareDancers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwareMotors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwareWinders.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwareBlowers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); - realVersion.HardwareBreakSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); + _db.HardwareVersions.Add(CurrentVersion); + _db.SaveChanges(); - realVersion.HardwareDancers.Clear(); - realVersion.HardwareMotors.Clear(); - realVersion.HardwarePidControls.Clear(); - realVersion.HardwareWinders.Clear(); - realVersion.HardwareSpeedSensors.Clear(); - realVersion.HardwareBlowers.Clear(); - realVersion.HardwareBreakSensors.Clear(); - - foreach (var type in SelectedDancerTypes) - { - var item = CurrentVersion.HardwareDancers.SingleOrDefault(x => x.HardwareDancerType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareDancers.Add(item); - } - else - { - realVersion.HardwareDancers.Add(new HardwareDancer() - { - HardwareVersionGuid = realVersion.Guid, - HardwareDancerType = type - }); - } - } + RefreshVersions(); - foreach (var type in SelectedMotorTypes) - { - var item = CurrentVersion.HardwareMotors.SingleOrDefault(x => x.HardwareMotorType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareMotors.Add(item); - } - else - { - realVersion.HardwareMotors.Add(new HardwareMotor() - { - HardwareVersionGuid = realVersion.Guid, - HardwareMotorType = type - }); - } - } - - foreach (var type in SelectedPidControlTypes) - { - var item = CurrentVersion.HardwarePidControls.SingleOrDefault(x => x.HardwarePidControlType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwarePidControls.Add(item); - } - else - { - realVersion.HardwarePidControls.Add(new HardwarePidControl() - { - HardwareVersionGuid = realVersion.Guid, - HardwarePidControlType = type - }); - } - } - - foreach (var type in SelectedWinderTypes) - { - var item = CurrentVersion.HardwareWinders.SingleOrDefault(x => x.HardwareWinderType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareWinders.Add(item); - } - else - { - realVersion.HardwareWinders.Add(new HardwareWinder() - { - HardwareVersionGuid = realVersion.Guid, - HardwareWinderType = type - }); - } - } - - foreach (var type in SelectedSpeedSensorTypes) - { - var item = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareSpeedSensors.Add(item); - } - else - { - realVersion.HardwareSpeedSensors.Add(new HardwareSpeedSensor() - { - HardwareVersionGuid = realVersion.Guid, - HardwareSpeedSensorType = type - }); - } - } + InvokeUI(() => + { + _selectedVersion = HardwareVersions.SingleOrDefault(x => x.Guid == CurrentVersion.Guid); + RaisePropertyChanged(nameof(SelectedVersion)); + }); - foreach (var type in SelectedBlowerTypes) - { - var item = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareBlowers.Add(item); - } - else - { - realVersion.HardwareBlowers.Add(new HardwareBlower() - { - HardwareVersionGuid = realVersion.Guid, - HardwareBlowerType = type - }); - } - } + _isNew = true; + InvalidateRelayCommands(); + }); - foreach (var type in SelectedBreakSensorTypes) - { - var item = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type); - if (item != null) - { - item.HardwareVersionGuid = realVersion.Guid; - realVersion.HardwareBreakSensors.Add(item); - } - else - { - realVersion.HardwareBreakSensors.Add(new HardwareBreakSensor() - { - HardwareVersionGuid = realVersion.Guid, - HardwareBreakSensorType = type - }); - } - } - } + IsFree = true; + } + } + } + private async void Save() + { + using (_notification.PushTaskItem("Saving hardware version...")) + { + try + { + IsFree = false; + await Task.Factory.StartNew(() => + { + _db.SaveChanges(); + RefreshVersions(); - if (_isNew) + InvokeUI(() => { - Adapter.Context.HardwareVersions.Add(realVersion); - } - - realVersion.Save(Adapter.Context); - - SelectedVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == realVersion.Guid); + SelectedVersion = HardwareVersions.SingleOrDefault(x => x.Guid == CurrentVersion.Guid); + }); }); } + catch (Exception ex) + { + LogManager.Log(ex, "Could not save hardware version."); + _notification.ShowError($"An error occurred while trying to save this hardware version.\n{ex.Message}"); + } + finally + { + IsFree = true; + } } } @@ -615,55 +316,71 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels { using (_notification.PushTaskItem("Cloning hardware configuration...")) { - await Task.Factory.StartNew(() => + try { - var realVersion = CurrentVersion.Clone(); - realVersion.Name = name; - realVersion.Version = 1; - - realVersion.HardwareMotors.ToList().Where(x => !SelectedMotorTypes.Contains(x.HardwareMotorType)).ToList().ForEach(x => realVersion.HardwareMotors.Remove(x)); - realVersion.HardwareDancers.ToList().Where(x => !SelectedDancerTypes.Contains(x.HardwareDancerType)).ToList().ForEach(x => realVersion.HardwareDancers.Remove(x)); - realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x)); - realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x)); - realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x)); - realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x)); - realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x)); - - realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); - realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); + IsFree = false; - realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersion = realVersion); - realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersion = realVersion); - - Adapter.Context.HardwareVersions.Add(realVersion); - realVersion.Save(Adapter.Context); + await Task.Factory.StartNew(() => + { + var cloned = CurrentVersion.Clone(); + cloned.Name = name; + cloned.Version = HardwareVersions.Max(x => x.Version) + 1; + _db.HardwareVersions.Add(cloned); + _db.SaveChanges(); + RefreshVersions(); - SelectedVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == realVersion.Guid); - }); + InvokeUI(() => + { + SelectedVersion = HardwareVersions.SingleOrDefault(x => x.Guid == cloned.Guid); + }); + }); + } + catch (Exception ex) + { + LogManager.Log(ex, "Could not clone hardware version."); + _notification.ShowError($"An error occurred while trying to clone this hardware version.\n{ex.Message}"); + } + finally + { + IsFree = true; + } } } } + } - private void Delete() + private async void Delete() { if (_notification.ShowQuestion("Are you sure you want to delete this hardware version?")) { using (_notification.PushTaskItem("Deleting hardware version...")) { - SelectedVersion.DeleteAsync(Adapter.Context); - SelectedVersion = null; - CurrentVersion = null; + try + { + IsFree = false; + + await CurrentVersion.DeleteCascadeAsync(_db); + + await Task.Factory.StartNew(() => + { + SelectedVersion = null; + RefreshVersions(); + + CurrentVersion = new HardwareVersion(); + CreateDefaultView(); + InvalidateRelayCommands(); + }); + } + catch (Exception ex) + { + LogManager.Log(ex, "Could not delete hardware version."); + _notification.ShowError($"An error occurred while trying to delete this hardware version.\n{ex.Message}"); + } + finally + { + IsFree = true; + } } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml index 86e0da5b5..293b947f0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml @@ -14,7 +14,7 @@ xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:global="clr-namespace:Tango.MachineStudio.HardwareDesigner" mc:Ignorable="d" - d:DesignHeight="720" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + d:DesignHeight="2000" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> <UserControl.Resources> <converters:DoubleToIntConverter x:Key="DoubleToIntConverter" /> @@ -57,7 +57,7 @@ <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">HARDWARE DESIGNER</TextBlock> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10 10 0 0"> <materialDesign:PackIcon Kind="Pencil" Width="32" Height="32" Foreground="Silver" /> - <ComboBox ItemsSource="{Binding Adapter.HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="300" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version"> + <ComboBox IsEnabled="{Binding IsFree}" ItemsSource="{Binding HardwareVersions}" SelectedItem="{Binding SelectedVersion}" Width="300" FontSize="16" FontWeight="Bold" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Hardware Version"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock><Run Text="{Binding Name}"></Run> <Run></Run> <Run Foreground="Gray" FontSize="14">v</Run><Run Foreground="Gray" FontSize="14" Text="{Binding Version}"></Run></TextBlock> @@ -72,22 +72,22 @@ <Grid Grid.Row="1"> - <ScrollViewer VerticalScrollBarVisibility="Auto" Margin="50 20 0 0"> + <ScrollViewer VerticalScrollBarVisibility="Auto" Margin="50 20 0 0" IsEnabled="{Binding IsFree}"> <StackPanel> <StackPanel Orientation="Horizontal"> <Image VerticalAlignment="Center" Source="../Images/engine.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">MOTORS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding MotorTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareMotors}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareMotorType}"> + <DataTemplate DataType="{x:Type entities:HardwareMotor}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareMotorType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareMotor}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -104,8 +104,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareMotorType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -116,16 +116,16 @@ <Image VerticalAlignment="Center" Source="../Images/compass.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">DANCERS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding DancerTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareDancers}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareDancerType}"> + <DataTemplate DataType="{x:Type entities:HardwareDancer}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareDancerType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareDancer}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -142,8 +142,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareDancerType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -154,16 +154,16 @@ <Image VerticalAlignment="Center" Source="../Images/balance.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">PID CONTROLS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding PidControlTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwarePidControls}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwarePidControlType}"> + <DataTemplate DataType="{x:Type entities:HardwarePidControl}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwarePidControlType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwarePidControl}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -180,8 +180,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwarePidControlType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -192,16 +192,16 @@ <Image VerticalAlignment="Center" Source="../Images/thread.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">WINDERS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding WinderTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareWinders}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareWinderType}"> + <DataTemplate DataType="{x:Type entities:HardwareWinder}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareWinderType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareWinder}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -218,8 +218,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareWinderType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -230,16 +230,16 @@ <Image VerticalAlignment="Center" Source="../Images/speed.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">SPEED SENSORS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding SpeedSensorTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareSpeedSensors}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareSpeedSensorType}"> + <DataTemplate DataType="{x:Type entities:HardwareSpeedSensor}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareSpeedSensorType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareSpeedSensor}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -256,8 +256,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareSpeedSensorType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -268,16 +268,16 @@ <Image VerticalAlignment="Center" Source="../Images/blower.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">BLOWERS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding BlowerTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareBlowers}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareBlowerType}"> + <DataTemplate DataType="{x:Type entities:HardwareBlower}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareBlowerType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareBlower}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -294,8 +294,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareBlowerType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -306,16 +306,16 @@ <Image VerticalAlignment="Center" Source="../Images/break.png" Width="32"></Image> <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="18" FontWeight="SemiBold">BREAK SENSORS</TextBlock> </StackPanel> - <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding BreakSensorTypes}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObjectType}"> + <ListBox Style="{StaticResource typesList}" HorizontalContentAlignment="Stretch" ItemsSource="{Binding CurrentVersion.HardwareBreakSensors}" Margin="60 15" SelectedItem="{Binding SelectedHardwareObject}"> <ListBox.ItemTemplate> - <DataTemplate DataType="{x:Type entities:HardwareBreakSensorType}"> + <DataTemplate DataType="{x:Type entities:HardwareBreakSensor}"> <DockPanel> <Button DockPanel.Dock="Right" Cursor="Hand" Foreground="DimGray" Height="20" FontSize="10" ToolTip="Copy this item parameters to the selected item" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.CopyParametersCommand}" CommandParameter="{Binding}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}"> <Setter Property="Visibility" Value="Collapsed"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObjectType.Data.ObjectType.BaseType}" Value="{x:Type entities:HardwareBreakSensorType}"> + <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.SelectedHardwareObject.ObjectType.BaseType}" Value="{x:Type entities:HardwareBreakSensor}"> <Setter Property="Visibility" Value="Visible"></Setter> </DataTrigger> <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True"> @@ -332,8 +332,8 @@ </Button.Content> </Button> <StackPanel Orientation="Horizontal"> - <CheckBox VerticalAlignment="Center" IsChecked="{Binding IsSelected}"></CheckBox> - <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Description}"></TextBlock> + <CheckBox VerticalAlignment="Center" IsChecked="{Binding Active}"></CheckBox> + <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="{Binding HardwareBreakSensorType.Description}"></TextBlock> </StackPanel> </DockPanel> </DataTemplate> @@ -353,7 +353,7 @@ <RowDefinition Height="60"/> </Grid.RowDefinitions> - <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Margin="0 90 0 10"> + <ScrollViewer IsEnabled="{Binding IsFree}" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" Margin="0 90 0 10"> <Grid> <StackPanel> <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}" Padding="20 10"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/App.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/App.config index 2031d1be1..2031d386f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/App.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/App.config @@ -56,6 +56,10 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs index 8f69fb919..f0713376c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Logging Module")] -[assembly: AssemblyVersion("2.0.15.1633")] +[assembly: AssemblyVersion("2.0.17.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Tango.MachineStudio.Logging.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Tango.MachineStudio.Logging.csproj index f3318f275..f14bfade4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Tango.MachineStudio.Logging.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Tango.MachineStudio.Logging.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Logging</RootNamespace> <AssemblyName>Tango.MachineStudio.Logging</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs index 50caced63..68094d91f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/ViewModels/EventsViewVM.cs @@ -14,6 +14,7 @@ using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Logging.Navigation; using Tango.MachineStudio.Logging.Views; using Tango.SharedUI; +using System.Data.Entity; namespace Tango.MachineStudio.Logging.ViewModels { @@ -23,15 +24,22 @@ namespace Tango.MachineStudio.Logging.ViewModels private IStudioApplicationManager _application; private IEventLogger _eventLogger; private ObservableCollection<MachinesEvent> _realTimeEvents; - private Machine _connectedMachine; private LoggingNavigationManager _navigation; private bool _dialog_shown; + private ObservablesContext _db; + private List<MachinesEvent> _history_events; private Machine _selectedMachine; public Machine SelectedMachine { get { return _selectedMachine; } - set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); } + set + { + if (_selectedMachine != value) + { + _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); + } + } } private ObservableCollection<MachinesEvent> _events; @@ -76,7 +84,6 @@ namespace Tango.MachineStudio.Logging.ViewModels set { _maxDate = value; RaisePropertyChangedAuto(); } } - private bool _isRealTime; public bool IsRealTime { @@ -109,25 +116,11 @@ namespace Tango.MachineStudio.Logging.ViewModels _realTimeEvents = new ObservableCollection<MachinesEvent>(); _eventLogger.NewLog += _eventLogger_NewLog; - RegisterMessage<MachineConnectionChangedMessage>(OnMachineConnectionChanged); DisplayTimelineCommand = new RelayCommand<MachinesEvent>(DisplayTimeline); NavigateToEventsCommand = new RelayCommand(() => _navigation.NavigateTo(LoggingNavigationView.EventsView)); NavigateToHomeCommand = new RelayCommand(() => _navigation.NavigateTo(LoggingNavigationView.HomeView)); } - private void OnMachineConnectionChanged(MachineConnectionChangedMessage msg) - { - if (msg.Machine != null) - { - _connectedMachine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == msg.Machine.SerialNumber); - SelectedMachine = _connectedMachine; - } - else - { - _connectedMachine = null; - } - } - private void _eventLogger_NewLog(object sender, MachinesEvent machineEvent) { InvokeUI(() => @@ -136,29 +129,40 @@ namespace Tango.MachineStudio.Logging.ViewModels }); } - private void OnSelectedMachineChanged() + private async void OnSelectedMachineChanged() { if (SelectedMachine != null) { - Dates = new ObservableCollection<DateTime>(); - - if (SelectedMachine == _connectedMachine) + using (_notification.PushTaskItem("Loading machine events...")) { - IsRealTime = true; - } + await Task.Factory.StartNew(() => + { + _db = ObservablesContext.CreateDefault(); - foreach (var day in SelectedMachine.MachinesEvents.GroupBy(x => x.DateTime.DayOfYear).Select(x => x.First().DateTime).OrderByDescending(x => x)) - { - Dates.Add(day); - } + _db.EventTypes.Load(); + _db.EventTypesCategories.Load(); + _db.EventTypesGroups.Load(); - if (Dates.Count > 0) - { - MinDate = Dates.Min(); - MaxDate = Dates.Max(); - } + DateTime now = DateTime.UtcNow.AddMonths(-1); - SelectedDate = Dates.FirstOrDefault(); + _history_events = _db.MachinesEvents.Where(x => x.MachineGuid == SelectedMachine.Guid && x.DateTime > now).ToList(); + + Dates = new ObservableCollection<DateTime>(); + + foreach (var day in _history_events.GroupBy(x => x.DateTime.DayOfYear).Select(x => x.First().DateTime).OrderByDescending(x => x)) + { + Dates.Add(day); + } + + if (Dates.Count > 0) + { + MinDate = Dates.Min(); + MaxDate = Dates.Max(); + } + + SelectedDate = Dates.FirstOrDefault(); + }); + } } } @@ -170,9 +174,9 @@ namespace Tango.MachineStudio.Logging.ViewModels { Events = _realTimeEvents; } - else + else if (_history_events != null) { - Events = SelectedMachine.MachinesEvents.Where(x => x.DateTime.DayOfYear == SelectedDate.Date.DayOfYear).OrderByDescending(x => x.DateTime).ToObservableCollection(); + Events = _history_events.Where(x => x.DateTime.DayOfYear == SelectedDate.Date.DayOfYear).OrderByDescending(x => x.DateTime).ToObservableCollection(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachineVersionsProvider.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachineVersionsProvider.cs index 18cfca79d..75b4718cd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachineVersionsProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachineVersionsProvider.cs @@ -21,7 +21,7 @@ namespace Tango.MachineStudio.MachineDesigner.AutoComplete public IEnumerable GetSuggestions(string filter) { Text = filter; - return ObservablesEntitiesAdapter.Instance.MachineVersions.Where(x => x.Version.ToString().StartsWith(filter, StringComparison.CurrentCultureIgnoreCase) || x.Name.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase)).ToList(); + return ObservablesStaticCollections.Instance.MachineVersions.Where(x => x.Version.ToString().StartsWith(filter, StringComparison.CurrentCultureIgnoreCase) || x.Name.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase)).ToList(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachinesProvider.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachinesProvider.cs deleted file mode 100644 index 01b74e8a6..000000000 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/AutoComplete/MachinesProvider.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.AutoComplete.Editors; -using Tango.BL; -using Tango.BL.Entities; - -namespace Tango.MachineStudio.MachineDesigner.AutoComplete -{ - /// <summary> - /// Represents an auto-complete <see cref="Machine">Machines</see> provider. - /// </summary> - /// <seealso cref="Tango.AutoComplete.Editors.ISuggestionProvider" /> - public class MachinesProvider : ISuggestionProvider - { - /// <summary> - /// Gets the suggestions. - /// </summary> - /// <param name="filter">The filter.</param> - /// <returns></returns> - public IEnumerable GetSuggestions(string filter) - { - return ObservablesEntitiesAdapter.Instance.Machines.Where(x => x.SerialNumber.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase)).ToList(); - } - } -} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs index 832feca43..a5e99504c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Machine Designer Module")] -[assembly: AssemblyVersion("2.0.8.1633")] +[assembly: AssemblyVersion("2.0.10.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 0d6708246..a578d0e54 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.MachineDesigner</RootNamespace> <AssemblyName>Tango.MachineStudio.MachineDesigner</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -31,6 +31,12 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.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.0.0\lib\net45\EntityFramework.SqlServer.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> @@ -47,6 +53,7 @@ <HintPath>..\..\..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll</HintPath> </Reference> <Reference Include="System" /> + <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Data" /> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll</HintPath> @@ -68,7 +75,6 @@ <Compile Include="..\..\..\Versioning\GlobalVersionInfo.cs"> <Link>GlobalVersionInfo.cs</Link> </Compile> - <Compile Include="AutoComplete\MachinesProvider.cs" /> <Compile Include="AutoComplete\MachineVersionsProvider.cs" /> <Compile Include="ViewModelLocator.cs" /> <Compile Include="ViewModels\MachineVersionDialogVM.cs" /> @@ -114,7 +120,9 @@ <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> </EmbeddedResource> - <None Include="app.config" /> + <None Include="app.config"> + <SubType>Designer</SubType> + </None> <None Include="packages.config" /> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> @@ -224,7 +232,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs index 40358344d..b332ebc6b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineVersionDialogVM.cs @@ -14,7 +14,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { public class MachineVersionDialogVM : DialogViewVM { - public ObservablesEntitiesAdapter Adapter { get; set; } + public ObservablesStaticCollections Adapter { get; set; } public double Version { get; set; } @@ -46,7 +46,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public MachineVersionDialogVM() { - Adapter = ObservablesEntitiesAdapter.Instance; + Adapter = ObservablesStaticCollections.Instance; AcceptCommand = new RelayCommand(() => { Accept(); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 1f410d49c..de9a8de4a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -16,27 +16,39 @@ using SimpleValidator.Extensions; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Common; using Tango.BL; +using Tango.AutoComplete.Editors; +using System.Data.Entity; namespace Tango.MachineStudio.MachineDesigner.ViewModels { - public class MainViewVM : StudioViewModel<MachineDesignerModule> + public class MainViewVM : StudioViewModel { - private bool _isSaving; private INotificationProvider _notification; - + private ObservablesContext _db; + private Configuration _original_configuration; #region Properties - private ObservablesEntitiesAdapter _adapter; + private ObservablesStaticCollections _adapter; /// <summary> - /// Gets or sets the db adapter. + /// Gets or sets the db static adapter. /// </summary> - public ObservablesEntitiesAdapter Adapter + public ObservablesStaticCollections Adapter { get { return _adapter; } set { _adapter = value; RaisePropertyChangedAuto(); } } + private bool _canWork; + /// <summary> + /// Gets or sets a value indicating whether this instance can work. + /// </summary> + public bool CanWork + { + get { return _canWork; } + set { _canWork = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + private Machine _machine; /// <summary> /// Gets or sets the current editable machine. @@ -54,7 +66,13 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public Machine SelectedMachine { get { return _selectedMachine; } - set { _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); } + set + { + if (_selectedMachine != value) + { + _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); + } + } } private Configuration _configuration; @@ -107,6 +125,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } } + /// <summary> + /// Gets or sets the machines provider. + /// </summary> + public ISuggestionProvider MachinesProvider { get; set; } + #endregion #region Commands @@ -136,6 +159,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> public RelayCommand SetAsDefaultCommand { get; set; } + /// <summary> + /// Gets or sets the reset command. + /// </summary> + public RelayCommand ResetCommand { get; set; } + #endregion #region Constructors @@ -150,23 +178,81 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> public MainViewVM(INotificationProvider notification) { + CanWork = true; + _notification = notification; - Adapter = ObservablesEntitiesAdapter.Instance; Configuration = new Configuration(); Configuration.Name = "Untitled"; Machine = new Machine(); Machine.Configuration = Configuration; - SaveCommand = new RelayCommand(Save, (x) => !_isSaving); - AddIdsCommand = new RelayCommand(AddIds, (x) => !_isSaving && Configuration.IdsPacks.Count < 8); - RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => !_isSaving && SelectedIds != null); - SetVersionConfigurationCommand = new RelayCommand(SetVersionConfiguration, (x) => !_isSaving); - SetAsDefaultCommand = new RelayCommand(SetAsDefaultConfiguration, (x) => !_isSaving); + SaveCommand = new RelayCommand(Save, (x) => CanWork); + AddIdsCommand = new RelayCommand(AddIds, (x) => CanWork && Configuration.IdsPacks.Count < 8); + RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => CanWork && SelectedIds != null); + SetVersionConfigurationCommand = new RelayCommand(SetVersionConfiguration, (x) => CanWork); + SetAsDefaultCommand = new RelayCommand(SetAsDefaultConfiguration, (x) => CanWork); + ResetCommand = new RelayCommand(Reset, () => CanWork); + + MachinesProvider = new SuggestionProvider((filter) => + { + return _db.Machines.Where(x => x.SerialNumber.StartsWith(filter)).ToList(); + }); + } + + #endregion + + #region Application Ready + + public async override void OnApplicationReady() + { + await InitCollections(); } #endregion + private Task InitCollections() + { + return Task.Factory.StartNew(() => + { + CanWork = false; + + _db = ObservablesContext.CreateDefault(); + + Adapter = new ObservablesStaticCollections(); + Adapter.ApplicationDisplayPanelVersions = _db.ApplicationDisplayPanelVersions.ToObservableCollection(); + Adapter.ApplicationFirmwareVersions = _db.ApplicationFirmwareVersions.ToObservableCollection(); + Adapter.ApplicationOsVersions = _db.ApplicationOsVersions.ToObservableCollection(); + Adapter.EmbeddedFirmwareVersions = _db.EmbeddedFirmwareVersions.ToObservableCollection(); + Adapter.DispenserTypes = _db.DispenserTypes.ToObservableCollection(); + Adapter.LiquidTypes = _db.LiquidTypes.ToObservableCollection(); + Adapter.MidTankTypes = _db.MidTankTypes.ToObservableCollection(); + Adapter.CartridgeTypes = _db.CartridgeTypes.ToObservableCollection(); + Adapter.IdsPackFormulas = _db.IdsPackFormulas.ToObservableCollection(); + Adapter.HardwareVersions = _db.HardwareVersions.ToObservableCollection(); + Adapter.MachineVersions = _db.MachineVersions.ToObservableCollection(); + Adapter.Organizations = _db.Organizations.ToObservableCollection(); + + Adapter.InitCollectionSources(); + + CanWork = true; + }); + } + + private void Reset() + { + using (_notification.PushTaskItem("Resetting designer...")) + { + SelectedMachine = null; + Machine = new Machine(); + Configuration = new Configuration(); + History = new ObservableCollection<Configuration>(); + SelectedHistoryConfiguration = null; + Filter = String.Empty; + InitCollections(); + } + } + #region Virtual Methods /// <summary> @@ -176,9 +262,23 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { if (SelectedMachine != null) { - Machine = SelectedMachine.Clone(); - Configuration = Machine.Configuration.Clone(); - History = SelectedMachine.MachinesConfigurations.Select(x => x.Configuration).ToObservableCollection(); + CanWork = false; + + using (_notification.PushTaskItem("Loading machine configuration...")) + { + Task.Factory.StartNew(() => + { + InitCollections().Wait(); + Machine = _db.Machines.Where(x => x.Guid == SelectedMachine.Guid).Include(x => x.Organization).SingleOrDefault(x => x.Guid == SelectedMachine.Guid); + Configuration = _db.Adapter.GetConfiguration(x => x.Guid == Machine.ConfigurationGuid); + + SetHistory(); + + _original_configuration = Configuration.Clone(); + }); + } + + CanWork = true; } else { @@ -191,9 +291,21 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> protected virtual void OnHistoryConfigurationSelected() { - if (SelectedHistoryConfiguration != null) + if (SelectedHistoryConfiguration != null && CanWork) { - Configuration = SelectedHistoryConfiguration.Clone(); + using (_notification.PushTaskItem("Loading Configuration...")) + { + Task.Factory.StartNew(() => + { + CanWork = false; + + SelectedHistoryConfiguration = _db.Adapter.GetConfiguration(x => x.Guid == SelectedHistoryConfiguration.Guid); + Configuration = SelectedHistoryConfiguration; + Machine.Configuration = Configuration; + + CanWork = true; + }); + } } } @@ -202,8 +314,6 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> protected virtual void OnFilterChanged() { - - List<ICollectionView> collections = new List<ICollectionView>(); collections.Add(Adapter.ApplicationFirmwareVersionsViewSource); collections.Add(Adapter.ApplicationDisplayPanelVersionsViewSource); @@ -223,7 +333,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { String value = prop.GetValue(x).ToStringSafe(); - if (value != null) + if (value != null && Filter != null) { if (value.ToLower().Contains(Filter.ToLower())) { @@ -366,7 +476,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> private void RemoveIds() { - Configuration.IdsPacks.Remove(SelectedIds); + _db.IdsPacks.Remove(SelectedIds); SelectedIds = null; } @@ -375,7 +485,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> private void AddIds() { - Configuration.IdsPacks.Add(new IdsPack() { Configuration = Configuration }); + _db.IdsPacks.Add(new IdsPack() { Configuration = Configuration }); InvalidateRelayCommands(); } @@ -494,17 +604,17 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels //Validate - _isSaving = true; - InvalidateRelayCommands(); - try { + CanWork = false; + using (_notification.PushTaskItem("Saving Machine Configuration...")) { - if (!Adapter.Machines.ToList().Exists(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower())) + if (!_db.Machines.Any(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower())) { if (!_notification.ShowQuestion("The specified machine serial number does not exist. Do you wish to create a new machine?")) { + CanWork = true; return; } else @@ -512,53 +622,34 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels Machine.Configuration = Configuration; Configuration.CreationDate = DateTime.UtcNow; Machine.ProductionDate = DateTime.UtcNow; - Machine.MachinesConfigurations.Add(new MachinesConfiguration() + + _db.Machines.Add(Machine); + _db.MachinesConfigurations.Add(new MachinesConfiguration() { Configuration = Configuration, Machine = Machine, }); - await Machine.SaveAsync(Adapter.Context); - - Machine = Adapter.Machines.SingleOrDefault(x => x.Guid == Machine.Guid); - Configuration = Machine.Configuration.Clone(); } } else { - var machine = Adapter.Machines.Single(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower()); - - //Set 'Real machine' parameters... - - bool add_history = History.Count == 0 || History.First().Name != Configuration.Name; - - machine.Name = Machine.Name; - machine.SerialNumber = Machine.SerialNumber; - machine.Organization = Machine.Organization; - + bool add_history = History.Count == 0 || _original_configuration.Name != Configuration.Name; if (add_history) { - machine.MachinesConfigurations.Add(new MachinesConfiguration() + _db.Configurations.Add(_original_configuration); + + _db.MachinesConfigurations.Add(new MachinesConfiguration() { - Configuration = Configuration, - Machine = machine + Configuration = _original_configuration, + Machine = Machine }); } - else - { - machine.Configuration.DefferedDelete(Adapter.Context); - } - - machine.Configuration = Configuration; - - await machine.SaveAsync(Adapter.Context); - - Machine = Adapter.Machines.SingleOrDefault(x => x.Guid == machine.Guid); - Configuration = Machine.Configuration.Clone(); } - SetHistory(Machine); - Machine = Machine.Clone(); + await _db.SaveChangesAsync(); + OnSelectedMachineChanged(); + } } catch (Exception ex) @@ -567,7 +658,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } finally { - _isSaving = false; + CanWork = true; InvalidateRelayCommands(); } } @@ -576,20 +667,33 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// Sets the specified machine history. /// </summary> /// <param name="machine">The machine.</param> - private void SetHistory(Machine machine) + private void SetHistory() { - History = machine.MachinesConfigurations.Select(x => x.Configuration).ToObservableCollection(); - History.Insert(0, machine.Configuration); + History = _db.MachinesConfigurations.Where(x => x.MachineGuid == Machine.Guid).Select(x => x.Configuration).ToObservableCollection(); + //History.Insert(0, Machine.Configuration); } /// <summary> /// Sets the current configuration to the selected machine version default configuration. /// </summary> - private void SetVersionConfiguration() + private async void SetVersionConfiguration() { if (Machine.MachineVersion != null) { - Configuration = Machine.MachineVersion.DefaultConfiguration.Clone(); + using (_notification.PushTaskItem("Applying default configuration...")) + { + CanWork = false; + + await Task.Factory.StartNew(() => + { + var version = _db.MachineVersions.Where(x => x.Guid == Machine.MachineVersion.Guid).Include(x => x.DefaultConfiguration).FirstOrDefault(); + var version_config = _db.Adapter.GetConfiguration(x => x.Guid == version.DefaultConfiguration.Guid); + Configuration = version_config.Clone(); + Machine.Configuration = Configuration; + }); + + CanWork = true; + } } else { @@ -604,15 +708,23 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { _notification.ShowModalDialog<MachineVersionDialogVM>(async (vm) => { + CanWork = false; + try { using (_notification.PushTaskItem("Saving Default Configuration...")) { if (vm.SelectedVersion != null) { - vm.SelectedVersion.DefaultConfiguration = Configuration.Clone(); - vm.SelectedVersion.DefaultConfigurationGuid = vm.SelectedVersion.DefaultConfiguration.Guid; - await vm.SelectedVersion.SaveAsync(Adapter.Context); + var version = _db.MachineVersions.Where(x => x.Guid == vm.SelectedVersion.Guid).Include(x => x.DefaultConfiguration).SingleOrDefault(x => x.Guid == vm.SelectedVersion.Guid); + + _db.Configurations.Remove(version.DefaultConfiguration); + + var cloned = Configuration.Clone(); + _db.Configurations.Add(cloned); + version.DefaultConfiguration = cloned; + + await _db.SaveChangesAsync(); } else { @@ -620,9 +732,12 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels newVersion.Version = vm.Version; newVersion.Name = vm.VersionName; - newVersion.DefaultConfiguration = Configuration.Clone(); - newVersion.DefaultConfigurationGuid = newVersion.DefaultConfiguration.Guid; - await newVersion.SaveAsync(Adapter.Context); + var cloned = Configuration.Clone(); + + _db.Configurations.Add(cloned); + newVersion.DefaultConfiguration = cloned; + _db.MachineVersions.Add(newVersion); + await _db.SaveChangesAsync(); } } } @@ -630,6 +745,10 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { _notification.ShowError(ex.Message); } + finally + { + CanWork = true; + } }, () => { @@ -638,14 +757,5 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } #endregion - - #region IStudioModuleVM - - public override void OnModuleRequest(params object[] args) - { - SelectedMachine = Adapter.Machines.SingleOrDefault(x => x.Guid == (args[0] as Machine).Guid); - } - - #endregion } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml index 4d75651f7..e2dd7c5a9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml @@ -17,7 +17,6 @@ <UserControl.Resources> <sharedConverters:ColorToIntegerConverter x:Key="ColorToIntegerConverter" /> - <providers:MachinesProvider x:Key="MachinesProvider"></providers:MachinesProvider> <Style x:Key="draggableGrid" TargetType="Grid"> <Setter Property="RenderTransform"> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml index 4e3e31326..e12f85cdf 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml @@ -17,7 +17,6 @@ <UserControl.Resources> <sharedConverters:ColorToIntegerConverter x:Key="ColorToIntegerConverter" /> - <providers:MachinesProvider x:Key="MachinesProvider"></providers:MachinesProvider> <Style x:Key="draggableGrid" TargetType="Grid"> <Setter Property="RenderTransform"> @@ -89,7 +88,7 @@ <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">MACHINE DESIGNER</TextBlock> <StackPanel Orientation="Horizontal" Margin="20 10 0 0" VerticalAlignment="Center"> <materialDesign:PackIcon Kind="BarcodeScan" VerticalAlignment="Bottom" Width="24" Height="24" Foreground="Silver"></materialDesign:PackIcon> - <autoComplete:AutoCompleteTextBox FontSize="16" FontWeight="Bold" FontStyle="Italic" Width="300" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Enter serial number" DisplayMember="SerialNumber" Provider="{StaticResource ResourceKey=MachinesProvider}" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}"> + <autoComplete:AutoCompleteTextBox FontSize="16" FontWeight="Bold" FontStyle="Italic" Width="300" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Enter serial number" DisplayMember="SerialNumber" Provider="{Binding MachinesProvider}" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}"> <autoComplete:AutoCompleteTextBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding SerialNumber}"></TextBlock> @@ -99,6 +98,10 @@ <TextBlock Text="Loading..." Margin="5" FontSize="14" /> </autoComplete:AutoCompleteTextBox.LoadingContent> </autoComplete:AutoCompleteTextBox> + + <Button Style="{StaticResource MaterialDesignFlatButton}" Margin="10 0 0 0" Padding="0" Foreground="Gray" Width="40" Command="{Binding ResetCommand}" ToolTip="Reset the designer"> + <materialDesign:PackIcon Kind="Refresh" Width="24" Height="24" /> + </Button> </StackPanel> </StackPanel> </StackPanel> @@ -417,7 +420,7 @@ </Grid> </Grid> - <Grid Grid.Column="1"> + <Grid Grid.Column="1" IsEnabled="{Binding CanWork}"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition Height="60"/> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config index 5d794b958..0e58ccf54 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config @@ -1,5 +1,9 @@ <?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> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> @@ -46,6 +50,16 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> + <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> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config index 59e34e36f..8b579e95a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="CommonServiceLocator" version="1.3" targetFramework="net46" /> + <package id="EntityFramework" version="6.0.0" targetFramework="net472" /> <package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net46" /> <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net46" /> <package id="MahApps.Metro" version="1.5.0" targetFramework="net46" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Properties/AssemblyInfo.cs index bf0680366..220526a23 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Stubs Module")] -[assembly: AssemblyVersion("2.0.7.1633")] +[assembly: AssemblyVersion("2.0.9.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj index 1c9ae5147..402e1642d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/Tango.MachineStudio.Stubs.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Stubs</RootNamespace> <AssemblyName>Tango.MachineStudio.Stubs</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -31,6 +31,12 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.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.0.0\lib\net45\EntityFramework.SqlServer.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> @@ -50,6 +56,7 @@ <HintPath>..\..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> </Reference> <Reference Include="System" /> + <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Data" /> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll</HintPath> @@ -166,7 +173,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/ViewModels/MainViewVM.cs index fb05a0b94..ca598881a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/ViewModels/MainViewVM.cs @@ -27,7 +27,7 @@ namespace Tango.MachineStudio.Stubs.ViewModels /// Represents the script execution module main view model. /// </summary> /// <seealso cref="Tango.SharedUI.ViewModel" /> - public class MainViewVM : StudioViewModel<StubsModule> + public class MainViewVM : StudioViewModel { private INotificationProvider _notification; @@ -75,6 +75,11 @@ namespace Tango.MachineStudio.Stubs.ViewModels StubsViewVM.SaveSettings(); } + public override void OnApplicationReady() + { + + } + #endregion } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/app.config index 5d794b958..77b7003e2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/app.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/app.config @@ -1,5 +1,9 @@ <?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> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> @@ -48,4 +52,10 @@ </dependentAssembly> </assemblyBinding> </runtime> + <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> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/packages.config index 06fdfec56..801a18d37 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Stubs/packages.config @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="CommonServiceLocator" version="1.3" targetFramework="net46" /> + <package id="EntityFramework" version="6.0.0" targetFramework="net472" /> <package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net46" /> <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net46" /> <package id="Google.Protobuf" version="3.4.1" targetFramework="net46" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj index e8df35ba8..e4b1edce4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Synchronization</RootNamespace> <AssemblyName>Tango.MachineStudio.Synchronization</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BlowerElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BlowerElementEditor.xaml index 675571657..e06d1f559 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BlowerElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BlowerElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/blower-big.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BreakSensorElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BreakSensorElementEditor.xaml index 18c992193..78834aca7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BreakSensorElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/BreakSensorElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/break-big.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml index 346c0067b..de604625d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ControllerElementEditor.xaml @@ -28,7 +28,7 @@ <!--Content--> - <Grid ClipToBounds="False" IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid ClipToBounds="False"> <Border> <Viewbox> <Grid> @@ -99,7 +99,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DancerElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DancerElementEditor.xaml index 3c6ee7d49..2960a8807 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DancerElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DancerElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/dancer-big.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalInElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalInElementEditor.xaml index 8c72798d5..5c1cfc3ad 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalInElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalInElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Grid.RowDefinitions> <RowDefinition Height="221*"/> <RowDefinition Height="Auto"/> @@ -51,7 +51,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalOutElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalOutElementEditor.xaml index 5fd92c336..862fa0597 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalOutElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DigitalOutElementEditor.xaml @@ -28,7 +28,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Grid.RowDefinitions> <RowDefinition Height="221*"/> <RowDefinition Height="Auto"/> @@ -62,7 +62,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml index 0a088df69..1fa1c6c48 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/DispenserElementEditor.xaml @@ -45,7 +45,7 @@ <Grid> - <Grid Margin="5" IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="100*"/> @@ -254,7 +254,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/JobRunnerElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/JobRunnerElementEditor.xaml index c481f1e1b..76a6a16a7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/JobRunnerElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/JobRunnerElementEditor.xaml @@ -42,7 +42,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Border Padding="10" BorderThickness="1" BorderBrush="#202020" Background="#88FFFFFF" CornerRadius="5"> <DockPanel> <TextBox Foreground="#202020" FontSize="14" DockPanel.Dock="Top" Text="{Binding Job.Name}"></TextBox> @@ -239,7 +239,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MeterElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MeterElementEditor.xaml index 98ace7816..2631f3a06 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MeterElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MeterElementEditor.xaml @@ -28,7 +28,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Grid.RowDefinitions> <RowDefinition Height="221*"/> <RowDefinition Height="Auto"/> @@ -47,7 +47,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MonitorElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MonitorElementEditor.xaml index 8f66adeeb..a39fa975c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MonitorElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MonitorElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Viewbox Stretch="Fill"> <StackPanel> <Grid Grid.Column="1" Grid.Row="1" Width="200" Height="120"> @@ -55,7 +55,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml index 48186fd56..80bfe8f96 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorElementEditor.xaml @@ -47,7 +47,7 @@ <Grid> - <Grid Margin="5" IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="100*"/> @@ -243,7 +243,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml index 64ed5bb43..3adee13d6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MotorGroupElementEditor.xaml @@ -47,7 +47,7 @@ <Grid> - <Grid Margin="5" IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="100*"/> @@ -229,7 +229,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MultiGraphElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MultiGraphElementEditor.xaml index 9bc22d0f6..dcba1e77b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MultiGraphElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/MultiGraphElementEditor.xaml @@ -43,7 +43,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/PidElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/PidElementEditor.xaml index 6d4f49ace..197640b14 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/PidElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/PidElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/pid.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ProcessParametersElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ProcessParametersElementEditor.xaml index 716ac0a2d..f057521e0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ProcessParametersElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ProcessParametersElementEditor.xaml @@ -31,7 +31,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Grid> <Border BorderThickness="1" CornerRadius="5" Padding="10"> <Border.BorderBrush> @@ -73,7 +73,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SingleGraphElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SingleGraphElementEditor.xaml index 16f94b251..a9eb9e9f4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SingleGraphElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SingleGraphElementEditor.xaml @@ -43,7 +43,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SpeedSensorElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SpeedSensorElementEditor.xaml index b9dce9112..8696a3c53 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SpeedSensorElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/SpeedSensorElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/speed-big.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml index 3bac433ad..6e2315dc8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/ThreadMotionElementEditor.xaml @@ -47,7 +47,7 @@ <Grid> - <Grid Margin="5" IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="100*"/> @@ -158,7 +158,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/WinderElementEditor.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/WinderElementEditor.xaml index f81597574..2b6ee303d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/WinderElementEditor.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Editors/WinderElementEditor.xaml @@ -27,7 +27,7 @@ <!--Content--> - <Grid IsHitTestVisible="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable,Converter={StaticResource BooleanInverseConverter}}"> + <Grid> <Image Source="../Images/winder-big.png"></Image> @@ -38,7 +38,22 @@ <!--Content--> - <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected),Converter={StaticResource BoolToVisibilityConverter}}"> + <Border BorderThickness="1" BorderBrush="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=BorderBrush,TargetNullValue={StaticResource BorderBrush},FallbackValue={StaticResource BorderBrush}}"> + <Border.Style> + <Style TargetType="Border"> + <Setter Property="Visibility" Value="Collapsed"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=(local:ElementsEditor.IsSelected)}" Value="True" /> + <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:ElementsEditor},Path=IsEditable}" Value="True" /> + </MultiDataTrigger.Conditions> + + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </Border.Style> <Grid> <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=local:ElementEditor},Path=InnerContent}"></ContentPresenter> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs index 18f0bd7c0..b66227b98 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Technician Module")] -[assembly: AssemblyVersion("2.0.12.1633")] +[assembly: AssemblyVersion("2.0.14.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/JobRunnerTemplate.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/JobRunnerTemplate.xaml index 4de0bff14..b6bfefd8c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/JobRunnerTemplate.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/JobRunnerTemplate.xaml @@ -29,7 +29,7 @@ <GroupBox Header="JOB RUNNER"> <StackPanel> <TextBlock FontSize="10">Machine</TextBlock> - <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.MachinesViewSource}" SelectedItem="{Binding Machine,Mode=TwoWay}"> + <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.Machines}" SelectedItem="{Binding Machine,Mode=TwoWay}"> <ComboBox.ItemTemplate> <DataTemplate> <StackPanel Margin="0 5"> @@ -41,7 +41,7 @@ </ComboBox> <TextBlock FontSize="10" Margin="0 10 0 0" >RML</TextBlock> - <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.RmlsViewSource}" SelectedItem="{Binding Rml,Mode=TwoWay}" DisplayMemberPath="Name" /> + <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.Rmls}" SelectedItem="{Binding Rml,Mode=TwoWay}" DisplayMemberPath="Name" /> <TextBlock Margin="0 10 0 0" FontSize="10">Process Parameters</TextBlock> <ComboBox Margin="0 5 0 0" ItemsSource="{x:Static items:ProcessParametersItem.ProcessParametersTables}" SelectedItem="{Binding ProcessParameters,Mode=TwoWay}" DisplayMemberPath="Name" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ProcessParametersTemplate.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ProcessParametersTemplate.xaml index 5e5a6d46d..46a6a6340 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ProcessParametersTemplate.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ProcessParametersTemplate.xaml @@ -27,7 +27,7 @@ <GroupBox Header="PROCESS PARAMETERS"> <StackPanel> <TextBlock FontSize="10">Reset to RML</TextBlock> - <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.RmlsViewSource}" SelectedItem="{Binding SelectedResetRML,Mode=TwoWay}" DisplayMemberPath="Name" /> + <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.Rmls}" SelectedItem="{Binding SelectedResetRML,Mode=TwoWay}" DisplayMemberPath="Name" /> <Button Margin="0 10 0 0" Command="{Binding ResetToRMLCommand}">RESET</Button> </StackPanel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj index 8490800ad..e187db982 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Tango.MachineStudio.Technician.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Technician</RootNamespace> <AssemblyName>Tango.MachineStudio.Technician</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -31,6 +31,12 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.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.0.0\lib\net45\EntityFramework.SqlServer.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> @@ -47,6 +53,7 @@ <HintPath>..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath> </Reference> <Reference Include="System" /> + <Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.Data" /> <Reference Include="System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> <HintPath>..\..\..\packages\System.Reactive.Core.3.1.1\lib\net46\System.Reactive.Core.dll</HintPath> @@ -612,7 +619,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs index 59a96f107..6b532204e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BlowerItem.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Media; using System.Xml.Serialization; +using Tango.BL; using Tango.BL.Entities; using Tango.SharedUI.Helpers; @@ -31,7 +32,7 @@ namespace Tango.MachineStudio.Technician.TechItems { BlowerConfigurations = new List<HardwareBlower>(); - foreach (var BlowerType in BL.ObservablesEntitiesAdapter.Instance.HardwareBlowerTypes) + foreach (var BlowerType in ObservablesStaticCollections.Instance.HardwareBlowerTypes) { BlowerConfigurations.Add(new HardwareBlower() { HardwareBlowerType = BlowerType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs index cf1ed682e..4a0d1c9c9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/BreakSensorItem.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Media; using System.Xml.Serialization; +using Tango.BL; using Tango.BL.Entities; using Tango.SharedUI.Helpers; @@ -31,7 +32,7 @@ namespace Tango.MachineStudio.Technician.TechItems { BreakSensorConfigurations = new List<HardwareBreakSensor>(); - foreach (var BreakSensorType in BL.ObservablesEntitiesAdapter.Instance.HardwareBreakSensorTypes) + foreach (var BreakSensorType in ObservablesStaticCollections.Instance.HardwareBreakSensorTypes) { BreakSensorConfigurations.Add(new HardwareBreakSensor() { HardwareBreakSensorType = BreakSensorType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs index e5651acce..1115c6dbf 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DancerItem.cs @@ -33,7 +33,7 @@ namespace Tango.MachineStudio.Technician.TechItems { DancerConfigurations = new List<HardwareDancer>(); - foreach (var winderType in BL.ObservablesEntitiesAdapter.Instance.HardwareDancerTypes) + foreach (var winderType in BL.ObservablesStaticCollections.Instance.HardwareDancerTypes) { DancerConfigurations.Add(new HardwareDancer() { HardwareDancerType = winderType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs index f058036d0..7945c5b73 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/DispenserItem.cs @@ -37,7 +37,7 @@ namespace Tango.MachineStudio.Technician.TechItems { DispenserTypes = new List<DispenserType>(); - foreach (var techDispenser in BL.ObservablesEntitiesAdapter.Instance.TechDispensers) + foreach (var techDispenser in BL.ObservablesStaticCollections.Instance.TechDispensers) { DispenserTypes.Add(new DispenserType() { Code = int.Parse(techDispenser.Name.Replace("Dispenser", "")) - 1 }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs index 8d102d6c0..3443c008e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/JobRunnerItem.cs @@ -160,6 +160,7 @@ namespace Tango.MachineStudio.Technician.TechItems { Job.Machine = Machine; Job.Rml = Rml; + BrushStop.SetLiquidVolumes(Machine.Configuration, Rml, ProcessParameters); } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs index 5cdb8017e..a5288e6bc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorGroupItem.cs @@ -59,7 +59,7 @@ namespace Tango.MachineStudio.Technician.TechItems { if (TechMotors != null) { - SelectedMotors = new SelectedObjectCollection<HardwareMotorType>(ObservablesEntitiesAdapter.Instance.HardwareMotorTypes.ToObservableCollection(), TechMotors); + SelectedMotors = new SelectedObjectCollection<HardwareMotorType>(ObservablesStaticCollections.Instance.HardwareMotorTypes.ToObservableCollection(), TechMotors); } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs index 779919039..c097a0b7b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/MotorItem.cs @@ -38,7 +38,7 @@ namespace Tango.MachineStudio.Technician.TechItems { MotorConfigurations = new List<HardwareMotor>(); - foreach (var motorType in BL.ObservablesEntitiesAdapter.Instance.HardwareMotorTypes) + foreach (var motorType in BL.ObservablesStaticCollections.Instance.HardwareMotorTypes) { MotorConfigurations.Add(new HardwareMotor() { HardwareMotorType = motorType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs index a56c3b0c1..70ecc1a70 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/PidItem.cs @@ -33,7 +33,7 @@ namespace Tango.MachineStudio.Technician.TechItems { PidConfigurations = new List<HardwarePidControl>(); - foreach (var pidType in BL.ObservablesEntitiesAdapter.Instance.HardwarePidControlTypes) + foreach (var pidType in BL.ObservablesStaticCollections.Instance.HardwarePidControlTypes) { PidConfigurations.Add(new HardwarePidControl() { HardwarePidControlType = pidType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs index 79aea7a0c..4aedf8bc7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/ProcessParametersItem.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Media; using System.Xml.Serialization; +using Tango.BL; using Tango.BL.Entities; using Tango.Core.Commands; using Tango.SharedUI.Helpers; @@ -93,7 +94,9 @@ namespace Tango.MachineStudio.Technician.TechItems if (_counter > 1) { + String name = ProcessParameters.Name; ProcessParametersTables.Add(ProcessParameters); + ProcessParameters.Name = name; } } @@ -101,15 +104,18 @@ namespace Tango.MachineStudio.Technician.TechItems { if (SelectedResetRML != null) { - var group = SelectedResetRML.ProcessParametersTablesGroups.FirstOrDefault(x => x.Active); - - if (group != null) + using (ObservablesContext db = ObservablesContext.CreateDefault()) { - var table = group.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault(); + var group = db.Adapter.GetRmlActiveProcessParametersTablesGroup(SelectedResetRML.Guid); - if (table != null) + if (group != null) { - ProcessParameters = table.Clone(); + var table = group.ProcessParametersTables.OrderBy(x => x.TableIndex).FirstOrDefault(); + + if (table != null) + { + table.MapPrimitivesTo(ProcessParameters); + } } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs index a067ec95f..e43a518c1 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/SpeedSensorItem.cs @@ -33,7 +33,7 @@ namespace Tango.MachineStudio.Technician.TechItems { SpeedSensorConfigurations = new List<HardwareSpeedSensor>(); - foreach (var SpeedSensorType in BL.ObservablesEntitiesAdapter.Instance.HardwareSpeedSensorTypes) + foreach (var SpeedSensorType in BL.ObservablesStaticCollections.Instance.HardwareSpeedSensorTypes) { SpeedSensorConfigurations.Add(new HardwareSpeedSensor() { HardwareSpeedSensorType = SpeedSensorType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs index 11188c69d..b6ebf2857 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/TechItem.cs @@ -47,7 +47,7 @@ namespace Tango.MachineStudio.Technician.TechItems { ID = Guid.NewGuid().ToString(); Name = "Untitled"; - Adapter = ObservablesEntitiesAdapter.Instance; + Adapter = ObservablesStaticCollections.Instance; _color = Colors.DodgerBlue; } @@ -77,7 +77,7 @@ namespace Tango.MachineStudio.Technician.TechItems /// Gets or sets the db adapter. /// </summary> [XmlIgnore] - public ObservablesEntitiesAdapter Adapter { get; set; } + public ObservablesStaticCollections Adapter { get; set; } private String _id; /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs index 425baf471..2df2d7ad7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechItems/WinderItem.cs @@ -33,7 +33,7 @@ namespace Tango.MachineStudio.Technician.TechItems { WinderConfigurations = new List<HardwareWinder>(); - foreach (var winderType in BL.ObservablesEntitiesAdapter.Instance.HardwareWinderTypes) + foreach (var winderType in BL.ObservablesStaticCollections.Instance.HardwareWinderTypes) { WinderConfigurations.Add(new HardwareWinder() { HardwareWinderType = winderType }); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index 333e43187..55235b3c2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -41,7 +41,7 @@ namespace Tango.MachineStudio.Technician.ViewModels /// </summary> /// <seealso cref="Tango.SharedUI.ViewModel" /> /// <seealso cref="Tango.MachineStudio.Common.StudioApplication.IShutdownListener" /> - public class MachineTechViewVM : StudioViewModel<TechnicianModule> + public class MachineTechViewVM : StudioViewModel { private List<PropertyInfo> _diagnoticsMonitorsDataProperties; private IDiagnosticsFrameProvider _diagnosticsFrameProvider; @@ -94,7 +94,7 @@ namespace Tango.MachineStudio.Technician.ViewModels /// <summary> /// Gets or sets the db adapter. /// </summary> - public ObservablesEntitiesAdapter Adapter { get; set; } + public ObservablesStaticCollections Adapter { get; set; } /// <summary> /// Gets or sets the application manager. @@ -241,7 +241,7 @@ namespace Tango.MachineStudio.Technician.ViewModels ApplicationManager = applicationManager; ApplicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; - Adapter = ObservablesEntitiesAdapter.Instance; + Adapter = ObservablesStaticCollections.Instance; Elements = new ObservableCollection<IElementEditor>(); OpenProjectCommand = new RelayCommand(OpenProject); @@ -1473,7 +1473,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { if (item is MotorGroupItem) { - (item as MotorGroupItem).TechMotors = ObservablesEntitiesAdapter.Instance.HardwareMotorTypes.Where(x => (item as MotorGroupItem).ItemsGuids.Contains(x.Guid)).ToObservableCollection(); + (item as MotorGroupItem).TechMotors = ObservablesStaticCollections.Instance.HardwareMotorTypes.Where(x => (item as MotorGroupItem).ItemsGuids.Contains(x.Guid)).ToObservableCollection(); } AddTechItem(item); @@ -1572,6 +1572,11 @@ namespace Tango.MachineStudio.Technician.ViewModels }); } + public override void OnApplicationReady() + { + + } + #endregion #region Hardware Configuration @@ -1666,83 +1671,93 @@ namespace Tango.MachineStudio.Technician.ViewModels { if (MachineOperator != null) { - var hw = ApplicationManager.ConnectedMachine.Machine.Configuration.HardwareVersion.Clone(); - - foreach (var motorConfig in hw.HardwareMotors) + using (_notification.PushTaskItem("Uploading hardware configuration...")) { - var itemConfig = MotorItem.MotorConfigurations.SingleOrDefault(x => x.HardwareMotorType.Code == motorConfig.HardwareMotorType.Code); - - if (itemConfig != null) + try { - itemConfig.MapPrimitivesTo(motorConfig); - } - } + HardwareVersion hw = null; + Configuration config = null; - foreach (var pidConfig in hw.HardwarePidControls) - { - var itemConfig = PidItem.PidConfigurations.SingleOrDefault(x => x.HardwarePidControlType.Code == pidConfig.HardwarePidControlType.Code); + await Task.Factory.StartNew(() => + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + config = db.Adapter.GetConfiguration(x => x.Guid == ApplicationManager.ConnectedMachine.Machine.ConfigurationGuid).Clone(); + hw = db.Adapter.GetHardwareVersionByMachine(ApplicationManager.ConnectedMachine.Machine.Guid).Clone(); + } + }); - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(pidConfig); - } - } + foreach (var motorConfig in hw.HardwareMotors) + { + var itemConfig = MotorItem.MotorConfigurations.SingleOrDefault(x => x.HardwareMotorType.Code == motorConfig.HardwareMotorType.Code); - foreach (var winderConfig in hw.HardwareWinders) - { - var itemConfig = WinderItem.WinderConfigurations.SingleOrDefault(x => x.HardwareWinderType.Code == winderConfig.HardwareWinderType.Code); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(motorConfig); + } + } - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(winderConfig); - } - } + foreach (var pidConfig in hw.HardwarePidControls) + { + var itemConfig = PidItem.PidConfigurations.SingleOrDefault(x => x.HardwarePidControlType.Code == pidConfig.HardwarePidControlType.Code); - foreach (var dancerConfig in hw.HardwareDancers) - { - var itemConfig = DancerItem.DancerConfigurations.SingleOrDefault(x => x.HardwareDancerType.Code == dancerConfig.HardwareDancerType.Code); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(pidConfig); + } + } - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(dancerConfig); - } - } + foreach (var winderConfig in hw.HardwareWinders) + { + var itemConfig = WinderItem.WinderConfigurations.SingleOrDefault(x => x.HardwareWinderType.Code == winderConfig.HardwareWinderType.Code); - foreach (var speedSensorConfig in hw.HardwareSpeedSensors) - { - var itemConfig = SpeedSensorItem.SpeedSensorConfigurations.SingleOrDefault(x => x.HardwareSpeedSensorType.Code == speedSensorConfig.HardwareSpeedSensorType.Code); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(winderConfig); + } + } - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(speedSensorConfig); - } - } + foreach (var dancerConfig in hw.HardwareDancers) + { + var itemConfig = DancerItem.DancerConfigurations.SingleOrDefault(x => x.HardwareDancerType.Code == dancerConfig.HardwareDancerType.Code); - foreach (var blowerConfig in hw.HardwareBlowers) - { - var itemConfig = BlowerItem.BlowerConfigurations.SingleOrDefault(x => x.HardwareBlowerType.Code == blowerConfig.HardwareBlowerType.Code); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(dancerConfig); + } + } - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(blowerConfig); - } - } + foreach (var speedSensorConfig in hw.HardwareSpeedSensors) + { + var itemConfig = SpeedSensorItem.SpeedSensorConfigurations.SingleOrDefault(x => x.HardwareSpeedSensorType.Code == speedSensorConfig.HardwareSpeedSensorType.Code); - foreach (var breakSensorConfig in hw.HardwareBreakSensors) - { - var itemConfig = BreakSensorItem.BreakSensorConfigurations.SingleOrDefault(x => x.HardwareBreakSensorType.Code == breakSensorConfig.HardwareBreakSensorType.Code); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(speedSensorConfig); + } + } - if (itemConfig != null) - { - itemConfig.MapPrimitivesTo(breakSensorConfig); - } - } + foreach (var blowerConfig in hw.HardwareBlowers) + { + var itemConfig = BlowerItem.BlowerConfigurations.SingleOrDefault(x => x.HardwareBlowerType.Code == blowerConfig.HardwareBlowerType.Code); - using (_notification.PushTaskItem("Uploading hardware configuration...")) - { - try - { - await MachineOperator.UploadHardwareConfiguration(hw, ApplicationManager.ConnectedMachine.Machine.Configuration); + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(blowerConfig); + } + } + + foreach (var breakSensorConfig in hw.HardwareBreakSensors) + { + var itemConfig = BreakSensorItem.BreakSensorConfigurations.SingleOrDefault(x => x.HardwareBreakSensorType.Code == breakSensorConfig.HardwareBreakSensorType.Code); + + if (itemConfig != null) + { + itemConfig.MapPrimitivesTo(breakSensorConfig); + } + } + + await MachineOperator.UploadHardwareConfiguration(hw, config); } catch (Exception ex) { @@ -1753,11 +1768,19 @@ namespace Tango.MachineStudio.Technician.ViewModels } } - private void ResetHardwareConfiguration(bool showMessage = true) + private async void ResetHardwareConfiguration(bool showMessage = true) { if (MachineOperator != null) { - var hw = ApplicationManager.ConnectedMachine.Machine.Configuration.HardwareVersion; + ObservablesContext db = ObservablesContext.CreateDefault(); + ObservablesContextAdapter adapter = new ObservablesContextAdapter(db); + + HardwareVersion hw = null; + + await Task.Factory.StartNew(() => + { + hw = adapter.GetHardwareVersionByMachine(ApplicationManager.ConnectedMachine.Machine.Guid); + }); foreach (var motorConfig in hw.HardwareMotors) { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml.cs index b60f4d725..977974f8a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml.cs @@ -59,7 +59,7 @@ namespace Tango.MachineStudio.Technician.Views private void OnActionModeClicked(object sender, MouseButtonEventArgs e) { - editor.DeselectElements(); + //editor.DeselectElements(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/app.config index 5d794b958..77b7003e2 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/app.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/app.config @@ -1,5 +1,9 @@ <?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> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> @@ -48,4 +52,10 @@ </dependentAssembly> </assemblyBinding> </runtime> + <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> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/packages.config index 49b90c865..ea48e62ff 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/packages.config @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="CommonServiceLocator" version="1.3" targetFramework="net46" /> + <package id="EntityFramework" version="6.0.0" targetFramework="net472" /> <package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net46" /> <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net46" /> <package id="Google.Protobuf" version="3.4.1" targetFramework="net46" /> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Properties/AssemblyInfo.cs index 45b3ef1ce..b5f0f2d5b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Users & Roles Module")] -[assembly: AssemblyVersion("2.0.7.1633")] +[assembly: AssemblyVersion("2.0.9.1159")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj index 48fe2b34c..539f10574 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Tango.MachineStudio.UsersAndRoles.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.UsersAndRoles</RootNamespace> <AssemblyName>Tango.MachineStudio.UsersAndRoles</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs index 7d82cbbbc..db312b78f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs @@ -8,14 +8,16 @@ using System.Threading.Tasks; using Tango.BL; using Tango.BL.Entities; using Tango.Core.Commands; +using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.UsersAndRoles.Navigation; using Tango.MachineStudio.UsersAndRoles.Providers; using Tango.SharedUI; +using System.Data.Entity; namespace Tango.MachineStudio.UsersAndRoles.ViewModels { - public class MainViewVM : ViewModel + public class MainViewVM : StudioViewModel { private ObservablesContext _organizationsContext; private ObservablesContext _manageContext; @@ -129,8 +131,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels _navigation = navigation; _notification = notification; - LoadOrganizations(); - ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); ManageUserCommand = new RelayCommand(LoadSelectedUser, () => SelectedUser != null); @@ -144,6 +144,11 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels RemoveUserCommand = new RelayCommand(RemoveSelectedUser, () => SelectedUser != null); } + public override void OnApplicationReady() + { + LoadOrganizations(); + } + private async void AddOrganization() { String name = _notification.ShowTextInput("Enter organization name", "Name"); @@ -187,19 +192,20 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels } } - private void LoadSelectedUser() + private async void LoadSelectedUser() { using (_notification.PushTaskItem("Loading user details...")) { - Task.Factory.StartNew(() => + await Task.Factory.StartNew(() => { _userContext = ObservablesContext.CreateDefault(); + Roles = _userContext.Roles.ToObservableCollection(); - ManagedUser = _userContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); + ManagedUser = _userContext.Adapter.GetUser(SelectedUser.Guid); ManagedUserRoles = ManagedUser.Roles.ToObservableCollection(); - - InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView)); }); + + _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView); } } @@ -242,31 +248,35 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels } } - private void LoadSelectedOrganization() + private async void LoadSelectedOrganization() { using (_notification.PushTaskItem("Loading organization...")) { - Task.Factory.StartNew(() => + await Task.Factory.StartNew(() => { _manageContext = ObservablesContext.CreateDefault(); - ManagedOrganization = _manageContext.Organizations.SingleOrDefault(x => x.Guid == SelectedOrganization.Guid); - InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView)); + ManagedOrganization = _manageContext.Adapter.GetOrganizationAndUsers(SelectedOrganization.Guid); }); + + _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView); } } private void LoadOrganizations() { - _organizationsContext = ObservablesContext.CreateDefault(); - _organizationsContext.Configuration.LazyLoadingEnabled = false; - - _organizationsContext.Users.ToList(); - _organizationsContext.Contacts.ToList(); - _organizationsContext.Addresses.ToList(); - _organizationsContext.Machines.ToList(); + Task.Factory.StartNew(() => + { + _organizationsContext = ObservablesContext.CreateDefault(); - Organizations = _organizationsContext.Organizations.ToObservableCollection(); + Organizations = _organizationsContext.Organizations + .Include(x => x.Machines) + .Include(x => x.Users) + .Include(x => x.Users.Select(y => y.Contact)) + .Include(x => x.Users.Select(y => y.Address)) + .Include(x => x.Address) + .ToObservableCollection(); + }); } public void OnDropRole(Role role) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/AutoComplete/MachinesProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/AutoComplete/MachinesProvider.cs index e486ec79a..ec23fefee 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/AutoComplete/MachinesProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/AutoComplete/MachinesProvider.cs @@ -23,7 +23,7 @@ namespace Tango.MachineStudio.Common.AutoComplete /// <returns></returns> public IEnumerable GetSuggestions(string filter) { - return ObservablesEntitiesAdapter.Instance.Machines.Where(x => x.SerialNumber.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase) || x.Name.ToLower().Contains(filter.ToLower())).ToList(); + return ObservablesStaticCollections.Instance.Machines.Where(x => x.SerialNumber.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase) || x.Name.ToLower().Contains(filter.ToLower())).ToList(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/LoadingPanel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/LoadingPanel.cs new file mode 100644 index 000000000..665d6995b --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/LoadingPanel.cs @@ -0,0 +1,37 @@ +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.MachineStudio.Common.Controls +{ + public class LoadingPanel : ContentControl + { + + + public bool IsLoading + { + get { return (bool)GetValue(IsLoadingProperty); } + set { SetValue(IsLoadingProperty, value); } + } + public static readonly DependencyProperty IsLoadingProperty = + DependencyProperty.Register("IsLoading", typeof(bool), typeof(LoadingPanel), new PropertyMetadata(false)); + + + + static LoadingPanel() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(LoadingPanel), new FrameworkPropertyMetadata(typeof(LoadingPanel))); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs index c5b9c63cb..cb4611cad 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs @@ -81,7 +81,6 @@ namespace Tango.MachineStudio.Common.EventLogging try { _db = ObservablesContext.CreateDefault(); - _db.Configuration.LazyLoadingEnabled = false; _db.ActionTypes.ToList(); _db.EventTypesActions.ToList(); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs index 4203a1e8b..be0906fc4 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioViewModel.cs @@ -3,25 +3,16 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.MachineStudio.Common { /// <summary> /// Represents a Machine Studio view model. /// </summary> - public interface IStudioViewModel + public interface IStudioViewModel : INavigationViewModel { /// <summary> - /// Called when the user has navigated in to the module. - /// </summary> - void OnNavigatedTo(); - - /// <summary> - /// Called when the user has navigated out of the module. - /// </summary> - void OnNavigatedFrom(); - - /// <summary> /// Called when application is shutting down. /// </summary> void OnShuttingDown(); @@ -34,14 +25,13 @@ namespace Tango.MachineStudio.Common Task<bool> OnShutdownRequest(); /// <summary> - /// Called when another module has wants to navigate to this module with some arguments. + /// Called when the application has been started /// </summary> - /// <param name="args">The arguments.</param> - void OnModuleRequest(params object[] args); + void OnApplicationStarted(); /// <summary> - /// Called when the application has been started + /// Called when the application is ready and all modules are loaded. /// </summary> - void OnApplicationStarted(); + void OnApplicationReady(); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs index 1fd72c53a..990300143 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs @@ -13,6 +13,11 @@ namespace Tango.MachineStudio.Common.Modules public interface IStudioModuleLoader { /// <summary> + /// Occurs when all modules are initialized. + /// </summary> + event EventHandler ModulesLoaded; + + /// <summary> /// Gets all loaded modules. /// </summary> ObservableCollection<IStudioModule> AllModules { get; } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationBlocker.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationBlocker.cs new file mode 100644 index 000000000..abd6db172 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationBlocker.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Navigation +{ + /// <summary> + /// Represents an object which can abort the navigation from it. + /// </summary> + public interface INavigationBlocker + { + /// <summary> + /// Called before the navigation system navigates from this object. + /// Return false to abort the navigation. + /// </summary> + /// <returns></returns> + Task<bool> OnNavigateOutRequest(); + + /// <summary> + /// Called before the navigation system navigates back from this object. + /// Return false to abort the navigation. + /// </summary> + /// <returns></returns> + Task<bool> OnNavigateBackRequest(); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs index 4d1cbea8c..e20940c8d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.Commands; namespace Tango.MachineStudio.Common.Navigation { @@ -12,9 +13,102 @@ namespace Tango.MachineStudio.Common.Navigation public interface INavigationManager { /// <summary> - /// Navigates to the specified view. + /// Gets the current module. + /// </summary> + IStudioModule CurrentModule { get; } + + /// <summary> + /// Gets the current view model. + /// </summary> + StudioViewModel CurrentVM { get; } + + /// <summary> + /// Gets a value indicating whether the navigation system is able to navigate to the previous view. + /// </summary> + bool CanNavigateBack { get; } + + /// <summary> + /// Navigates to the previous view if <see cref="CanNavigateBack"/> is true. + /// </summary> + Task<bool> NavigateBack(); + + /// <summary> + /// Navigates to the previous view.. + /// </summary> + RelayCommand NavigateBackCommand { get; } + + /// <summary> + /// Navigates to the specified full path in command parameter. + /// </summary> + RelayCommand<String> NavigateToCommand { get; } + + /// <summary> + /// Navigates to the specified PPC view. /// </summary> /// <param name="view">The view.</param> - void NavigateTo(NavigationView view); + Task<bool> NavigateTo(NavigationView view, bool pushToHistory = true); + + /// <summary> + /// Navigates to the specified PPC view with the specified receive object. + /// </summary> + /// <param name="view">The view.</param> + Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true); + + /// <summary> + /// Navigates to the specified module. + /// </summary> + /// <typeparam name="T"></typeparam> + Task<bool> NavigateTo<T>(bool pushToHistory = true) where T : IStudioModule; + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView.JobsView). + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + Task<bool> NavigateTo<T>(String viewPath, bool pushToHistory = true) where T : IStudioModule; + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView,JobsView). + /// This method makes it easy to do stuff like NavigateTo(nameof(MainView),nameof(JobsView)); + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + Task<bool> NavigateTo<T>(bool pushToHistory = true, params String[] viewPath) where T : IStudioModule; + + /// <summary> + /// Navigates to the specified module and view by full path (e.g Jobs.JobsView). + /// </summary> + /// <param name="fullPath">The full path.</param> + Task<bool> NavigateTo(String fullPath, bool pushToHistory = true); + + /// <summary> + /// Navigates to the specified module and view with the specified object and expecting a return parameter. + /// The view must be of type INavigationResultProvider<TResult>. + /// </summary> + /// <param name="fullPath">The full path.</param> + Task<TResult> NavigateForResult<TModule, TView, TResult, TPass>(TPass obj, bool pushToHistory = true) + where TModule : IStudioModule; + + /// <summary> + /// Navigates to the specified module and view with the specified object. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TPass">The type of the pass.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + Task<bool> NavigateWithObject<TModule, TView, TPass>(TPass obj, bool pushToHistory = true) + where TModule : IStudioModule; + + /// <summary> + /// Clears the navigation back history. + /// </summary> + void ClearHistory(); + + /// <summary> + /// Clears the navigation back history except the specified view type. + /// </summary> + void ClearHistoryExcept<T>(); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationObjectReceiver.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationObjectReceiver.cs new file mode 100644 index 000000000..5072881d2 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationObjectReceiver.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Navigation +{ + /// <summary> + /// Represents an object which supports receiving an object as part of the navigation to it. + /// </summary> + /// <typeparam name="T"></typeparam> + public interface INavigationObjectReceiver<T> + { + /// <summary> + /// Called when navigation system is going to navigate to this instance with the specified object. + /// </summary> + /// <param name="obj">The object.</param> + void OnNavigatedToWithObject(T obj); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationResultProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationResultProvider.cs new file mode 100644 index 000000000..dee037432 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationResultProvider.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Navigation +{ + /// <summary> + /// Represents a object which provides a result the navigation system navigates away from it. + /// </summary> + /// <typeparam name="TResult">The type of the result.</typeparam> + /// <typeparam name="TPass">The type of the pass.</typeparam> + public interface INavigationResultProvider<TResult, TPass> + { + /// <summary> + /// Called when the navigation system requests a result when it is navigating away from this instance. + /// </summary> + /// <returns></returns> + TResult GetNavigationResult(); + + /// <summary> + /// Called when navigation system is going to navigate to this instance with the specified object. + /// </summary> + /// <param name="obj">The object.</param> + void OnNavigationObjectReceived(TPass obj); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs index 4b671e2e1..cd70982d5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Common Components")] -[assembly: AssemblyVersion("2.0.24.1647")] +[assembly: AssemblyVersion("2.0.26.1159")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml index 07818269b..6fcf6dd72 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml @@ -3,6 +3,7 @@ xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters;assembly=MaterialDesignThemes.Wpf" xmlns:editors="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop" + xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:Tango.MachineStudio.Common.Resources"> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs index 07f02df3a..96de3eea0 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs @@ -45,13 +45,6 @@ namespace Tango.MachineStudio.Common.StudioApplication bool IsMachineConnectedViaTCP { get; } /// <summary> - /// Loads the specified module if permitted. - /// </summary> - /// <param name="moduleName">Name of the module.</param> - /// <param name="args">The arguments.</param> - void RequestModule(String moduleName, params object[] args); - - /// <summary> /// Gets the machine studio application version. /// </summary> Version Version { get; } @@ -77,5 +70,10 @@ namespace Tango.MachineStudio.Common.StudioApplication /// </summary> /// <param name="window">The window.</param> void RegisterOpenedWindow(Window window); + + /// <summary> + /// Raises the application ready event. + /// </summary> + void NotifyApplicationReady(); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs index 96715dc20..63ff2119a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core.DI; using Tango.SharedUI; namespace Tango.MachineStudio.Common @@ -10,51 +11,42 @@ namespace Tango.MachineStudio.Common /// <summary> /// Represents a Machine Studio view model /// </summary> - /// <typeparam name="Module">The type of the module.</typeparam> /// <seealso cref="Tango.SharedUI.ViewModel" /> /// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" /> - public abstract class StudioViewModelInternal : ViewModel, IStudioViewModel + public abstract class StudioViewModel : ViewModel, IStudioViewModel { - public bool IsVisible { get; private set; } - - /// <summary> - /// Gets or sets a value indicating whether this view model studio module is currently loaded. - /// </summary> - public bool IsModuleLoaded { get; private set; } - + private bool _isVisible; /// <summary> - /// Initializes a new instance of the <see cref="StudioViewModel{Module}"/> class. + /// Gets or sets a value indicating whether this view model view's is visible. /// </summary> - public StudioViewModelInternal() : base() + public bool IsVisible { - + get { return _isVisible; } + set { _isVisible = value; RaisePropertyChangedAuto(); } } /// <summary> - /// Called when another module has wants to navigate to this module with some arguments. + /// Initializes a new instance of the <see cref="StudioViewModel{Module}"/> class. /// </summary> - /// <param name="args">The arguments.</param> - public virtual void OnModuleRequest(params object[] args) + public StudioViewModel() : base() { } /// <summary> - /// Called when the user has navigated out of the module. + /// Called when the user has navigated out of this view model. /// </summary> public virtual void OnNavigatedFrom() { IsVisible = false; - IsModuleLoaded = false; } /// <summary> - /// Called when the user has navigated in to the module. + /// Called when the user has navigated in to this view model. /// </summary> public virtual void OnNavigatedTo() { IsVisible = true; - IsModuleLoaded = true; } /// <summary> @@ -82,153 +74,42 @@ namespace Tango.MachineStudio.Common { } - } - - /// <summary> - /// Represents a Machine Studio view model - /// </summary> - /// <typeparam name="Module">The type of the module.</typeparam> - /// <seealso cref="Tango.SharedUI.ViewModel" /> - /// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" /> - public abstract class StudioViewModel<Module> : ViewModel, IStudioViewModel where Module : IStudioModule - { - public bool IsVisible { get; private set; } - - /// <summary> - /// Gets or sets a value indicating whether this view model studio module is currently loaded. - /// </summary> - public bool IsModuleLoaded { get; private set; } - - /// <summary> - /// Initializes a new instance of the <see cref="StudioViewModel{Module}"/> class. - /// </summary> - public StudioViewModel() : base() - { - - } - - /// <summary> - /// Called when another module has wants to navigate to this module with some arguments. - /// </summary> - /// <param name="args">The arguments.</param> - public virtual void OnModuleRequest(params object[] args) - { - - } /// <summary> - /// Called when the user has navigated out of the module. - /// </summary> - public virtual void OnNavigatedFrom() - { - IsVisible = false; - IsModuleLoaded = false; - } - - /// <summary> - /// Called when the user has navigated in to the module. - /// </summary> - public virtual void OnNavigatedTo() - { - IsVisible = true; - IsModuleLoaded = true; - } - - /// <summary> - /// Called before the application is shutting down. - /// Return false to cancel the shutdown in case an important process is in progress. - /// </summary> - /// <returns></returns> - public virtual Task<bool> OnShutdownRequest() - { - return Task.FromResult(true); - } - - /// <summary> - /// Called when application is shutting down. + /// Called when the application is ready and all modules are loaded. /// </summary> - public virtual void OnShuttingDown() - { - - } - - /// <summary> - /// Called when the application has been started - /// </summary> - public virtual void OnApplicationStarted() - { - - } + public abstract void OnApplicationReady(); } /// <summary> - /// Represents a Machine Studio view model. + /// Represents a Machine Studio view model with a support for a view contract. /// </summary> - /// <typeparam name="Module">The type of the module.</typeparam> - /// <typeparam name="T"></typeparam> + /// <typeparam name="TView"></typeparam> /// <seealso cref="Tango.SharedUI.ViewModel" /> - /// <seealso cref="Tango.MachineStudio.Common.IStudioViewModel" /> - public abstract class StudioViewModel<Module, T> : ViewModel<T>, IStudioViewModel where Module : IStudioModule where T : IView + public abstract class StudioViewModel<TView> : StudioViewModel where TView : IView { /// <summary> - /// Initializes a new instance of the <see cref="StudioViewModel{Module, T}"/> class. + /// Gets the view model's view. /// </summary> - /// <param name="view">The view.</param> - public StudioViewModel(T view) : base(view) - { - - } - - /// <summary> - /// Called when the application has been started - /// </summary> - public virtual void OnApplicationStarted() - { - - } + public TView View { get; private set; } /// <summary> - /// Called when another module has wants to navigate to this module with some arguments. + /// Initializes a new instance of the <see cref="StudioViewModel{TView}"/> class. /// </summary> - /// <param name="args">The arguments.</param> - public virtual void OnModuleRequest(params object[] args) - { - - } - - /// <summary> - /// Called when the user has navigated out of the module. - /// </summary> - public virtual void OnNavigatedFrom() - { - - } - - /// <summary> - /// Called when the user has navigated in to the module. - /// </summary> - public virtual void OnNavigatedTo() - { - - } - - /// <summary> - /// Called before the application is shutting down. - /// Return false to cancel the shutdown in case an important process is in progress. - /// </summary> - /// <returns></returns> - public virtual Task<bool> OnShutdownRequest() + public StudioViewModel() : base() { - return Task.FromResult(true); + TangoIOC.Default.GetInstanceWhenAvailable<TView>((view) => + { + View = view; + OnViewAttached(view); + }); } /// <summary> - /// Called when application is shutting down. + /// Called when the view has been attached /// </summary> - public virtual void OnShuttingDown() - { - - } + /// <param name="view">The view.</param> + protected abstract void OnViewAttached(TView view); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj index 6d6803076..09678b515 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj @@ -8,7 +8,7 @@ <OutputType>library</OutputType> <RootNamespace>Tango.MachineStudio.Common</RootNamespace> <AssemblyName>Tango.MachineStudio.Common</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -85,6 +85,7 @@ <DependentUpon>HiveComboControl.xaml</DependentUpon> </Compile> <Compile Include="Controls\IRealTimeGraph.cs" /> + <Compile Include="Controls\LoadingPanel.cs" /> <Compile Include="Controls\RealTimeGraphMultiControl.xaml.cs"> <DependentUpon>RealTimeGraphMultiControl.xaml</DependentUpon> </Compile> @@ -105,6 +106,9 @@ <Compile Include="IStudioViewModel.cs" /> <Compile Include="MachineStudioSettings.cs" /> <Compile Include="Messages\MachineConnectionChangedMessage.cs" /> + <Compile Include="Navigation\INavigationBlocker.cs" /> + <Compile Include="Navigation\INavigationObjectReceiver.cs" /> + <Compile Include="Navigation\INavigationResultProvider.cs" /> <Compile Include="Notifications\BarItem.cs" /> <Compile Include="Speech\DefaultSpeechProvider.cs" /> <Compile Include="Speech\ISpeechProvider.cs" /> @@ -114,6 +118,7 @@ <Compile Include="StudioModuleAttribute.cs" /> <Compile Include="StudioModuleBase.cs" /> <Compile Include="StudioViewModel.cs" /> + <Compile Include="Threading\IDispatcherProvider.cs" /> <Compile Include="Update\CheckForUpdatesResponse.cs" /> <Compile Include="Update\CheckForUpdatesRequest.cs" /> <Compile Include="Update\IMachineStudioUpdateService.cs" /> @@ -163,6 +168,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Themes\Generic.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> </ItemGroup> <ItemGroup> <Compile Include="Properties\AssemblyInfo.cs"> @@ -287,9 +296,7 @@ <EmbedInteropTypes>True</EmbedInteropTypes> </COMReference> </ItemGroup> - <ItemGroup> - <Folder Include="MarkupExtensions\" /> - </ItemGroup> + <ItemGroup /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Themes/Generic.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Themes/Generic.xaml new file mode 100644 index 000000000..9cc398753 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Themes/Generic.xaml @@ -0,0 +1,31 @@ +<ResourceDictionary + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:local="clr-namespace:Tango.MachineStudio.Common.Controls"> + + <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> + <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> + + <Style TargetType="{x:Type local:LoadingPanel}"> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:LoadingPanel}"> + <Border Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}"> + + <Grid> + <ContentPresenter Content="{TemplateBinding Content}" /> + + <Grid Background="#60FFFFFF" Visibility="{TemplateBinding IsLoading,Converter={StaticResource BooleanToVisibilityConverter}}"> + <mahApps:ProgressRing IsActive="{TemplateBinding IsLoading}" /> + </Grid> + </Grid> + </Border> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> +</ResourceDictionary> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Threading/IDispatcherProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Threading/IDispatcherProvider.cs new file mode 100644 index 000000000..1c960ed3a --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Threading/IDispatcherProvider.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Threading +{ + /// <summary> + /// Represents a mechanism for invoking actions on the main application thread. + /// </summary> + public interface IDispatcherProvider + { + /// <summary> + /// Invokes the specified action asynchronously. + /// </summary> + /// <param name="action">The action.</param> + void Invoke(Action action); + + /// <summary> + /// Invokes the specified action synchronously. + /// </summary> + /// <param name="action">The action.</param> + void InvokeSync(Action action); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/app.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/app.config index 77b7003e2..0e58ccf54 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/app.config +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/app.config @@ -50,6 +50,10 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> <entityFramework> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj index 3d8330858..a79853910 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Installer/Tango.MachineStudio.Installer.vdproj @@ -15,116 +15,20 @@ { "Entry" { - "MsmKey" = "8:_00AB5F4CB0B9DCC466359F8589533B68" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_00AB5F4CB0B9DCC466359F8589533B68" - "OwnerKey" = "8:_94B0EAFC6BCADB7C6DC2EF31467C8C24" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_018A2A1E8555CACB14EEBBCFE003E82A" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_023CEE1263BC2659C4302E37A4F8A946" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_032C05575B795D1CAEDD5105F1520FBB" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_08C7D6D7EF105161BD48E61BBEBBF002" + "MsmKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_0B4B393563808E508848ED965CF47AEE" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -135,236 +39,38 @@ } "Entry" { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_4A177C28F7864675BCA7A0910494A760" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_EB16994750C856659A7BE41BD02F8ABE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_D6A37AFBBBDA445164B68F2E7D5B3E80" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0E196D84800B9656BC318F85626EFE05" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_13428C81458C52275C0A41D014521151" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_0D36BD88AEF84A1CA7AC32F4687643FD" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_13803D82858878E2D3953D4742A1A596" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_14CF2DBBA5462C65F94A9137DCE014F9" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_173C4B05CE04BA34E920DC64B25A8670" + "MsmKey" = "8:_136196DD2763419D959721C2BA143498" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_1CB515C82F6904C632717D23A858B116" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1910D5B276479C48B4F7762A638405F5" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_1EC9EA112C92712F7DD0290C02F8F1EB" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1BDA3B7B2EF85A48708A41568E05F63F" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_1EC9EA112C92712F7DD0290C02F8F1EB" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_201B65B789181625CAF1E7D925466231" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -387,368 +93,344 @@ } "Entry" { - "MsmKey" = "8:_201B65B789181625CAF1E7D925466231" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2423100AF29217C4332A90074E54D4D0" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_21E475E8F9DBB207476AD595250634BF" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_244F067B77DB6F9852E2286427480A18" + "MsmKey" = "8:_21E475E8F9DBB207476AD595250634BF" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2589A08E4AC51C4B69842E948EFC87DB" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_21E475E8F9DBB207476AD595250634BF" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_262CDE6547BE15C0065FC563C76194D2" - "OwnerKey" = "8:_BA22D23CB5304B5389C531581B1D5C63" + "MsmKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" + "OwnerKey" = "8:_386D8E25E67F7711289168ABA40EEA5D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_26BF1219019A4367BA3497A5899C05B1" + "MsmKey" = "8:_2797CFFB7DAA734F75BFE8FB845163D3" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_283F49175556E95BE98A7C8600F4030B" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_2797CFFB7DAA734F75BFE8FB845163D3" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2EB48F8299C56A3911017460C55FDA43" + "MsmKey" = "8:_2A67839C006307363A784C0284DC07B0" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2EB48F8299C56A3911017460C55FDA43" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_2A67839C006307363A784C0284DC07B0" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_30FDB43A5EE9C1E3839D05F6363080D6" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_30FDB43A5EE9C1E3839D05F6363080D6" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_88E760F600D2E195D8119F6014AB651E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2FA2B573783C66016BCED4EA9D33E5B6" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_B706D77ACF741812BE0E0A94728413E8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_359F09B8EC59D6FC1859EFF3D2274920" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_382ADCBEA6FF11871606FD406333761E" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_FB49CF72492394629C7D629F6FAB4446" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_5731AEC46C736AD3549A441125EE75F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" + "OwnerKey" = "8:_422EDE425080BE992A7471DEF2AB1103" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_39C2ACA7C5003F7A39323635C3B4B924" + "MsmKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_39DD938A5F3E194F296D11EA2F72EB3E" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_386D8E25E67F7711289168ABA40EEA5D" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_39DD938A5F3E194F296D11EA2F72EB3E" + "MsmKey" = "8:_386D8E25E67F7711289168ABA40EEA5D" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3B351F730871D9CC74A40D74B6C6E61A" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3C71904C35BED6686835B5A1C74768BE" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3E6534AA37C9012ED3BDF4DCB02EFDB6" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_419E2BE26037D1DF36751EB628D51EBC" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "MsmKey" = "8:_419E2BE26037D1DF36751EB628D51EBC" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_7F2A242EE11515CC12A6793521574B9B" + "OwnerKey" = "8:_8F71C11DA0BAD2C98087755DC7A25AD3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_42250239B4791E8133657256CCE3506C" - "OwnerKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_76136B423153FD040335B97D71CF6A3E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_422EDE425080BE992A7471DEF2AB1103" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4446241C89A5162FB80809A05F581472" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_448950FC944968D96107991185C22806" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_422EDE425080BE992A7471DEF2AB1103" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_448950FC944968D96107991185C22806" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_422EDE425080BE992A7471DEF2AB1103" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_448EC30219E98C0B91ABF43C7D4F223F" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_422EDE425080BE992A7471DEF2AB1103" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_448EC30219E98C0B91ABF43C7D4F223F" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_422EDE425080BE992A7471DEF2AB1103" + "OwnerKey" = "8:_DB4BF3BCEC4456BC4D94E6F732E82803" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4672E56FCA5A7523E491A1DF92B58426" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_437F8E654D5A08B1CA3EA7BCC8B911F9" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_47ECF1DA52157B12F544FB237D85F564" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_437F8E654D5A08B1CA3EA7BCC8B911F9" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_47ECF1DA52157B12F544FB237D85F564" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_4936236609673FB3A97D4EA723B1A767" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4A177C28F7864675BCA7A0910494A760" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_4936236609673FB3A97D4EA723B1A767" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4A177C28F7864675BCA7A0910494A760" + "MsmKey" = "8:_4936236609673FB3A97D4EA723B1A767" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_4A5E77F2FEA9C4080C8FD63B968FBE6C" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -759,86 +441,44 @@ } "Entry" { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" + "MsmKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4E399A139695EBD13928A80C850A7E9D" + "MsmKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4F605B43B6D1B3804C25477D671A9101" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_516016F1B93156015497DAD5F7FBE9A1" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4FC5C727C21C7B57C1E2B8E55A9E8748" + "MsmKey" = "8:_516016F1B93156015497DAD5F7FBE9A1" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_4FC5C727C21C7B57C1E2B8E55A9E8748" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_516016F1B93156015497DAD5F7FBE9A1" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -862,61 +502,55 @@ "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_EA4D0354739F3915FC03731153325AA5" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_51C4508525FA0604A9CD727897EBD530" - "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" + "OwnerKey" = "8:_C28A9B0313A578C409D1E57773FB001E" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -933,266 +567,158 @@ } "Entry" { - "MsmKey" = "8:_55D25B13F818972AA7BF22C7264EBB19" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5747A410B7984793A0F6D9121679C6F3" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "MsmKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "MsmKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5BB4E116AC988395D2A72901433A7CB9" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5BB4E116AC988395D2A72901433A7CB9" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5BB4E116AC988395D2A72901433A7CB9" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5C5582DB321E2CC26F8F1FBF8B4866F0" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_5731AEC46C736AD3549A441125EE75F9" + "OwnerKey" = "8:_FB49CF72492394629C7D629F6FAB4446" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" - "OwnerKey" = "8:_4DE31F37261519B6E72F89F737E10A45" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5DAE745CD40555B469B53E8DB8A5D7DA" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_62EC6F0F04E5435ABCC0479D48BEBE1B" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_633F9949B09BE13FCEC5B9CE99D81421" + "MsmKey" = "8:_6362DA873243657F5F1FD41C1A4E104A" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_633F9949B09BE13FCEC5B9CE99D81421" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_6362DA873243657F5F1FD41C1A4E104A" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_633F9949B09BE13FCEC5B9CE99D81421" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_6362DA873243657F5F1FD41C1A4E104A" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1222,7 +748,7 @@ "Entry" { "MsmKey" = "8:_64AD2A918B16AA625B839A6A2D4288AB" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -1233,1514 +759,1424 @@ } "Entry" { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" + "MsmKey" = "8:_705F2A9700A0B6F6A5308537C5F876EA" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" + "MsmKey" = "8:_709D007D7E89A10E63C141E3A08311FD" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6AE2958999F8B1E88D8475CB3E791CF2" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6AE2958999F8B1E88D8475CB3E791CF2" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6D9156D5DBF08959BE20FE18FA09E71A" + "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" + "OwnerKey" = "8:_73674B32069839371DC47411D1B7EBE0" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" + "MsmKey" = "8:_73674B32069839371DC47411D1B7EBE0" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_705F2A9700A0B6F6A5308537C5F876EA" + "MsmKey" = "8:_73674B32069839371DC47411D1B7EBE0" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_709D007D7E89A10E63C141E3A08311FD" + "MsmKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" + "MsmKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" + "MsmKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" - "OwnerKey" = "8:_73674B32069839371DC47411D1B7EBE0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_712AAF71834640D10C755D415AF2200C" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_73674B32069839371DC47411D1B7EBE0" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_73674B32069839371DC47411D1B7EBE0" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_8F71C11DA0BAD2C98087755DC7A25AD3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_76136B423153FD040335B97D71CF6A3E" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7A0D754929705CC64EF84E26BD75D642" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7E765F76FDFC3DCF4EAEB59B5546B063" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7F2A242EE11515CC12A6793521574B9B" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7F2A242EE11515CC12A6793521574B9B" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_847DE93907D7F6B17C0694F74120086B" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_877DF22E1E92563A6F4E77209D76B185" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_896E731F0FFC039A04E0A4482B3FED1F" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_90C6EB30636F05FB3DFD7C943DC16EAC" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A69315CD79099E601F096562C7406DF" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_712AAF71834640D10C755D415AF2200C" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_73674B32069839371DC47411D1B7EBE0" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_94B0EAFC6BCADB7C6DC2EF31467C8C24" + "MsmKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_95A39C4C0476DF1F27B60A43C00DEAB7" + "MsmKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_95A39C4C0476DF1F27B60A43C00DEAB7" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_7E765F76FDFC3DCF4EAEB59B5546B063" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_967E9E20CB6B9C494DFC2637B6384B13" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_967E9E20CB6B9C494DFC2637B6384B13" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_437F8E654D5A08B1CA3EA7BCC8B911F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_516016F1B93156015497DAD5F7FBE9A1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_983D79DC449AD65746DD38E6468BD886" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_1EC9EA112C92712F7DD0290C02F8F1EB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_98D5175644A3BC174BCA498A1B20FF84" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_4DE31F37261519B6E72F89F737E10A45" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "OwnerKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" + "OwnerKey" = "8:_C28A9B0313A578C409D1E57773FB001E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9CCA52D51EEDBFE9F9794A8ACD30D5D9" + "MsmKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A0C8023CFDF8E1966A878020945346CF" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_FB49CF72492394629C7D629F6FAB4446" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A2659FED3E8DE537BFD1EE3E6A429175" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A35B706F66B9C77B3D87D7B0FF53D652" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_A7976B20CB4BFC0F5C8BE15430B6005E" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AB0E0C1990036EFBAC9C728A9902D668" + "MsmKey" = "8:_847DE93907D7F6B17C0694F74120086B" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AC22B81E0F8A0CB4C79C8B878F2D1BCF" + "MsmKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AED50036F562B75035A039EECFC7BA07" + "MsmKey" = "8:_88E760F600D2E195D8119F6014AB651E" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_88E760F600D2E195D8119F6014AB651E" + "OwnerKey" = "8:_5731AEC46C736AD3549A441125EE75F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B12544C6B013F48780D190EB513A3B82" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B12544C6B013F48780D190EB513A3B82" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B12544C6B013F48780D190EB513A3B82" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B20313AE68F1E5D38CDE24036C32E69B" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B20313AE68F1E5D38CDE24036C32E69B" - "OwnerKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B78AD04F5CD695E22F6F139EAC69B5A5" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B78AD04F5CD695E22F6F139EAC69B5A5" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B78AD04F5CD695E22F6F139EAC69B5A5" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_B8EE1FC78F28FD0B62389E8796D603FB" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA22D23CB5304B5389C531581B1D5C63" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_8939008A4B57155156AE83AACC008030" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BA22D23CB5304B5389C531581B1D5C63" + "MsmKey" = "8:_89CF13C29028D3D7E6E68C097A72CB90" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_8F71C11DA0BAD2C98087755DC7A25AD3" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_8F71C11DA0BAD2C98087755DC7A25AD3" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" + "MsmKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_712AAF71834640D10C755D415AF2200C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_90D408142B1F2A9F72CBF42FC38348F0" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BF01A029E83A968C697506DFA469C90B" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BF01A029E83A968C697506DFA469C90B" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_BF01A029E83A968C697506DFA469C90B" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C179B63E2F5A58786B70FADA6C8496A5" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_73674B32069839371DC47411D1B7EBE0" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_92EADCA3313D55CFE2BB3BBA193941F3" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C658BF7DEB725E94A2BAF4FD48BAD3FA" + "MsmKey" = "8:_949EF578C14CE0D93133060EF66C018F" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C658BF7DEB725E94A2BAF4FD48BAD3FA" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_95EBE8B225CEEAD24E06F44863ABAECB" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_C6BFB4DAD78C1798616508141EF1234E" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_95EBE8B225CEEAD24E06F44863ABAECB" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" + "MsmKey" = "8:_98D5175644A3BC174BCA498A1B20FF84" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CC7BD04781686DE3403908303698199D" + "MsmKey" = "8:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_CCD49B330E05F963B5AE73E3D04F5762" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D09F278664B0560653FAC1AD0BCAE93F" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D0CFB25F1239503E9FE3881A033B3110" - "OwnerKey" = "8:_00AB5F4CB0B9DCC466359F8589533B68" + "MsmKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D0CFB25F1239503E9FE3881A033B3110" + "MsmKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D1CB239DDD65E78A28094BC854772AFF" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D3EF38D40E0CBE1BD391303952B0493E" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D48D475C8BD232C2AC87A2A7C6CCA53D" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D6A37AFBBBDA445164B68F2E7D5B3E80" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D6A37AFBBBDA445164B68F2E7D5B3E80" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D8A84B2F626300DA2E9147709713E9CB" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D947550594E2BF53BED76C7D7F9747D7" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_9A98137A42052685F51607892D00B8A0" + "OwnerKey" = "8:_8939008A4B57155156AE83AACC008030" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" + "MsmKey" = "8:_9C822EC8B208111C8872DC2C929B4F49" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_A1336C0121F3132E09400329ACD12B30" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "MsmKey" = "8:_A17D8A4EDE1F489FABA27DB45F1A3F56" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" + "MsmKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "OwnerKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" + "MsmKey" = "8:_AC9A178FF920FC61BC39E1F955343BF2" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DB4A94107FB1929721E56ED40844F276" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_AC9A178FF920FC61BC39E1F955343BF2" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC627D829804D2AC4A3984133840F2D5" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DCD0D71251FAABFB20D57E60AC3DEFA3" + "MsmKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DD10CB022785FD0CE997E8C7BC1D0FE6" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DD77D7B58FFDC37F83D85D632BEC9DC4" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_B0A07289218E6EFD42CF3518073813D6" + "OwnerKey" = "8:_1CB515C82F6904C632717D23A858B116" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DE3FACD5F197D2E261A0C6B32E0D1CAC" + "MsmKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_7F2A242EE11515CC12A6793521574B9B" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E0573A6D7543083D0A5654271DF50643" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_262CDE6547BE15C0065FC563C76194D2" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" + "MsmKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_4DE31F37261519B6E72F89F737E10A45" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" - "OwnerKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" + "MsmKey" = "8:_B706D77ACF741812BE0E0A94728413E8" + "OwnerKey" = "8:_FB49CF72492394629C7D629F6FAB4446" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E9B6634643306242F65E192204E9C56A" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_BA75D5EAA8F428D075548128CE91FDD3" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EA4D0354739F3915FC03731153325AA5" + "MsmKey" = "8:_BA75D5EAA8F428D075548128CE91FDD3" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EA4D0354739F3915FC03731153325AA5" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_EA4D0354739F3915FC03731153325AA5" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_BA75D5EAA8F428D075548128CE91FDD3" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB16994750C856659A7BE41BD02F8ABE" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_BD559C5264D2EB8DB2F96C7F161ECCFE" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB16994750C856659A7BE41BD02F8ABE" + "MsmKey" = "8:_BD559C5264D2EB8DB2F96C7F161ECCFE" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB16994750C856659A7BE41BD02F8ABE" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_C28A9B0313A578C409D1E57773FB001E" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" + "MsmKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "MsmKey" = "8:_C78640287566584857304B60C7E09D2E" + "OwnerKey" = "8:_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EB90C5C498BD80F4675C07A364C45E3D" + "MsmKey" = "8:_C78640287566584857304B60C7E09D2E" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EBFEF6DABA658232EC82197A8E01F66E" + "MsmKey" = "8:_C79F4B145CE2D951C3E342053EC26159" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_ED524252AD28281FAE5468349D0E5797" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_ED524252AD28281FAE5468349D0E5797" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "MsmKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EF2623DE67EDC70B584821A055B86302" + "MsmKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EF2898B0C9AAB2E33674325B9F86943B" + "MsmKey" = "8:_D09F278664B0560653FAC1AD0BCAE93F" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_5731AEC46C736AD3549A441125EE75F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F3898C4F454B4D1481E055F2AB2B217B" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_4936236609673FB3A97D4EA723B1A767" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F3D3908BF1850F33CACA8DC41CB6869E" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_8939008A4B57155156AE83AACC008030" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F46F8B020857673C983D66FE2F41B983" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F78136CC822CCB014A68583A48E41B1C" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_B706D77ACF741812BE0E0A94728413E8" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" - "OwnerKey" = "8:_633F9949B09BE13FCEC5B9CE99D81421" + "MsmKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" + "OwnerKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" + "MsmKey" = "8:_DB4BF3BCEC4456BC4D94E6F732E82803" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" + "MsmKey" = "8:_DB4BF3BCEC4456BC4D94E6F732E82803" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" + "MsmKey" = "8:_DB4BF3BCEC4456BC4D94E6F732E82803" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" + "MsmKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" + "MsmKey" = "8:_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_4DE31F37261519B6E72F89F737E10A45" + "MsmKey" = "8:_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" + "OwnerKey" = "8:_C79F4B145CE2D951C3E342053EC26159" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" + "MsmKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" + "MsmKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" + "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA58218115CCED35D22896A731510356" - "OwnerKey" = "8:_B20313AE68F1E5D38CDE24036C32E69B" + "MsmKey" = "8:_EB38C1BD04FDFE44579B9868D6D1E139" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FA997D5286D6E9EC1A80EB888D9FDA72" + "MsmKey" = "8:_ECDF8B3BECC1C92F35C36C2743D8E99E" "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_ECDF8B3BECC1C92F35C36C2743D8E99E" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" + "MsmKey" = "8:_ECDF8B3BECC1C92F35C36C2743D8E99E" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" + "MsmKey" = "8:_EF2898B0C9AAB2E33674325B9F86943B" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "MsmKey" = "8:_FB49CF72492394629C7D629F6FAB4446" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "MsmKey" = "8:_FF26B2424D1F2EB451FE2EDE8CD8D7CD" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "MsmKey" = "8:_FF26B2424D1F2EB451FE2EDE8CD8D7CD" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "MsmKey" = "8:_FF26B2424D1F2EB451FE2EDE8CD8D7CD" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "MsmKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" + "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "MsmKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -2806,55 +2242,43 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_13428C81458C52275C0A41D014521151" + "OwnerKey" = "8:_3737DF68C5D4F9EEA98383147C09217D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_382ADCBEA6FF11871606FD406333761E" + "OwnerKey" = "8:_89CF13C29028D3D7E6E68C097A72CB90" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C5718F2557E2B4CE76D02A14D19B0F00" + "OwnerKey" = "8:_401029CD43B9D1C7D6B8A91580C72246" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6AE2958999F8B1E88D8475CB3E791CF2" + "OwnerKey" = "8:_BD559C5264D2EB8DB2F96C7F161ECCFE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4A177C28F7864675BCA7A0910494A760" + "OwnerKey" = "8:_437F8E654D5A08B1CA3EA7BCC8B911F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1AB2D4983FA9742736ECF3B7F206F2F2" + "OwnerKey" = "8:_8533A0FC046C1B311644EB6565AADCF4" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5C9E5FF7D356A4422B8968FB61BDF478" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_7745EEBA3C6F32DA91434BF623E143C5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D528F21311ECF12D91A0EFF0F8DCA468" + "OwnerKey" = "8:_509008BF7DDF652EFD30748DF7B623AC" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -2872,61 +2296,61 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0E196D84800B9656BC318F85626EFE05" + "OwnerKey" = "8:_949EF578C14CE0D93133060EF66C018F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2423100AF29217C4332A90074E54D4D0" + "OwnerKey" = "8:_B0DC463AFB084472BA1EA9F43F930940" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2ED45DA7AF8B8894A38769DFF94F274F" + "OwnerKey" = "8:_7E089FB0FAFDC91358668C33586665F3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FAAE7C62982AB9171B3FF838FB304946" + "OwnerKey" = "8:_5147DA93AA30302C252F810D0809D8FB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4446241C89A5162FB80809A05F581472" + "OwnerKey" = "8:_FF9B3021994C6FE507A9C7BE198B6C03" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_47ECF1DA52157B12F544FB237D85F564" + "OwnerKey" = "8:_ACA4B81C7B67E4C6FD57C20AD15BF952" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_61ACBC61C06E40FB3AE4346599718EB4" + "OwnerKey" = "8:_38750CCB0CB6E026D5D88F129FB1013A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_059A6746A8576493957C8E5AF3CEB9D9" + "OwnerKey" = "8:_7A925C02110B1D4B95987D2EEEFE6FDE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" + "OwnerKey" = "8:_9A234F7FB4239AC3DB0DBE9415BDE695" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_7A0D754929705CC64EF84E26BD75D642" + "OwnerKey" = "8:_21E475E8F9DBB207476AD595250634BF" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -2938,67 +2362,61 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EB16994750C856659A7BE41BD02F8ABE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_7F2A242EE11515CC12A6793521574B9B" + "OwnerKey" = "8:_516016F1B93156015497DAD5F7FBE9A1" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D6A37AFBBBDA445164B68F2E7D5B3E80" + "OwnerKey" = "8:_8F71C11DA0BAD2C98087755DC7A25AD3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EA4D0354739F3915FC03731153325AA5" + "OwnerKey" = "8:_1EC9EA112C92712F7DD0290C02F8F1EB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C658BF7DEB725E94A2BAF4FD48BAD3FA" + "OwnerKey" = "8:_30FDB43A5EE9C1E3839D05F6363080D6" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B12544C6B013F48780D190EB513A3B82" + "OwnerKey" = "8:_6362DA873243657F5F1FD41C1A4E104A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5BB4E116AC988395D2A72901433A7CB9" + "OwnerKey" = "8:_FF26B2424D1F2EB451FE2EDE8CD8D7CD" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E9B6634643306242F65E192204E9C56A" + "OwnerKey" = "8:_DF9470C286C095EB5289BC0A57E7AA2C" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5A8B326A4A0607AFC366F8FD9657A87A" + "OwnerKey" = "8:_B0F63EB1426CCC22506AFCB6C5809138" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F1DFFB8E50BAD2529B0C859268ED8956" + "OwnerKey" = "8:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_75D29198D3E03B5554EF1C7382CF5B14" + "OwnerKey" = "8:_B363FB7BD2F44E6C8573500668C2C9D1" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -3010,7 +2428,7 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2F23291F311EE9576449E5628A5702AE" + "OwnerKey" = "8:_A9A74798DD330F41ADBD32DBB9480F5C" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -3034,55 +2452,55 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_69CC8DD07F81DD7EA883434F53157FBC" + "OwnerKey" = "8:_4936236609673FB3A97D4EA723B1A767" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_67EAE4B6E14417FC2BF4F4EBF4473A1E" + "OwnerKey" = "8:_5F07DDA90732658EC4A03117CF7DD774" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_38A402C026B59AE31D2CBB0235AF3368" + "OwnerKey" = "8:_C28A9B0313A578C409D1E57773FB001E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_94B0EAFC6BCADB7C6DC2EF31467C8C24" + "OwnerKey" = "8:_C79F4B145CE2D951C3E342053EC26159" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FC7C3735446215F02CF0C477948EAAFC" + "OwnerKey" = "8:_7A69315CD79099E601F096562C7406DF" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_201B65B789181625CAF1E7D925466231" + "OwnerKey" = "8:_51C4508525FA0604A9CD727897EBD530" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_51C4508525FA0604A9CD727897EBD530" + "OwnerKey" = "8:_76136B423153FD040335B97D71CF6A3E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DF6FFF88157E7FBCFB7E188431AAF4CF" + "OwnerKey" = "8:_7EBA1AC1C70BAC60E9165BB0A3640C98" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0D2EC478B8B5A060121B647E6BA3DE05" + "OwnerKey" = "8:_201B65B789181625CAF1E7D925466231" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -3100,601 +2518,193 @@ "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9758638AABE50C72FFA87E6544F6D70F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DB4941BAFA45E5921E7072990000621E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_00AB5F4CB0B9DCC466359F8589533B68" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D0CFB25F1239503E9FE3881A033B3110" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_922DFCAF3DE2758155669B16C5E04B95" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D949D70DDDDCF94CDCAD9B76A400C3D3" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B78AD04F5CD695E22F6F139EAC69B5A5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_95A39C4C0476DF1F27B60A43C00DEAB7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_56D463E782DDBEB9880013C0D31F3C99" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_17BFDCA42AB1DE7706418C4C953F856E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_39DD938A5F3E194F296D11EA2F72EB3E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_448950FC944968D96107991185C22806" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BA22D23CB5304B5389C531581B1D5C63" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_75EE66E420D1D88C8A6F9FAC15995211" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4DE31F37261519B6E72F89F737E10A45" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_262CDE6547BE15C0065FC563C76194D2" + "OwnerKey" = "8:_8939008A4B57155156AE83AACC008030" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E97069A1CAEDE89621181DEE3B97B547" + "OwnerKey" = "8:_9A98137A42052685F51607892D00B8A0" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5D31D40A55F64C363A1DE193E24D604B" + "OwnerKey" = "8:_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2EB48F8299C56A3911017460C55FDA43" + "OwnerKey" = "8:_C78640287566584857304B60C7E09D2E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_633F9949B09BE13FCEC5B9CE99D81421" + "OwnerKey" = "8:_74A44143E117110ECBFD7D981E9D6D99" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_877DF22E1E92563A6F4E77209D76B185" + "OwnerKey" = "8:_CAE724B9A481E2BAEC967AC01E7440FC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1AC47588060EAA9F2B7A13EC07359D10" + "OwnerKey" = "8:_0B42804156762B4BDCC3EF894CED60AC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C6BFB4DAD78C1798616508141EF1234E" + "OwnerKey" = "8:_BA75D5EAA8F428D075548128CE91FDD3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_032C05575B795D1CAEDD5105F1520FBB" + "OwnerKey" = "8:_AC9A178FF920FC61BC39E1F955343BF2" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3B351F730871D9CC74A40D74B6C6E61A" + "OwnerKey" = "8:_75673BFBCF71A9463483B9C1DE022EAB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2FA2B573783C66016BCED4EA9D33E5B6" + "OwnerKey" = "8:_E521ECFD6C000298EBF2C298D2E4376B" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1910D5B276479C48B4F7762A638405F5" + "OwnerKey" = "8:_419E2BE26037D1DF36751EB628D51EBC" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_1BDA3B7B2EF85A48708A41568E05F63F" + "OwnerKey" = "8:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DB4A94107FB1929721E56ED40844F276" + "OwnerKey" = "8:_53C4681D5305DDF26BFC8A4775CAF16E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4672E56FCA5A7523E491A1DF92B58426" + "OwnerKey" = "8:_386D8E25E67F7711289168ABA40EEA5D" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2444D22B50272EAE03F2B5D2457335EC" + "OwnerKey" = "8:_FB49CF72492394629C7D629F6FAB4446" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4F605B43B6D1B3804C25477D671A9101" + "OwnerKey" = "8:_80A5A4D5BE60BC865B4C5F64B5A09D47" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3E6534AA37C9012ED3BDF4DCB02EFDB6" + "OwnerKey" = "8:_B706D77ACF741812BE0E0A94728413E8" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_3C71904C35BED6686835B5A1C74768BE" + "OwnerKey" = "8:_269E1BD3A1EBC31895AD3845529D3A9A" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AF79FC974C2F42D24D74E5313E475E87" + "OwnerKey" = "8:_5731AEC46C736AD3549A441125EE75F9" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E0FCEE9366306B5A88DC7CF29E913A4B" + "OwnerKey" = "8:_D7FBEFA3359B5E4558E45316AF3159B0" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F78136CC822CCB014A68583A48E41B1C" + "OwnerKey" = "8:_2A67839C006307363A784C0284DC07B0" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F93FF260A2F031FD129C02F9FB2A6E9D" + "OwnerKey" = "8:_DB4BF3BCEC4456BC4D94E6F732E82803" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_ED524252AD28281FAE5468349D0E5797" + "OwnerKey" = "8:_422EDE425080BE992A7471DEF2AB1103" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BF01A029E83A968C697506DFA469C90B" + "OwnerKey" = "8:_95EBE8B225CEEAD24E06F44863ABAECB" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_55D25B13F818972AA7BF22C7264EBB19" + "OwnerKey" = "8:_ECDF8B3BECC1C92F35C36C2743D8E99E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B20313AE68F1E5D38CDE24036C32E69B" + "OwnerKey" = "8:_9C822EC8B208111C8872DC2C929B4F49" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FA58218115CCED35D22896A731510356" + "OwnerKey" = "8:_88E760F600D2E195D8119F6014AB651E" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D947550594E2BF53BED76C7D7F9747D7" + "OwnerKey" = "8:_36D30082439E3E9B7F5AAF6701F0C22F" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_B8EE1FC78F28FD0B62389E8796D603FB" + "OwnerKey" = "8:_2797CFFB7DAA734F75BFE8FB845163D3" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D3EF38D40E0CBE1BD391303952B0493E" + "OwnerKey" = "8:_1CB515C82F6904C632717D23A858B116" "MsmSig" = "8:_UNDEFINED" } "Entry" { "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_136196DD2763419D959721C2BA143498" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4E399A139695EBD13928A80C850A7E9D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_359F09B8EC59D6FC1859EFF3D2274920" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EBFEF6DABA658232EC82197A8E01F66E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DD10CB022785FD0CE997E8C7BC1D0FE6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_9CCA52D51EEDBFE9F9794A8ACD30D5D9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A7976B20CB4BFC0F5C8BE15430B6005E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A2659FED3E8DE537BFD1EE3E6A429175" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_983D79DC449AD65746DD38E6468BD886" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_26BF1219019A4367BA3497A5899C05B1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DC627D829804D2AC4A3984133840F2D5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_90C6EB30636F05FB3DFD7C943DC16EAC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D8A84B2F626300DA2E9147709713E9CB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D48D475C8BD232C2AC87A2A7C6CCA53D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_14CF2DBBA5462C65F94A9137DCE014F9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DE3FACD5F197D2E261A0C6B32E0D1CAC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_448EC30219E98C0B91ABF43C7D4F223F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DD77D7B58FFDC37F83D85D632BEC9DC4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A35B706F66B9C77B3D87D7B0FF53D652" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AED50036F562B75035A039EECFC7BA07" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5DAE745CD40555B469B53E8DB8A5D7DA" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_6D9156D5DBF08959BE20FE18FA09E71A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_D1CB239DDD65E78A28094BC854772AFF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_CC07BBC3C44CE424AA0EF90844590E4E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_2589A08E4AC51C4B69842E948EFC87DB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_967E9E20CB6B9C494DFC2637B6384B13" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_62EC6F0F04E5435ABCC0479D48BEBE1B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_39C2ACA7C5003F7A39323635C3B4B924" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_0B4B393563808E508848ED965CF47AEE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_08C7D6D7EF105161BD48E61BBEBBF002" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_A0C8023CFDF8E1966A878020945346CF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_896E731F0FFC039A04E0A4482B3FED1F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EF2623DE67EDC70B584821A055B86302" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_CCD49B330E05F963B5AE73E3D04F5762" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_244F067B77DB6F9852E2286427480A18" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AC22B81E0F8A0CB4C79C8B878F2D1BCF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_CC7BD04781686DE3403908303698199D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F46F8B020857673C983D66FE2F41B983" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4FC5C727C21C7B57C1E2B8E55A9E8748" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_5C5582DB321E2CC26F8F1FBF8B4866F0" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_DCD0D71251FAABFB20D57E60AC3DEFA3" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_C179B63E2F5A58786B70FADA6C8496A5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_FA997D5286D6E9EC1A80EB888D9FDA72" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_023CEE1263BC2659C4302E37A4F8A946" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_EB90C5C498BD80F4675C07A364C45E3D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_283F49175556E95BE98A7C8600F4030B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_E0573A6D7543083D0A5654271DF50643" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_F3D3908BF1850F33CACA8DC41CB6869E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_AB0E0C1990036EFBAC9C728A9902D668" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_018A2A1E8555CACB14EEBBCFE003E82A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_13803D82858878E2D3953D4742A1A596" + "OwnerKey" = "8:_B0A07289218E6EFD42CF3518073813D6" "MsmSig" = "8:_UNDEFINED" } } @@ -3705,7 +2715,7 @@ "DisplayName" = "8:Debug" "IsDebugOnly" = "11:TRUE" "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:..\\..\\Build\\Installers\\Machine Studio\\Debug\\Machine Studio Installer v1.0.0.5.msi" + "OutputFilename" = "8:..\\..\\Build\\Installers\\Machine Studio\\Debug\\Machine Studio Installer v3.0.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -3737,7 +2747,7 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:..\\..\\Build\\Installers\\Machine Studio\\Release\\Machine Studio Installer v1.0.0.5.msi" + "OutputFilename" = "8:..\\..\\Build\\Installers\\Machine Studio\\Release\\Machine Studio Installer v3.0.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" @@ -3792,170 +2802,20 @@ } "File" { - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_00AB5F4CB0B9DCC466359F8589533B68" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:RazorEngine, Version=3.10.0.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:RazorEngine.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_018A2A1E8555CACB14EEBBCFE003E82A" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Collections, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_018A2A1E8555CACB14EEBBCFE003E82A" - { - "Name" = "8:System.Collections.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Collections.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_023CEE1263BC2659C4302E37A4F8A946" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tools, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_023CEE1263BC2659C4302E37A4F8A946" - { - "Name" = "8:System.Diagnostics.Tools.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Diagnostics.Tools.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_032C05575B795D1CAEDD5105F1520FBB" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Text.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_032C05575B795D1CAEDD5105F1520FBB" - { - "Name" = "8:System.Text.RegularExpressions.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Text.RegularExpressions.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_059A6746A8576493957C8E5AF3CEB9D9" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Common, Version=2.0.23.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_059A6746A8576493957C8E5AF3CEB9D9" - { - "Name" = "8:Tango.MachineStudio.Common.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.MachineStudio.Common.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_08C7D6D7EF105161BD48E61BBEBBF002" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0B42804156762B4BDCC3EF894CED60AC" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_08C7D6D7EF105161BD48E61BBEBBF002" + "_0B42804156762B4BDCC3EF894CED60AC" { - "Name" = "8:System.Reflection.dll" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.Common.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Common.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -3973,37 +2833,6 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0B4B393563808E508848ED965CF47AEE" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Emit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_0B4B393563808E508848ED965CF47AEE" - { - "Name" = "8:System.Reflection.Emit.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Reflection.Emit.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0BF8133A6082FDD658EA3570802D86DE" { "AssemblyRegister" = "3:1" @@ -4035,168 +2864,12 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0D2EC478B8B5A060121B647E6BA3DE05" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Core, Version=2.0.26.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Core.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_0E196D84800B9656BC318F85626EFE05" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.MachineDesigner, Version=2.0.8.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_0E196D84800B9656BC318F85626EFE05" - { - "Name" = "8:Tango.MachineStudio.MachineDesigner.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.MachineStudio.MachineDesigner.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_13428C81458C52275C0A41D014521151" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.UsersAndRoles, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_13428C81458C52275C0A41D014521151" - { - "Name" = "8:Tango.MachineStudio.UsersAndRoles.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.MachineStudio.UsersAndRoles.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_13803D82858878E2D3953D4742A1A596" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Collections.Concurrent, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_13803D82858878E2D3953D4742A1A596" - { - "Name" = "8:System.Collections.Concurrent.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Collections.Concurrent.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_14CF2DBBA5462C65F94A9137DCE014F9" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0D36BD88AEF84A1CA7AC32F4687643FD" { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Xml, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_14CF2DBBA5462C65F94A9137DCE014F9" - { - "Name" = "8:System.Runtime.Serialization.Xml.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Runtime.Serialization.Xml.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_173C4B05CE04BA34E920DC64B25A8670" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Xml.ReaderWriter, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - } - "SourcePath" = "8:System.Xml.ReaderWriter.dll" - "TargetName" = "8:" + "SourcePath" = "8:..\\..\\Build\\Core\\Debug\\x86\\SQLite.Interop.dll" + "TargetName" = "8:SQLite.Interop.dll" "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Folder" = "8:_137C662BA6B24073AC58ED6C67DA7951" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -4208,49 +2881,23 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_17BFDCA42AB1DE7706418C4C953F856E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1CB515C82F6904C632717D23A858B116" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.Client.Interactive, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.VisualStudio.Services.Client.Interactive.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1910D5B276479C48B4F7762A638405F5" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" "ScatterAssemblies" { - "_1910D5B276479C48B4F7762A638405F5" + "_1CB515C82F6904C632717D23A858B116" { - "Name" = "8:System.Runtime.dll" + "Name" = "8:System.IO.Compression.FileSystem.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.dll" + "SourcePath" = "8:System.IO.Compression.FileSystem.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4268,82 +2915,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1AB2D4983FA9742736ECF3B7F206F2F2" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1EC9EA112C92712F7DD0290C02F8F1EB" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Synchronization, Version=2.0.9.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_1AB2D4983FA9742736ECF3B7F206F2F2" - { - "Name" = "8:Tango.MachineStudio.Synchronization.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Tango.MachineStudio.Synchronization.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1AC47588060EAA9F2B7A13EC07359D10" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Threading, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Editors, Version=2.0.19.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_1AC47588060EAA9F2B7A13EC07359D10" + "_1EC9EA112C92712F7DD0290C02F8F1EB" { - "Name" = "8:System.Threading.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Threading.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1BDA3B7B2EF85A48708A41568E05F63F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_1BDA3B7B2EF85A48708A41568E05F63F" - { - "Name" = "8:System.Runtime.Serialization.Primitives.dll" + "Name" = "8:Tango.Editors.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.Serialization.Primitives.dll" + "SourcePath" = "8:Tango.Editors.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4392,20 +2977,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2423100AF29217C4332A90074E54D4D0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_21E475E8F9DBB207476AD595250634BF" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.HardwareDesigner, Version=2.0.8.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:RealTimeGraphEx, Version=1.0.20.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_2423100AF29217C4332A90074E54D4D0" + "_21E475E8F9DBB207476AD595250634BF" { - "Name" = "8:Tango.MachineStudio.HardwareDesigner.dll" + "Name" = "8:RealTimeGraphEx.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.HardwareDesigner.dll" + "SourcePath" = "8:RealTimeGraphEx.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4423,20 +3008,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2444D22B50272EAE03F2B5D2457335EC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_269E1BD3A1EBC31895AD3845529D3A9A" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Reflection, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_2444D22B50272EAE03F2B5D2457335EC" + "_269E1BD3A1EBC31895AD3845529D3A9A" { - "Name" = "8:System.Reflection.dll" + "Name" = "8:Microsoft.TeamFoundation.Common.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.Common.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4454,77 +3039,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_244F067B77DB6F9852E2286427480A18" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.NetworkInformation, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_244F067B77DB6F9852E2286427480A18" - { - "Name" = "8:System.Net.NetworkInformation.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Net.NetworkInformation.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2589A08E4AC51C4B69842E948EFC87DB" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2797CFFB7DAA734F75BFE8FB845163D3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" "ScatterAssemblies" { - "_2589A08E4AC51C4B69842E948EFC87DB" + "_2797CFFB7DAA734F75BFE8FB845163D3" { - "Name" = "8:System.Reflection.Primitives.dll" - "Attributes" = "3:0" + "Name" = "8:System.Net.Http.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.Primitives.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_262CDE6547BE15C0065FC563C76194D2" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.Common.dll" + "SourcePath" = "8:System.Net.Http.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4542,76 +3070,19 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_26BF1219019A4367BA3497A5899C05B1" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2A67839C006307363A784C0284DC07B0" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ServiceModel.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_26BF1219019A4367BA3497A5899C05B1" - { - "Name" = "8:System.ServiceModel.Primitives.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ServiceModel.Primitives.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_283F49175556E95BE98A7C8600F4030B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Contracts, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.ServiceBus, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_283F49175556E95BE98A7C8600F4030B" + "_2A67839C006307363A784C0284DC07B0" { - "Name" = "8:System.Diagnostics.Contracts.dll" - "Attributes" = "3:0" + "Name" = "8:Microsoft.ServiceBus.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Diagnostics.Contracts.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2EB48F8299C56A3911017460C55FDA43" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.ServiceBus, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } "SourcePath" = "8:Microsoft.ServiceBus.dll" "TargetName" = "8:" "Tag" = "8:" @@ -4630,46 +3101,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2ED45DA7AF8B8894A38769DFF94F274F" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_30FDB43A5EE9C1E3839D05F6363080D6" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Developer, Version=2.0.15.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.CSV, Version=2.0.17.1657, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_2ED45DA7AF8B8894A38769DFF94F274F" + "_30FDB43A5EE9C1E3839D05F6363080D6" { - "Name" = "8:Tango.MachineStudio.Developer.dll" + "Name" = "8:Tango.CSV.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.Developer.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2F23291F311EE9576449E5628A5702AE" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Transport, Version=2.0.25.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Transport.dll" + "SourcePath" = "8:Tango.CSV.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4687,20 +3132,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_2FA2B573783C66016BCED4EA9D33E5B6" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_36D30082439E3E9B7F5AAF6701F0C22F" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Text.Encoding.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_2FA2B573783C66016BCED4EA9D33E5B6" + "_36D30082439E3E9B7F5AAF6701F0C22F" { - "Name" = "8:System.Text.Encoding.Extensions.dll" + "Name" = "8:System.Net.Http.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Text.Encoding.Extensions.dll" + "SourcePath" = "8:System.Net.Http.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4718,77 +3163,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_359F09B8EC59D6FC1859EFF3D2274920" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Threading.Tasks.Parallel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_359F09B8EC59D6FC1859EFF3D2274920" - { - "Name" = "8:System.Threading.Tasks.Parallel.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Threading.Tasks.Parallel.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_382ADCBEA6FF11871606FD406333761E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3737DF68C5D4F9EEA98383147C09217D" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Updater, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.UsersAndRoles, Version=2.0.9.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_382ADCBEA6FF11871606FD406333761E" + "_3737DF68C5D4F9EEA98383147C09217D" { - "Name" = "8:Tango.MachineStudio.Updater.exe" + "Name" = "8:Tango.MachineStudio.UsersAndRoles.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.Updater.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_38A402C026B59AE31D2CBB0235AF3368" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.DAL.Remote, Version=2.0.25.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.DAL.Remote.dll" + "SourcePath" = "8:Tango.MachineStudio.UsersAndRoles.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4806,46 +3194,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_39C2ACA7C5003F7A39323635C3B4B924" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_386D8E25E67F7711289168ABA40EEA5D" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Emit.ILGeneration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Diff, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_39C2ACA7C5003F7A39323635C3B4B924" + "_386D8E25E67F7711289168ABA40EEA5D" { - "Name" = "8:System.Reflection.Emit.ILGeneration.dll" - "Attributes" = "3:0" + "Name" = "8:Microsoft.TeamFoundation.Diff.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.Emit.ILGeneration.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_39DD938A5F3E194F296D11EA2F72EB3E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.IdentityModel.Tokens.Jwt, Version=4.0.20622.1351, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:System.IdentityModel.Tokens.Jwt.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.Diff.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4863,20 +3225,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3B351F730871D9CC74A40D74B6C6E61A" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_38750CCB0CB6E026D5D88F129FB1013A" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Text.Encoding, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.ColorLab, Version=2.0.10.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_3B351F730871D9CC74A40D74B6C6E61A" + "_38750CCB0CB6E026D5D88F129FB1013A" { - "Name" = "8:System.Text.Encoding.dll" + "Name" = "8:Tango.MachineStudio.ColorLab.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Text.Encoding.dll" + "SourcePath" = "8:Tango.MachineStudio.ColorLab.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4894,20 +3256,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3C71904C35BED6686835B5A1C74768BE" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_401029CD43B9D1C7D6B8A91580C72246" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Globalization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Technician, Version=2.0.14.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_3C71904C35BED6686835B5A1C74768BE" + "_401029CD43B9D1C7D6B8A91580C72246" { - "Name" = "8:System.Globalization.dll" + "Name" = "8:Tango.MachineStudio.Technician.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Globalization.dll" + "SourcePath" = "8:Tango.MachineStudio.Technician.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4925,20 +3287,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_3E6534AA37C9012ED3BDF4DCB02EFDB6" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_419E2BE26037D1DF36751EB628D51EBC" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.IdentityModel.Tokens.Jwt, Version=4.0.20622.1351, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_3E6534AA37C9012ED3BDF4DCB02EFDB6" + "_419E2BE26037D1DF36751EB628D51EBC" { - "Name" = "8:System.IO.dll" + "Name" = "8:System.IdentityModel.Tokens.Jwt.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.IO.dll" + "SourcePath" = "8:System.IdentityModel.Tokens.Jwt.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -4987,108 +3349,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4446241C89A5162FB80809A05F581472" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_422EDE425080BE992A7471DEF2AB1103" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.DataCapture, Version=2.0.8.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory, Version=3.19.8.16603, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_4446241C89A5162FB80809A05F581472" + "_422EDE425080BE992A7471DEF2AB1103" { - "Name" = "8:Tango.MachineStudio.DataCapture.dll" + "Name" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.DataCapture.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_448950FC944968D96107991185C22806" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Work.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.Work.WebApi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_448EC30219E98C0B91ABF43C7D4F223F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_448EC30219E98C0B91ABF43C7D4F223F" - { - "Name" = "8:System.Runtime.Serialization.Json.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Runtime.Serialization.Json.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4672E56FCA5A7523E491A1DF92B58426" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_4672E56FCA5A7523E491A1DF92B58426" - { - "Name" = "8:System.Runtime.Extensions.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Runtime.Extensions.dll" + "SourcePath" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5106,20 +3380,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_47ECF1DA52157B12F544FB237D85F564" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_437F8E654D5A08B1CA3EA7BCC8B911F9" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Logging, Version=2.0.15.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Visuals, Version=2.0.8.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_47ECF1DA52157B12F544FB237D85F564" + "_437F8E654D5A08B1CA3EA7BCC8B911F9" { - "Name" = "8:Tango.MachineStudio.Logging.dll" + "Name" = "8:Tango.Visuals.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.Logging.dll" + "SourcePath" = "8:Tango.Visuals.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5137,20 +3411,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4A177C28F7864675BCA7A0910494A760" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4936236609673FB3A97D4EA723B1A767" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Visuals, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Serialization, Version=2.0.27.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_4A177C28F7864675BCA7A0910494A760" + "_4936236609673FB3A97D4EA723B1A767" { - "Name" = "8:Tango.Visuals.dll" + "Name" = "8:Tango.Serialization.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Visuals.dll" + "SourcePath" = "8:Tango.Serialization.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5199,15 +3473,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4DE31F37261519B6E72F89F737E10A45" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_509008BF7DDF652EFD30748DF7B623AC" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Stubs, Version=2.0.9.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_509008BF7DDF652EFD30748DF7B623AC" + { + "Name" = "8:Tango.Stubs.dll" + "Attributes" = "3:512" + } } - "SourcePath" = "8:Microsoft.VisualStudio.Services.WebApi.dll" + "SourcePath" = "8:Tango.Stubs.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5225,51 +3504,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4E399A139695EBD13928A80C850A7E9D" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5147DA93AA30302C252F810D0809D8FB" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Threading.Timer, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_4E399A139695EBD13928A80C850A7E9D" - { - "Name" = "8:System.Threading.Timer.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Threading.Timer.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4F605B43B6D1B3804C25477D671A9101" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Net.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.DB, Version=2.0.9.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_4F605B43B6D1B3804C25477D671A9101" + "_5147DA93AA30302C252F810D0809D8FB" { - "Name" = "8:System.Net.Primitives.dll" + "Name" = "8:Tango.MachineStudio.DB.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Net.Primitives.dll" + "SourcePath" = "8:Tango.MachineStudio.DB.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5287,26 +3535,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4FC5C727C21C7B57C1E2B8E55A9E8748" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_516016F1B93156015497DAD5F7FBE9A1" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.Video, Version=2.0.19.1159, Culture=neutral, processorArchitecture=x86" "ScatterAssemblies" { - "_4FC5C727C21C7B57C1E2B8E55A9E8748" + "_516016F1B93156015497DAD5F7FBE9A1" { - "Name" = "8:System.Linq.dll" - "Attributes" = "3:0" + "Name" = "8:Tango.Video.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Linq.dll" + "SourcePath" = "8:Tango.Video.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -5314,7 +3562,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -5380,123 +3628,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_55D25B13F818972AA7BF22C7264EBB19" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_53C4681D5305DDF26BFC8A4775CAF16E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_55D25B13F818972AA7BF22C7264EBB19" - { - "Name" = "8:System.Windows.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Windows.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_56D463E782DDBEB9880013C0D31F3C99" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.Client.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5747A410B7984793A0F6D9121679C6F3" - { - "SourcePath" = "8:..\\..\\Build\\Debug\\x86\\SQLite.Interop.dll" - "TargetName" = "8:SQLite.Interop.dll" - "Tag" = "8:" - "Folder" = "8:_137C662BA6B24073AC58ED6C67DA7951" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5A8B326A4A0607AFC366F8FD9657A87A" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.SharedUI, Version=2.0.24.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.SharedUI.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5BB4E116AC988395D2A72901433A7CB9" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.BrushPicker, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_5BB4E116AC988395D2A72901433A7CB9" + "_53C4681D5305DDF26BFC8A4775CAF16E" { - "Name" = "8:Tango.BrushPicker.dll" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.BrushPicker.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5514,20 +3659,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5C5582DB321E2CC26F8F1FBF8B4866F0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5731AEC46C736AD3549A441125EE75F9" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.IO, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_5C5582DB321E2CC26F8F1FBF8B4866F0" + "_5731AEC46C736AD3549A441125EE75F9" { - "Name" = "8:System.IO.dll" + "Name" = "8:Microsoft.VisualStudio.Services.Common.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.IO.dll" + "SourcePath" = "8:Microsoft.VisualStudio.Services.Common.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5545,46 +3690,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5C9E5FF7D356A4422B8968FB61BDF478" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5F07DDA90732658EC4A03117CF7DD774" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Synchronization, Version=2.0.14.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.DragAndDrop, Version=2.0.25.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_5C9E5FF7D356A4422B8968FB61BDF478" + "_5F07DDA90732658EC4A03117CF7DD774" { - "Name" = "8:Tango.Synchronization.dll" + "Name" = "8:Tango.DragAndDrop.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Synchronization.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5D31D40A55F64C363A1DE193E24D604B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Newtonsoft.Json.dll" + "SourcePath" = "8:Tango.DragAndDrop.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5602,108 +3721,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5DAE745CD40555B469B53E8DB8A5D7DA" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Handles, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_5DAE745CD40555B469B53E8DB8A5D7DA" - { - "Name" = "8:System.Runtime.Handles.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Runtime.Handles.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_61ACBC61C06E40FB3AE4346599718EB4" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6362DA873243657F5F1FD41C1A4E104A" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.ColorLab, Version=2.0.8.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.ColorPicker, Version=2.0.19.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_61ACBC61C06E40FB3AE4346599718EB4" + "_6362DA873243657F5F1FD41C1A4E104A" { - "Name" = "8:Tango.MachineStudio.ColorLab.dll" + "Name" = "8:Tango.ColorPicker.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.ColorLab.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_62EC6F0F04E5435ABCC0479D48BEBE1B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Emit.Lightweight, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_62EC6F0F04E5435ABCC0479D48BEBE1B" - { - "Name" = "8:System.Reflection.Emit.Lightweight.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Reflection.Emit.Lightweight.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_633F9949B09BE13FCEC5B9CE99D81421" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, Version=3.13.5.907, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll" + "SourcePath" = "8:Tango.ColorPicker.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -5752,146 +3783,6 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_67EAE4B6E14417FC2BF4F4EBF4473A1E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.DragAndDrop, Version=2.0.23.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.DragAndDrop.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_69CC8DD07F81DD7EA883434F53157FBC" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Serialization, Version=2.0.25.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Serialization.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6AE2958999F8B1E88D8475CB3E791CF2" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:WpfAnimatedGif, Version=1.4.14.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_6AE2958999F8B1E88D8475CB3E791CF2" - { - "Name" = "8:WpfAnimatedGif.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:WpfAnimatedGif.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6D9156D5DBF08959BE20FE18FA09E71A" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Extensions, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_6D9156D5DBF08959BE20FE18FA09E71A" - { - "Name" = "8:System.Runtime.Extensions.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Runtime.Extensions.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6E2E48228E9ADAD05ABEFB8E7A69DCCC" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Common.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_705F2A9700A0B6F6A5308537C5F876EA" { "AssemblyRegister" = "3:1" @@ -6016,72 +3907,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_75D29198D3E03B5554EF1C7382CF5B14" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Integration, Version=2.0.25.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Integration.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_75EE66E420D1D88C8A6F9FAC15995211" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_74A44143E117110ECBFD7D981E9D6D99" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Core.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.Core.WebApi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7745EEBA3C6F32DA91434BF623E143C5" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Stubs, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_7745EEBA3C6F32DA91434BF623E143C5" + "_74A44143E117110ECBFD7D981E9D6D99" { - "Name" = "8:Tango.MachineStudio.Stubs.dll" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.Stubs.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6099,20 +3938,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7A0D754929705CC64EF84E26BD75D642" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_75673BFBCF71A9463483B9C1DE022EAB" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:RealTimeGraphEx, Version=1.0.17.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_7A0D754929705CC64EF84E26BD75D642" + "_75673BFBCF71A9463483B9C1DE022EAB" { - "Name" = "8:RealTimeGraphEx.dll" + "Name" = "8:Microsoft.TeamFoundation.Client.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:RealTimeGraphEx.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.Client.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6130,20 +3969,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7E765F76FDFC3DCF4EAEB59B5546B063" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_76136B423153FD040335B97D71CF6A3E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.PMR, Version=2.0.36.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_7E765F76FDFC3DCF4EAEB59B5546B063" + "_76136B423153FD040335B97D71CF6A3E" { - "Name" = "8:MaterialDesignColors.dll" + "Name" = "8:Tango.PMR.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:MaterialDesignColors.dll" + "SourcePath" = "8:Tango.PMR.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6161,20 +4000,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7F2A242EE11515CC12A6793521574B9B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7A69315CD79099E601F096562C7406DF" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.EmbroideryUI, Version=1.0.5.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.BL, Version=2.0.32.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_7F2A242EE11515CC12A6793521574B9B" + "_7A69315CD79099E601F096562C7406DF" { - "Name" = "8:Tango.EmbroideryUI.dll" + "Name" = "8:Tango.BL.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.EmbroideryUI.dll" + "SourcePath" = "8:Tango.BL.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6192,20 +4031,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_847DE93907D7F6B17C0694F74120086B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7A925C02110B1D4B95987D2EEEFE6FDE" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:FontAwesome.WPF, Version=4.7.0.37774, Culture=neutral, PublicKeyToken=0758b07a11a4f466, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Common, Version=2.0.26.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_847DE93907D7F6B17C0694F74120086B" + "_7A925C02110B1D4B95987D2EEEFE6FDE" { - "Name" = "8:FontAwesome.WPF.dll" + "Name" = "8:Tango.MachineStudio.Common.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:FontAwesome.WPF.dll" + "SourcePath" = "8:Tango.MachineStudio.Common.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6223,20 +4062,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_877DF22E1E92563A6F4E77209D76B185" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7E089FB0FAFDC91358668C33586665F3" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Xml.XDocument, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Developer, Version=2.0.17.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_877DF22E1E92563A6F4E77209D76B185" + "_7E089FB0FAFDC91358668C33586665F3" { - "Name" = "8:System.Xml.XDocument.dll" + "Name" = "8:Tango.MachineStudio.Developer.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Xml.XDocument.dll" + "SourcePath" = "8:Tango.MachineStudio.Developer.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6254,57 +4093,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_896E731F0FFC039A04E0A4482B3FED1F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.WebHeaderCollection, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_896E731F0FFC039A04E0A4482B3FED1F" - { - "Name" = "8:System.Net.WebHeaderCollection.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Net.WebHeaderCollection.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_90C6EB30636F05FB3DFD7C943DC16EAC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7E765F76FDFC3DCF4EAEB59B5546B063" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ServiceModel.Http, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_90C6EB30636F05FB3DFD7C943DC16EAC" + "_7E765F76FDFC3DCF4EAEB59B5546B063" { - "Name" = "8:System.ServiceModel.Http.dll" - "Attributes" = "3:0" + "Name" = "8:MaterialDesignColors.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.ServiceModel.Http.dll" + "SourcePath" = "8:MaterialDesignColors.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -6312,24 +4120,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_90D408142B1F2A9F72CBF42FC38348F0" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_7EBA1AC1C70BAC60E9165BB0A3640C98" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reactive.Windows.Threading, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.Core, Version=2.0.29.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_90D408142B1F2A9F72CBF42FC38348F0" + "_7EBA1AC1C70BAC60E9165BB0A3640C98" { - "Name" = "8:System.Reactive.Windows.Threading.dll" + "Name" = "8:Tango.Core.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reactive.Windows.Threading.dll" + "SourcePath" = "8:Tango.Core.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6347,15 +4155,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_922DFCAF3DE2758155669B16C5E04B95" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_80A5A4D5BE60BC865B4C5F64B5A09D47" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { + "_80A5A4D5BE60BC865B4C5F64B5A09D47" + { + "Name" = "8:Microsoft.VisualStudio.Services.WebApi.dll" + "Attributes" = "3:512" + } } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.dll" + "SourcePath" = "8:Microsoft.VisualStudio.Services.WebApi.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6373,20 +4186,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_92EADCA3313D55CFE2BB3BBA193941F3" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_847DE93907D7F6B17C0694F74120086B" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:FontAwesome.WPF, Version=4.7.0.37774, Culture=neutral, PublicKeyToken=0758b07a11a4f466, processorArchitecture=MSIL" "ScatterAssemblies" { - "_92EADCA3313D55CFE2BB3BBA193941F3" + "_847DE93907D7F6B17C0694F74120086B" { - "Name" = "8:System.Reactive.Core.dll" + "Name" = "8:FontAwesome.WPF.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reactive.Core.dll" + "SourcePath" = "8:FontAwesome.WPF.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6404,15 +4217,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_94B0EAFC6BCADB7C6DC2EF31467C8C24" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8533A0FC046C1B311644EB6565AADCF4" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.CodeGeneration, Version=2.0.14.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Stubs, Version=2.0.9.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_8533A0FC046C1B311644EB6565AADCF4" + { + "Name" = "8:Tango.MachineStudio.Stubs.dll" + "Attributes" = "3:512" + } } - "SourcePath" = "8:Tango.CodeGeneration.dll" + "SourcePath" = "8:Tango.MachineStudio.Stubs.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6430,15 +4248,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_95A39C4C0476DF1F27B60A43C00DEAB7" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_88E760F600D2E195D8119F6014AB651E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" "ScatterAssemblies" { + "_88E760F600D2E195D8119F6014AB651E" + { + "Name" = "8:System.Net.Http.WebRequest.dll" + "Attributes" = "3:512" + } } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" + "SourcePath" = "8:System.Net.Http.WebRequest.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6456,45 +4279,19 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_967E9E20CB6B9C494DFC2637B6384B13" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8939008A4B57155156AE83AACC008030" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Reflection.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.Settings, Version=2.0.27.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_967E9E20CB6B9C494DFC2637B6384B13" + "_8939008A4B57155156AE83AACC008030" { - "Name" = "8:System.Reflection.Extensions.dll" - "Attributes" = "3:0" + "Name" = "8:Tango.Settings.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Reflection.Extensions.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9758638AABE50C72FFA87E6544F6D70F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Settings, Version=2.0.25.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } "SourcePath" = "8:Tango.Settings.dll" "TargetName" = "8:" "Tag" = "8:" @@ -6513,77 +4310,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_983D79DC449AD65746DD38E6468BD886" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ServiceModel.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_983D79DC449AD65746DD38E6468BD886" - { - "Name" = "8:System.ServiceModel.Security.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ServiceModel.Security.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_98D5175644A3BC174BCA498A1B20FF84" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_89CF13C29028D3D7E6E68C097A72CB90" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Dragablz, Version=0.0.3.197, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Updater, Version=2.0.8.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_98D5175644A3BC174BCA498A1B20FF84" + "_89CF13C29028D3D7E6E68C097A72CB90" { - "Name" = "8:Dragablz.dll" + "Name" = "8:Tango.MachineStudio.Updater.exe" "Attributes" = "3:512" } } - "SourcePath" = "8:Dragablz.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_99DE0EEEA77B1C8F35CBE84DD3C935C4" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:System.Net.Http.Formatting.dll" + "SourcePath" = "8:Tango.MachineStudio.Updater.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6601,20 +4341,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9CCA52D51EEDBFE9F9794A8ACD30D5D9" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_8F71C11DA0BAD2C98087755DC7A25AD3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Text.RegularExpressions, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.EmbroideryUI, Version=1.0.7.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_9CCA52D51EEDBFE9F9794A8ACD30D5D9" + "_8F71C11DA0BAD2C98087755DC7A25AD3" { - "Name" = "8:System.Text.RegularExpressions.dll" + "Name" = "8:Tango.EmbroideryUI.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Text.RegularExpressions.dll" + "SourcePath" = "8:Tango.EmbroideryUI.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6632,20 +4372,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A0C8023CFDF8E1966A878020945346CF" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_90D408142B1F2A9F72CBF42FC38348F0" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ObjectModel, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Reactive.Windows.Threading, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A0C8023CFDF8E1966A878020945346CF" + "_90D408142B1F2A9F72CBF42FC38348F0" { - "Name" = "8:System.ObjectModel.dll" + "Name" = "8:System.Reactive.Windows.Threading.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.ObjectModel.dll" + "SourcePath" = "8:System.Reactive.Windows.Threading.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6663,20 +4403,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A1336C0121F3132E09400329ACD12B30" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_92EADCA3313D55CFE2BB3BBA193941F3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:SimpleValidator, Version=0.6.1.0, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A1336C0121F3132E09400329ACD12B30" + "_92EADCA3313D55CFE2BB3BBA193941F3" { - "Name" = "8:SimpleValidator.dll" + "Name" = "8:System.Reactive.Core.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:SimpleValidator.dll" + "SourcePath" = "8:System.Reactive.Core.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6694,20 +4434,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A2659FED3E8DE537BFD1EE3E6A429175" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_949EF578C14CE0D93133060EF66C018F" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Text.Encoding, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.MachineDesigner, Version=2.0.10.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A2659FED3E8DE537BFD1EE3E6A429175" + "_949EF578C14CE0D93133060EF66C018F" { - "Name" = "8:System.Text.Encoding.dll" + "Name" = "8:Tango.MachineStudio.MachineDesigner.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Text.Encoding.dll" + "SourcePath" = "8:Tango.MachineStudio.MachineDesigner.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6725,51 +4465,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A35B706F66B9C77B3D87D7B0FF53D652" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_95EBE8B225CEEAD24E06F44863ABAECB" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_A35B706F66B9C77B3D87D7B0FF53D652" - { - "Name" = "8:System.Runtime.InteropServices.WindowsRuntime.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Runtime.InteropServices.WindowsRuntime.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A7976B20CB4BFC0F5C8BE15430B6005E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Text.Encoding.Extensions, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:ICSharpCode.AvalonEdit, Version=1.0.18.1933, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_A7976B20CB4BFC0F5C8BE15430B6005E" + "_95EBE8B225CEEAD24E06F44863ABAECB" { - "Name" = "8:System.Text.Encoding.Extensions.dll" + "Name" = "8:ICSharpCode.AvalonEdit.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Text.Encoding.Extensions.dll" + "SourcePath" = "8:ICSharpCode.AvalonEdit.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6787,82 +4496,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AB0E0C1990036EFBAC9C728A9902D668" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ComponentModel.Annotations, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_AB0E0C1990036EFBAC9C728A9902D668" - { - "Name" = "8:System.ComponentModel.Annotations.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ComponentModel.Annotations.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AC22B81E0F8A0CB4C79C8B878F2D1BCF" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Linq.Queryable, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_AC22B81E0F8A0CB4C79C8B878F2D1BCF" - { - "Name" = "8:System.Linq.Queryable.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Linq.Queryable.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AED50036F562B75035A039EECFC7BA07" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_98D5175644A3BC174BCA498A1B20FF84" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Dragablz, Version=0.0.3.197, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_AED50036F562B75035A039EECFC7BA07" + "_98D5175644A3BC174BCA498A1B20FF84" { - "Name" = "8:System.Runtime.InteropServices.dll" + "Name" = "8:Dragablz.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.InteropServices.dll" + "SourcePath" = "8:Dragablz.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6880,20 +4527,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AF79FC974C2F42D24D74E5313E475E87" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Debug, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.Scripting, Version=2.0.26.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_AF79FC974C2F42D24D74E5313E475E87" + "_99DFCB38D3C7E1A7AC6AE6E2397D5EAE" { - "Name" = "8:System.Diagnostics.Debug.dll" + "Name" = "8:Tango.Scripting.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Diagnostics.Debug.dll" + "SourcePath" = "8:Tango.Scripting.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6911,20 +4558,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B12544C6B013F48780D190EB513A3B82" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9A234F7FB4239AC3DB0DBE9415BDE695" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.ColorPicker, Version=2.0.17.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.AutoComplete, Version=1.0.20.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_B12544C6B013F48780D190EB513A3B82" + "_9A234F7FB4239AC3DB0DBE9415BDE695" { - "Name" = "8:Tango.ColorPicker.dll" + "Name" = "8:Tango.AutoComplete.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.ColorPicker.dll" + "SourcePath" = "8:Tango.AutoComplete.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6942,46 +4589,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B20313AE68F1E5D38CDE24036C32E69B" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9A98137A42052685F51607892D00B8A0" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.Logging, Version=2.0.33.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_B20313AE68F1E5D38CDE24036C32E69B" + "_9A98137A42052685F51607892D00B8A0" { - "Name" = "8:System.Net.Http.WebRequest.dll" + "Name" = "8:Tango.Logging.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Net.Http.WebRequest.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B78AD04F5CD695E22F6F139EAC69B5A5" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" + "SourcePath" = "8:Tango.Logging.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -6999,20 +4620,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B8EE1FC78F28FD0B62389E8796D603FB" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_9C822EC8B208111C8872DC2C929B4F49" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Xml.XmlSerializer, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" "ScatterAssemblies" { - "_B8EE1FC78F28FD0B62389E8796D603FB" + "_9C822EC8B208111C8872DC2C929B4F49" { - "Name" = "8:System.Xml.XmlSerializer.dll" + "Name" = "8:System.Windows.dll" "Attributes" = "3:0" } } - "SourcePath" = "8:System.Xml.XmlSerializer.dll" + "SourcePath" = "8:System.Windows.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7030,46 +4651,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BA22D23CB5304B5389C531581B1D5C63" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Diff, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.TeamFoundation.Diff.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BDEEC0B558BD7D7AF03CB6049BCEBDAC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A1336C0121F3132E09400329ACD12B30" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.AutoComplete, Version=1.0.17.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:SimpleValidator, Version=0.6.1.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_BDEEC0B558BD7D7AF03CB6049BCEBDAC" + "_A1336C0121F3132E09400329ACD12B30" { - "Name" = "8:Tango.AutoComplete.dll" + "Name" = "8:SimpleValidator.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.AutoComplete.dll" + "SourcePath" = "8:SimpleValidator.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7087,18 +4682,12 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BF01A029E83A968C697506DFA469C90B" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A17D8A4EDE1F489FABA27DB45F1A3F56" { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ColorMine, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:ColorMine.dll" - "TargetName" = "8:" + "SourcePath" = "8:..\\..\\Build\\Core\\Debug\\x64\\SQLite.Interop.dll" + "TargetName" = "8:SQLite.Interop.dll" "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" + "Folder" = "8:_37D35F637FDD433095D8A36CAA7424C8" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -7110,29 +4699,29 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C179B63E2F5A58786B70FADA6C8496A5" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_A9A74798DD330F41ADBD32DBB9480F5C" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Dynamic.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.Transport, Version=2.0.28.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C179B63E2F5A58786B70FADA6C8496A5" + "_A9A74798DD330F41ADBD32DBB9480F5C" { - "Name" = "8:System.Dynamic.Runtime.dll" - "Attributes" = "3:0" + "Name" = "8:Tango.Transport.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Dynamic.Runtime.dll" + "SourcePath" = "8:Tango.Transport.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -7140,24 +4729,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C5718F2557E2B4CE76D02A14D19B0F00" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_AC9A178FF920FC61BC39E1F955343BF2" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Technician, Version=2.0.12.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C5718F2557E2B4CE76D02A14D19B0F00" + "_AC9A178FF920FC61BC39E1F955343BF2" { - "Name" = "8:Tango.MachineStudio.Technician.dll" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.Technician.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7175,20 +4764,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C658BF7DEB725E94A2BAF4FD48BAD3FA" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_ACA4B81C7B67E4C6FD57C20AD15BF952" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.CSV, Version=2.0.17.1657, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.Logging, Version=2.0.17.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C658BF7DEB725E94A2BAF4FD48BAD3FA" + "_ACA4B81C7B67E4C6FD57C20AD15BF952" { - "Name" = "8:Tango.CSV.dll" + "Name" = "8:Tango.MachineStudio.Logging.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.CSV.dll" + "SourcePath" = "8:Tango.MachineStudio.Logging.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7206,20 +4795,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C6BFB4DAD78C1798616508141EF1234E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B0A07289218E6EFD42CF3518073813D6" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Threading.Tasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" "ScatterAssemblies" { - "_C6BFB4DAD78C1798616508141EF1234E" + "_B0A07289218E6EFD42CF3518073813D6" { - "Name" = "8:System.Threading.Tasks.dll" + "Name" = "8:System.IO.Compression.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Threading.Tasks.dll" + "SourcePath" = "8:System.IO.Compression.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7237,82 +4826,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CC07BBC3C44CE424AA0EF90844590E4E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Resources.ResourceManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_CC07BBC3C44CE424AA0EF90844590E4E" - { - "Name" = "8:System.Resources.ResourceManager.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Resources.ResourceManager.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CC7BD04781686DE3403908303698199D" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Linq.Parallel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_CC7BD04781686DE3403908303698199D" - { - "Name" = "8:System.Linq.Parallel.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Linq.Parallel.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CCD49B330E05F963B5AE73E3D04F5762" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B0DC463AFB084472BA1EA9F43F930940" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Primitives, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.HardwareDesigner, Version=2.0.10.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_CCD49B330E05F963B5AE73E3D04F5762" + "_B0DC463AFB084472BA1EA9F43F930940" { - "Name" = "8:System.Net.Primitives.dll" + "Name" = "8:Tango.MachineStudio.HardwareDesigner.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Net.Primitives.dll" + "SourcePath" = "8:Tango.MachineStudio.HardwareDesigner.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7330,46 +4857,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D09F278664B0560653FAC1AD0BCAE93F" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B0F63EB1426CCC22506AFCB6C5809138" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Data.SQLite.EF6, Version=1.0.108.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.SharedUI, Version=2.0.27.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D09F278664B0560653FAC1AD0BCAE93F" + "_B0F63EB1426CCC22506AFCB6C5809138" { - "Name" = "8:System.Data.SQLite.EF6.dll" + "Name" = "8:Tango.SharedUI.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Data.SQLite.EF6.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D0CFB25F1239503E9FE3881A033B3110" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:System.Web.Razor.dll" + "SourcePath" = "8:Tango.SharedUI.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7387,20 +4888,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D1CB239DDD65E78A28094BC854772AFF" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B363FB7BD2F44E6C8573500668C2C9D1" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.Integration, Version=2.0.28.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D1CB239DDD65E78A28094BC854772AFF" + "_B363FB7BD2F44E6C8573500668C2C9D1" { - "Name" = "8:System.Runtime.dll" + "Name" = "8:Tango.Integration.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.dll" + "SourcePath" = "8:Tango.Integration.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7418,20 +4919,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D3EF38D40E0CBE1BD391303952B0493E" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_B706D77ACF741812BE0E0A94728413E8" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Xml.XDocument, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Net.Http.Formatting, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D3EF38D40E0CBE1BD391303952B0493E" + "_B706D77ACF741812BE0E0A94728413E8" { - "Name" = "8:System.Xml.XDocument.dll" + "Name" = "8:System.Net.Http.Formatting.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Xml.XDocument.dll" + "SourcePath" = "8:System.Net.Http.Formatting.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7449,26 +4950,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D48D475C8BD232C2AC87A2A7C6CCA53D" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BA75D5EAA8F428D075548128CE91FDD3" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Security.Principal, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D48D475C8BD232C2AC87A2A7C6CCA53D" + "_BA75D5EAA8F428D075548128CE91FDD3" { - "Name" = "8:System.Security.Principal.dll" - "Attributes" = "3:0" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.Security.Principal.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Client.QueryLanguage.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -7476,24 +4977,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D528F21311ECF12D91A0EFF0F8DCA468" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_BD559C5264D2EB8DB2F96C7F161ECCFE" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Stubs, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:WpfAnimatedGif, Version=1.4.14.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D528F21311ECF12D91A0EFF0F8DCA468" + "_BD559C5264D2EB8DB2F96C7F161ECCFE" { - "Name" = "8:Tango.Stubs.dll" + "Name" = "8:WpfAnimatedGif.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Stubs.dll" + "SourcePath" = "8:WpfAnimatedGif.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7511,15 +5012,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D66A3A6B6E4CBDAA1D6A1FD30FFAB6F2" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C28A9B0313A578C409D1E57773FB001E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Tango.DAL.Remote, Version=2.0.28.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { + "_C28A9B0313A578C409D1E57773FB001E" + { + "Name" = "8:Tango.DAL.Remote.dll" + "Attributes" = "3:512" + } } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll" + "SourcePath" = "8:Tango.DAL.Remote.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7537,20 +5043,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D6A37AFBBBDA445164B68F2E7D5B3E80" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C5F581AD9F0D1DCAB6E2DE32A49DCD96" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Editors, Version=2.0.17.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Work.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D6A37AFBBBDA445164B68F2E7D5B3E80" + "_C5F581AD9F0D1DCAB6E2DE32A49DCD96" { - "Name" = "8:Tango.Editors.dll" + "Name" = "8:Microsoft.TeamFoundation.Work.WebApi.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Editors.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.Work.WebApi.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7568,26 +5074,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D8A84B2F626300DA2E9147709713E9CB" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C78640287566584857304B60C7E09D2E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ServiceModel.Duplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D8A84B2F626300DA2E9147709713E9CB" + "_C78640287566584857304B60C7E09D2E" { - "Name" = "8:System.ServiceModel.Duplex.dll" - "Attributes" = "3:0" + "Name" = "8:System.Web.Razor.dll" + "Attributes" = "3:512" } } - "SourcePath" = "8:System.ServiceModel.Duplex.dll" + "SourcePath" = "8:System.Web.Razor.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" "Condition" = "8:" "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" + "Vital" = "11:TRUE" "ReadOnly" = "11:FALSE" "Hidden" = "11:FALSE" "System" = "11:FALSE" @@ -7595,24 +5101,24 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D947550594E2BF53BED76C7D7F9747D7" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C79F4B145CE2D951C3E342053EC26159" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" + "AssemblyAsmDisplayName" = "8:Tango.CodeGeneration, Version=2.0.16.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_D947550594E2BF53BED76C7D7F9747D7" + "_C79F4B145CE2D951C3E342053EC26159" { - "Name" = "8:System.IO.Compression.FileSystem.dll" + "Name" = "8:Tango.CodeGeneration.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.IO.Compression.FileSystem.dll" + "SourcePath" = "8:Tango.CodeGeneration.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7630,72 +5136,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D949D70DDDDCF94CDCAD9B76A400C3D3" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CAE724B9A481E2BAEC967AC01E7440FC" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.WorkItemTracking.Proxy, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - } - "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DB4941BAFA45E5921E7072990000621E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Logging, Version=2.0.30.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Logging.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DB4A94107FB1929721E56ED40844F276" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_DB4A94107FB1929721E56ED40844F276" + "_CAE724B9A481E2BAEC967AC01E7440FC" { - "Name" = "8:System.Runtime.InteropServices.dll" + "Name" = "8:Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.InteropServices.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7713,51 +5167,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DC627D829804D2AC4A3984133840F2D5" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ServiceModel.NetTcp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_DC627D829804D2AC4A3984133840F2D5" - { - "Name" = "8:System.ServiceModel.NetTcp.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ServiceModel.NetTcp.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DCD0D71251FAABFB20D57E60AC3DEFA3" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D09F278664B0560653FAC1AD0BCAE93F" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Globalization, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:System.Data.SQLite.EF6, Version=1.0.108.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL" "ScatterAssemblies" { - "_DCD0D71251FAABFB20D57E60AC3DEFA3" + "_D09F278664B0560653FAC1AD0BCAE93F" { - "Name" = "8:System.Globalization.dll" + "Name" = "8:System.Data.SQLite.EF6.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Globalization.dll" + "SourcePath" = "8:System.Data.SQLite.EF6.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7775,20 +5198,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DD10CB022785FD0CE997E8C7BC1D0FE6" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D7FBEFA3359B5E4558E45316AF3159B0" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Threading, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" "ScatterAssemblies" { - "_DD10CB022785FD0CE997E8C7BC1D0FE6" + "_D7FBEFA3359B5E4558E45316AF3159B0" { - "Name" = "8:System.Threading.dll" + "Name" = "8:Newtonsoft.Json.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Threading.dll" + "SourcePath" = "8:Newtonsoft.Json.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7806,77 +5229,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DD77D7B58FFDC37F83D85D632BEC9DC4" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_DD77D7B58FFDC37F83D85D632BEC9DC4" - { - "Name" = "8:System.Runtime.Numerics.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Runtime.Numerics.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DE3FACD5F197D2E261A0C6B32E0D1CAC" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DB4BF3BCEC4456BC4D94E6F732E82803" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Runtime.Serialization.Primitives, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, Version=3.19.8.16603, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" "ScatterAssemblies" { - "_DE3FACD5F197D2E261A0C6B32E0D1CAC" + "_DB4BF3BCEC4456BC4D94E6F732E82803" { - "Name" = "8:System.Runtime.Serialization.Primitives.dll" + "Name" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Runtime.Serialization.Primitives.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DF6FFF88157E7FBCFB7E188431AAF4CF" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.PMR, Version=2.0.33.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.PMR.dll" + "SourcePath" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -7894,102 +5260,19 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E0573A6D7543083D0A5654271DF50643" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_DF9470C286C095EB5289BC0A57E7AA2C" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ComponentModel.EventBasedAsync, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.TFS, Version=2.0.19.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_E0573A6D7543083D0A5654271DF50643" + "_DF9470C286C095EB5289BC0A57E7AA2C" { - "Name" = "8:System.ComponentModel.EventBasedAsync.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ComponentModel.EventBasedAsync.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E0FCEE9366306B5A88DC7CF29E913A4B" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_E0FCEE9366306B5A88DC7CF29E913A4B" - { - "Name" = "8:System.Collections.dll" + "Name" = "8:Tango.TFS.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Collections.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E97069A1CAEDE89621181DEE3B97B547" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.VisualStudio.Services.Common.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E9B6634643306242F65E192204E9C56A" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.TFS, Version=2.0.17.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } "SourcePath" = "8:Tango.TFS.dll" "TargetName" = "8:" "Tag" = "8:" @@ -8008,20 +5291,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EA4D0354739F3915FC03731153325AA5" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.DAL.Local, Version=2.0.14.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:RazorEngine, Version=3.10.0.0, Culture=neutral, PublicKeyToken=9ee697374c7e744a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_EA4D0354739F3915FC03731153325AA5" + "_E0B7DFF98B1B17C9E2E2BD3B6DBBFF8A" { - "Name" = "8:Tango.DAL.Local.dll" + "Name" = "8:RazorEngine.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.DAL.Local.dll" + "SourcePath" = "8:RazorEngine.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8039,20 +5322,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EB16994750C856659A7BE41BD02F8ABE" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_E521ECFD6C000298EBF2C298D2E4376B" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Video, Version=2.0.17.1633, Culture=neutral, processorArchitecture=MSIL" + "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Services.Client.Interactive, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_EB16994750C856659A7BE41BD02F8ABE" + "_E521ECFD6C000298EBF2C298D2E4376B" { - "Name" = "8:Tango.Video.dll" + "Name" = "8:Microsoft.VisualStudio.Services.Client.Interactive.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.Video.dll" + "SourcePath" = "8:Microsoft.VisualStudio.Services.Client.Interactive.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8101,77 +5384,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EB90C5C498BD80F4675C07A364C45E3D" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_ECDF8B3BECC1C92F35C36C2743D8E99E" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Debug, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_EB90C5C498BD80F4675C07A364C45E3D" - { - "Name" = "8:System.Diagnostics.Debug.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:System.Diagnostics.Debug.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EBFEF6DABA658232EC82197A8E01F66E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Threading.Tasks, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:ColorMine, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_EBFEF6DABA658232EC82197A8E01F66E" + "_ECDF8B3BECC1C92F35C36C2743D8E99E" { - "Name" = "8:System.Threading.Tasks.dll" + "Name" = "8:ColorMine.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Threading.Tasks.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_ED524252AD28281FAE5468349D0E5797" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:ICSharpCode.AvalonEdit, Version=1.0.18.1933, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:ICSharpCode.AvalonEdit.dll" + "SourcePath" = "8:ColorMine.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8189,37 +5415,6 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EF2623DE67EDC70B584821A055B86302" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Requests, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_EF2623DE67EDC70B584821A055B86302" - { - "Name" = "8:System.Net.Requests.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Net.Requests.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EF2898B0C9AAB2E33674325B9F86943B" { "AssemblyRegister" = "3:1" @@ -8251,97 +5446,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F1DFFB8E50BAD2529B0C859268ED8956" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FB49CF72492394629C7D629F6FAB4446" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.Scripting, Version=2.0.23.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.Scripting.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F3898C4F454B4D1481E055F2AB2B217B" - { - "SourcePath" = "8:..\\..\\Build\\Debug\\x64\\SQLite.Interop.dll" - "TargetName" = "8:SQLite.Interop.dll" - "Tag" = "8:" - "Folder" = "8:_37D35F637FDD433095D8A36CAA7424C8" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F3D3908BF1850F33CACA8DC41CB6869E" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_F3D3908BF1850F33CACA8DC41CB6869E" - { - "Name" = "8:System.ComponentModel.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.ComponentModel.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F46F8B020857673C983D66FE2F41B983" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Linq.Expressions, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Microsoft.TeamFoundation.Core.WebApi, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F46F8B020857673C983D66FE2F41B983" + "_FB49CF72492394629C7D629F6FAB4446" { - "Name" = "8:System.Linq.Expressions.dll" + "Name" = "8:Microsoft.TeamFoundation.Core.WebApi.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Linq.Expressions.dll" + "SourcePath" = "8:Microsoft.TeamFoundation.Core.WebApi.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8359,46 +5477,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F78136CC822CCB014A68583A48E41B1C" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FF26B2424D1F2EB451FE2EDE8CD8D7CD" { "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:TRUE" - "AssemblyAsmDisplayName" = "8:System.Collections.Concurrent, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Tango.BrushPicker, Version=2.0.8.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_F78136CC822CCB014A68583A48E41B1C" + "_FF26B2424D1F2EB451FE2EDE8CD8D7CD" { - "Name" = "8:System.Collections.Concurrent.dll" + "Name" = "8:Tango.BrushPicker.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:System.Collections.Concurrent.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_F93FF260A2F031FD129C02F9FB2A6E9D" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory, Version=3.13.5.907, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Microsoft.IdentityModel.Clients.ActiveDirectory.dll" + "SourcePath" = "8:Tango.BrushPicker.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8416,108 +5508,20 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FA58218115CCED35D22896A731510356" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" - "ScatterAssemblies" - { - "_FA58218115CCED35D22896A731510356" - { - "Name" = "8:System.Net.Http.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Net.Http.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FA997D5286D6E9EC1A80EB888D9FDA72" + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FF9B3021994C6FE507A9C7BE198B6C03" { "AssemblyRegister" = "3:1" "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:System.Diagnostics.Tracing, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.DataCapture, Version=2.0.10.1159, Culture=neutral, processorArchitecture=MSIL" "ScatterAssemblies" { - "_FA997D5286D6E9EC1A80EB888D9FDA72" + "_FF9B3021994C6FE507A9C7BE198B6C03" { - "Name" = "8:System.Diagnostics.Tracing.dll" - "Attributes" = "3:0" - } - } - "SourcePath" = "8:System.Diagnostics.Tracing.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:FALSE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FAAE7C62982AB9171B3FF838FB304946" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.MachineStudio.DB, Version=2.0.7.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_FAAE7C62982AB9171B3FF838FB304946" - { - "Name" = "8:Tango.MachineStudio.DB.dll" + "Name" = "8:Tango.MachineStudio.DataCapture.dll" "Attributes" = "3:512" } } - "SourcePath" = "8:Tango.MachineStudio.DB.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_C15E39669002469F98F297C08D55903C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FC7C3735446215F02CF0C477948EAAFC" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Tango.BL, Version=2.0.29.1633, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - } - "SourcePath" = "8:Tango.BL.dll" + "SourcePath" = "8:Tango.MachineStudio.DataCapture.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" @@ -8613,15 +5617,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Machine Studio" - "ProductCode" = "8:{2CDA6309-5459-4D45-A1FC-EB5CBBC52831}" - "PackageCode" = "8:{C18A9C7E-6284-435F-A456-2A82C19193FC}" + "ProductCode" = "8:{2E4CACCC-2148-47D2-BAFC-0043F43606F1}" + "PackageCode" = "8:{E5879A51-DF44-466E-8E92-5D6168C66522}" "UpgradeCode" = "8:{EDD5BF5D-A0F0-4016-AE0A-5C008DD66BB6}" "AspNetVersion" = "8:4.0.30319.0" "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:1.0.5" + "ProductVersion" = "8:3.2.0" "Manufacturer" = "8:Twine" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" @@ -9163,7 +6167,7 @@ { "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_136196DD2763419D959721C2BA143498" { - "SourcePath" = "8:..\\Tango.MachineStudio.UI\\obj\\Debug\\Tango.MachineStudio.UI.exe" + "SourcePath" = "8:..\\Tango.MachineStudio.UI\\obj\\Release\\Tango.MachineStudio.UI.exe" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_C15E39669002469F98F297C08D55903C" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/App.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/App.config index 209c9be3f..156c5f7e1 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/App.config +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/App.config @@ -49,6 +49,14 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.0.108.0" newVersion="1.0.108.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj index e86b3ddf0..f9f337b70 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj @@ -8,7 +8,7 @@ <OutputType>WinExe</OutputType> <RootNamespace>Tango.MachineStudio.Publisher</RootNamespace> <AssemblyName>Tango.MachineStudio.Publisher</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config index 004400788..4147a78ec 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config @@ -39,7 +39,7 @@ <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> + <!--<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> @@ -74,11 +74,19 @@ <dependentAssembly> <assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> - </dependentAssembly> + </dependentAssembly>--> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.xaml.cs index ed2cbdbd7..4e1c36593 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.xaml.cs @@ -37,9 +37,20 @@ namespace Tango.MachineStudio.UI { #if DEBUG - CoreSettings.DefaultDataBaseSource = "localhost\\SQLEXPRESS"; + CoreSettings.DefaultDataSource = new DataSource() + { + Address = "localhost\\SQLEXPRESS", + Catalog = "Tango", + IntegratedSecurity = true, + }; #else - CoreSettings.DefaultDataBaseSource = "twine01\\SQLTWINE"; + + CoreSettings.DefaultDataSource = new DataSource() + { + Address = "twine01\\SQLTWINE", + Catalog = "Tango", + IntegratedSecurity = true, + }; #endif diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs index 4e5425138..c16f76449 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Authentication/DefaultAuthenticationProvider.cs @@ -9,6 +9,7 @@ using Tango.BL.Entities; using Tango.MachineStudio.Common.Authentication; using Tango.BL; using Tango.BL.Enumerations; +using System.Data.Entity; namespace Tango.MachineStudio.UI.Authentication { @@ -48,32 +49,38 @@ namespace Tango.MachineStudio.UI.Authentication /// <exception cref="AuthenticationException">Login failed for user " + email</exception> public User Login(string email, string password) { - String hash = User.GetPasswordHash(password); + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { - User user = ObservablesEntitiesAdapter.Instance.Users.SingleOrDefault(x => x.Email.ToLower() == email.ToLower() && x.Password == hash); + String hash = User.GetPasswordHash(password); - if (user == null) - { - throw new AuthenticationException("Invalid credentials for " + email); - } + db.Roles.Load(); + db.Permissions.Load(); + db.RolesPermissions.Load(); - if (!user.HasPermission(Permissions.RunMachineStudio)) - { - throw new AuthenticationException("It seems like you do not have sufficient privileges to run Machine Studio. Please contact your administrator."); - } + User user = db.Users + .Include(x => x.UsersRoles) + .Include(x => x.Organization).SingleOrDefault(x => x.Email.ToLower() == email.ToLower() && x.Password == hash); - if (user != null) - { - using (ObservablesContext db = ObservablesContext.CreateDefault()) + if (user == null) + { + throw new AuthenticationException("Invalid credentials for " + email); + } + + if (!user.HasPermission(Permissions.RunMachineStudio)) { - var u = db.Users.Single(x => x.Guid == user.Guid); - u.LastLogin = DateTime.UtcNow; + throw new AuthenticationException("It seems like you do not have sufficient privileges to run Machine Studio. Please contact your administrator."); + } + + if (user != null) + { + user.LastLogin = DateTime.UtcNow; db.SaveChanges(); } - } - CurrentUser = user; - return user; + CurrentUser = user; + return user; + } } /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml index b8a6cd1c0..44b2ed401 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml @@ -17,7 +17,7 @@ <Viewbox Stretch="Fill"> <Grid x:Name="grid" Width="1920" Height="1100"> <Grid> - <sharedControls:NavigationControl TransitionAlwaysFades="True" TransitionType="Zoom" x:Name="TransitionControl" x:FieldModifier="public"> + <sharedControls:NavigationControl TransitionAlwaysFades="True" TransitionType="Zoom" x:Name="NavigationControl" x:FieldModifier="public"> <views:LoadingView sharedControls:NavigationControl.NavigationName="LoadingView"></views:LoadingView> <views:LoginView sharedControls:NavigationControl.NavigationName="LoginView"></views:LoginView> <views:MainView sharedControls:NavigationControl.NavigationName="MainView"></views:MainView> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Modules/DefaultStudioModuleLoader.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Modules/DefaultStudioModuleLoader.cs index 26a789d0f..13c3d6779 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Modules/DefaultStudioModuleLoader.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Modules/DefaultStudioModuleLoader.cs @@ -12,9 +12,6 @@ using Tango.Logging; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Modules; -using Tango.MachineStudio.DB; -using Tango.MachineStudio.MachineDesigner; -using Tango.MachineStudio.Stubs; namespace Tango.MachineStudio.UI.Modules { @@ -27,7 +24,6 @@ namespace Tango.MachineStudio.UI.Modules { private IAuthenticationProvider _authenticationProvider; private bool _loaded; - public event EventHandler ModulesLoaded; /// <summary> /// Initializes a new instance of the <see cref="DefaultStudioModuleLoader"/> class. @@ -78,15 +74,15 @@ namespace Tango.MachineStudio.UI.Modules { if (!_loaded) { - //Preloaded + ////Preloaded - LogManager.Log(String.Format("Loading module '{0}'...", nameof(StubsModule))); - AllModules.Add(new StubsModule()); - LogManager.Log(String.Format("Loading module '{0}'...", nameof(DBModule))); - AllModules.Add(new DBModule()); - LogManager.Log(String.Format("Loading module '{0}'...", nameof(MachineDesignerModule))); - AllModules.Add(new MachineDesignerModule()); - //Preloaded + //LogManager.Log(String.Format("Loading module '{0}'...", nameof(StubsModule))); + //AllModules.Add(new StubsModule()); + //LogManager.Log(String.Format("Loading module '{0}'...", nameof(DBModule))); + //AllModules.Add(new DBModule()); + //LogManager.Log(String.Format("Loading module '{0}'...", nameof(MachineDesignerModule))); + //AllModules.Add(new MachineDesignerModule()); + ////Preloaded AllModules.Clear(); string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); @@ -146,5 +142,10 @@ namespace Tango.MachineStudio.UI.Modules { return UserModules.OfType<T>().FirstOrDefault(); } + + /// <summary> + /// Occurs when all modules are initialized. + /// </summary> + public event EventHandler ModulesLoaded; } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Navigation/DefaultNavigationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Navigation/DefaultNavigationManager.cs index 092b958cc..899ba846e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Navigation/DefaultNavigationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Navigation/DefaultNavigationManager.cs @@ -3,8 +3,13 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Commands; using Tango.MachineStudio.Common; +using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; +using Tango.MachineStudio.Common.Threading; +using Tango.SharedUI.Controls; namespace Tango.MachineStudio.UI.Navigation { @@ -12,18 +17,372 @@ namespace Tango.MachineStudio.UI.Navigation /// Represents the Machine Studio default <see cref="INavigationManager">Navigation Manager</see>. /// </summary> /// <seealso cref="Tango.MachineStudio.Common.Navigation.INavigationManager" /> - public class DefaultNavigationManager : INavigationManager + public class DefaultNavigationManager : ExtendedObject, INavigationManager { + private event Action<Object, Object> NavigationCycleCompleted; + + private IDispatcherProvider _dispatcherProvider; + private IStudioModuleLoader _moduleLoader; + private Object _currentVM; + private String _lastFullPath; + private bool _preventHistory; + private bool _navigating_back; + + private Stack<String> _navigationHistory; + + /// <summary> + /// Gets the current view model. + /// </summary> + public StudioViewModel CurrentVM + { + get { return _currentVM as StudioViewModel; } + } + + private IStudioModule _currentModule; + /// <summary> + /// Gets or sets the current module. + /// </summary> + public IStudioModule CurrentModule + { + get { return _currentModule; } + private set { _currentModule = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Navigates to the previous view. + /// </summary> + public RelayCommand NavigateBackCommand { get; private set; } + + /// <summary> + /// Navigates to the specified full path in command parameter. + /// </summary> + public RelayCommand<String> NavigateToCommand { get; private set; } + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultNavigationManager"/> class. + /// </summary> + /// <param name="moduleLoader">The module loader.</param> + public DefaultNavigationManager(IStudioModuleLoader moduleLoader, IDispatcherProvider dispatcherProvider) + { + _navigationHistory = new Stack<String>(); + _moduleLoader = moduleLoader; + + NavigateToCommand = new RelayCommand<string>(async (x) => await NavigateTo(x)); + NavigateBackCommand = new RelayCommand(async () => await NavigateBack()); + + _dispatcherProvider = dispatcherProvider; + } + /// <summary> - /// Navigates to the specified view. + /// Navigates to the specified PPC view. /// </summary> /// <param name="view">The view.</param> - public void NavigateTo(NavigationView view) + public Task<bool> NavigateTo(NavigationView view, bool pushToHistory = true) { - MainWindow.Instance.Dispatcher.Invoke(() => + LogManager.Log($"Navigating to: {view.ToString()}..."); + + _dispatcherProvider.Invoke(() => { - MainWindow.Instance.TransitionControl.NavigateTo(view.ToString()); + MainWindow.Instance.NavigationControl.NavigateTo(view.ToString()); }); + + return Task.FromResult(true); + } + + /// <summary> + /// Navigates to the specified PPC view with the specified receive object. + /// </summary> + /// <param name="view">The view.</param> + /// <param name="obj"></param> + /// <param name="pushToHistory"></param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TPass>(NavigationView view, TPass obj, bool pushToHistory = true) + { + LogManager.Log($"Navigating to: {view.ToString()}, with object {typeof(TPass).Name}..."); + MainWindow.Instance.NavigationControl.NavigateTo(view.ToString()); + INavigationObjectReceiver<TPass> receiver = MainWindow.Instance.NavigationControl.Elements.FirstOrDefault(x => (x.GetType().Name == view.ToString() || NavigationControl.GetNavigationName(x) == view.ToString()) && x.DataContext is INavigationObjectReceiver<TPass>).DataContext as INavigationObjectReceiver<TPass>; + + if (receiver != null) + { + receiver.OnNavigatedToWithObject(obj); + } + + return Task.FromResult(true); + } + + /// <summary> + /// Navigates to the specified module. + /// </summary> + /// <typeparam name="T"></typeparam> + public Task<bool> NavigateTo<T>(bool pushToHistory = true) where T : IStudioModule + { + return NavigateTo(typeof(T)); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView.JobsView). + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(string viewPath, bool pushToHistory = true) where T : IStudioModule + { + return NavigateTo<T>(pushToHistory, viewPath.Split('.')); + } + + /// <summary> + /// Navigates to the specified module using the view path (e.g MainView,JobsView). + /// This method makes it easy to do stuff like NavigateTo(nameof(MainView),nameof(JobsView)); + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="viewPath">The view path.</param> + public Task<bool> NavigateTo<T>(bool pushToHistory = true, params String[] viewPath) where T : IStudioModule + { + return NavigateTo(typeof(T), pushToHistory, viewPath); + } + + /// <summary> + /// Navigates to the specified module and view by full path (e.g Jobs.JobsView). + /// </summary> + /// <param name="fullPath">The full path.</param> + public async Task<bool> NavigateTo(String fullPath, bool pushToHistory = true) + { + String[] path = fullPath.Split('.'); + var module = _moduleLoader.UserModules.SingleOrDefault(x => x.GetType().Name == path[0] || x.Name == path[0]); + + if (path.Length == 1 && path[0] == CurrentModule.Name) return true; + + LogManager.Log($"Navigating to: {fullPath}..."); + + var fromVM = _currentVM; + + if (_currentVM != null && _currentVM is INavigationBlocker) + { + if (_navigating_back) + { + if (!await (_currentVM as INavigationBlocker).OnNavigateBackRequest()) + { + return false; + } + } + else + { + if (!await (_currentVM as INavigationBlocker).OnNavigateOutRequest()) + { + return false; + } + } + } + + if (pushToHistory && _lastFullPath != null && !_preventHistory) + { + _navigationHistory.Push(_lastFullPath); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + _lastFullPath = fullPath; + + MainWindow.Instance.NavigationControl.NavigateTo(NavigationView.MainView.ToString()); + var navigationControl = MachineStudio.UI.Views.MainView.Instance.NavigationControl; + CurrentModule = module; + var moduleView = navigationControl.NavigateTo(module.Name); + + _currentVM = moduleView.DataContext; + + if (path.Length > 1) + { + var moduleNavigation = moduleView.FindChildOffline<NavigationControl>(); + + moduleNavigation.RegisterForLoadedOrNow(async (x, e) => + { + foreach (var view in path.Skip(1)) + { + await Task.Delay(100); + var v = moduleNavigation.NavigateTo(view); + + if (v != null) + { + _currentVM = v.DataContext; + + if (view != path.Last()) + { + moduleNavigation = v.FindChildOffline<NavigationControl>(); + } + } + else + { + throw LogManager.Log(new ArgumentNullException("Could not navigate to " + fullPath)); + } + } + + NavigationCycleCompleted?.Invoke(fromVM, _currentVM); + }); + } + + return true; + } + + /// <summary> + /// Navigates for result. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TResult">The type of the result.</typeparam> + /// <typeparam name="TObject">The type of the object.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public Task<TResult> NavigateForResult<TModule, TView, TResult, TObject>(TObject obj, bool pushToHistory = true) + where TModule : IStudioModule + { + TaskCompletionSource<TResult> source = new TaskCompletionSource<TResult>(); + + var fromVM = _currentVM; + Object toVM = null; + + + Action<Object, Object> handler = null; + + handler = (from, to) => + { + if (toVM == null) + { + toVM = to; + if (toVM is INavigationResultProvider<TResult, TObject>) + { + (toVM as INavigationResultProvider<TResult, TObject>).OnNavigationObjectReceived(obj); + } + } + else + { + if (to == fromVM && from == toVM) + { + if (from is INavigationResultProvider<TResult, TObject>) + { + source.SetResult((from as INavigationResultProvider<TResult, TObject>).GetNavigationResult()); + } + } + + NavigationCycleCompleted -= handler; + } + }; + + NavigationCycleCompleted += handler; + + NavigateTo<TModule>(typeof(TView).Name, pushToHistory); + + return source.Task; + } + + /// <summary> + /// Navigates to the specified module and view with the specified object. + /// </summary> + /// <typeparam name="TModule">The type of the module.</typeparam> + /// <typeparam name="TView">The type of the view.</typeparam> + /// <typeparam name="TPass">The type of the pass.</typeparam> + /// <param name="obj">The object.</param> + /// <param name="pushToHistory">if set to <c>true</c> [push to history].</param> + /// <returns></returns> + public Task<bool> NavigateWithObject<TModule, TView, TPass>(TPass obj, bool pushToHistory = true) where TModule : IStudioModule + { + TaskCompletionSource<bool> source = new TaskCompletionSource<bool>(); + + Action<Object, Object> handler = null; + + handler = (from, to) => + { + if (to is INavigationObjectReceiver<TPass>) + { + (to as INavigationObjectReceiver<TPass>).OnNavigatedToWithObject(obj); + } + + NavigationCycleCompleted -= handler; + }; + + NavigationCycleCompleted += handler; + + NavigateTo<TModule>(typeof(TView).Name, pushToHistory); + + return source.Task; + } + + private Task<bool> NavigateTo(Type moduleType, bool pushToHistory = true, params String[] viewPath) + { + if (viewPath != null && viewPath.Length > 0) + { + return NavigateTo(moduleType.Name + "." + String.Join(".", viewPath), pushToHistory); + } + else + { + return NavigateTo(moduleType.Name, pushToHistory); + } + } + + /// <summary> + /// Gets a value indicating whether the navigation system is able to navigate to the previous view. + /// </summary> + public bool CanNavigateBack + { + get { return _navigationHistory.Count > 0; } + } + + /// <summary> + /// Navigates to the previous view if <see cref="P:Tango.PPC.Common.Navigation.INavigationManager.CanNavigateBack" /> is true. + /// </summary> + public async Task<bool> NavigateBack() + { + LogManager.Log("Navigating back..."); + + _navigating_back = true; + + String first = _navigationHistory.Pop(); + _preventHistory = true; + + + if (await NavigateTo(first)) + { + RaisePropertyChanged(nameof(CanNavigateBack)); + _preventHistory = false; + _navigating_back = false; + return true; + } + else + { + _navigationHistory.Push(first); + _preventHistory = false; + _navigating_back = false; + RaisePropertyChanged(nameof(CanNavigateBack)); + return false; + } + } + + /// <summary> + /// Clears the navigation back history. + /// </summary> + public void ClearHistory() + { + LogManager.Log("Navigation history cleared."); + _navigationHistory.Clear(); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + /// <summary> + /// Clears the navigation back history except the specified view type. + /// </summary> + /// <typeparam name="T"></typeparam> + public void ClearHistoryExcept<T>() + { + LogManager.Log($"Navigation history cleared except for {typeof(T).Name}."); + + var history_list = _navigationHistory.ToList(); + history_list = history_list.Where(x => x.Contains(typeof(T).Name)).Distinct().ToList(); + _navigationHistory.Clear(); + + foreach (var item in history_list) + { + _navigationHistory.Push(item); + } + + RaisePropertyChanged(nameof(CanNavigateBack)); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs index 358775686..2ba2c2d37 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs @@ -4,5 +4,5 @@ using System.Runtime.InteropServices; [assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] [assembly: AssemblyTitle("Tango - Machine Studio")] -[assembly: AssemblyVersion("2.9.23.18231")] +[assembly: AssemblyVersion("3.1.32.18235")] [assembly: ComVisible(false)]
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index ee9337eb3..7c7e18276 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -43,21 +43,10 @@ namespace Tango.MachineStudio.UI.StudioApplication _navigationManager = navigationManager; _openedWindows = new List<Window>(); - Task.Factory.StartNew(() => + Application.Current.MainWindow.ContentRendered += (_, __) => { - while (MainWindow.Instance == null) - { - Thread.Sleep(100); - } - - InvokeUI(() => - { - MainWindow.Instance.ContentRendered += (_, __) => - { - TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>().ToList().ForEach(x => x.OnApplicationStarted()); - }; - }); - }); + TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>().ToList().ForEach(x => x.OnApplicationStarted()); + }; } /// <summary> @@ -237,31 +226,6 @@ namespace Tango.MachineStudio.UI.StudioApplication } /// <summary> - /// Loads the specified module if permitted. - /// </summary> - /// <param name="moduleName">Name of the module.</param> - /// <param name="args">The arguments.</param> - public void RequestModule(string moduleName, params object[] args) - { - IStudioModule module = _moduleLoader.UserModules.SingleOrDefault(x => x.Name == moduleName); - - if (module != null) - { - TangoIOC.Default.GetInstance<ViewModels.MainViewVM>().StartModule(module); - - //Notify request listeners. - foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>()) - { - vm.OnModuleRequest(module, args); - } - } - else - { - throw new InvalidOperationException("The module was not found or you do not have sufficient privileges."); - } - } - - /// <summary> /// Notify the application manager about an external opened window. /// When application exists. All registered windows will be closed. /// </summary> @@ -305,5 +269,10 @@ namespace Tango.MachineStudio.UI.StudioApplication return EmbeddedResourceHelper.GetEmbeddedResourceText("Tango.MachineStudio.UI.ChangeLog.txt"); } } + + public void NotifyApplicationReady() + { + TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>().ToList().ForEach(x => x.OnApplicationReady()); + } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj index 724f83680..2ac516903 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj @@ -8,7 +8,7 @@ <OutputType>WinExe</OutputType> <RootNamespace>Tango.MachineStudio.UI</RootNamespace> <AssemblyName>Tango.MachineStudio.UI</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> @@ -168,6 +168,7 @@ <Compile Include="TFS\TeamFoundationServiceExtendedClient.cs" /> <Compile Include="TFS\TeamMembersProvider.cs" /> <Compile Include="TFS\WorkItemValidationAttribute.cs" /> + <Compile Include="Threading\DefaultDispatcherProvider.cs" /> <Compile Include="ViewModels\AboutViewVM.cs" /> <Compile Include="ViewModels\ConnectedMachineViewVM.cs" /> <Compile Include="ViewModels\LoadingViewVM.cs" /> @@ -432,10 +433,6 @@ <Project>{22c2aa72-9493-4d0d-b421-8ef9789fb192}</Project> <Name>Tango.MachineStudio.Stubs</Name> </ProjectReference> - <ProjectReference Include="..\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj"> - <Project>{12d0c43c-391f-4c74-92ab-82e9a9beeb9b}</Project> - <Name>Tango.MachineStudio.Synchronization</Name> - </ProjectReference> <ProjectReference Include="..\Modules\Tango.MachineStudio.Technician\Tango.MachineStudio.Technician.csproj"> <Project>{5d39c1e1-3ecd-4634-bd1b-2bcf71c54a15}</Project> <Name>Tango.MachineStudio.Technician</Name> @@ -566,7 +563,8 @@ copy /Y "$(SolutionDir)Referenced Assemblies\mscoree.dll" "$(TargetDir)" copy /Y "$(SolutionDir)Referenced Assemblies\msvcp140d.dll" "$(TargetDir)" copy /Y "$(SolutionDir)Referenced Assemblies\ucrtbased.dll" "$(TargetDir)" copy /Y "$(SolutionDir)Referenced Assemblies\vcruntime140.dll" "$(TargetDir)" -copy /Y "$(SolutionDir)Referenced Assemblies\vcruntime140d.dll" "$(TargetDir)"</PostBuildEvent> +copy /Y "$(SolutionDir)Referenced Assemblies\vcruntime140d.dll" "$(TargetDir)" +copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(TargetDir)"</PostBuildEvent> </PropertyGroup> <Import Project="..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" /> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Threading/DefaultDispatcherProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Threading/DefaultDispatcherProvider.cs new file mode 100644 index 000000000..611dca6b9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Threading/DefaultDispatcherProvider.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Threading; +using Tango.MachineStudio.Common.Threading; + +namespace Tango.MachineStudio.UI.Threading +{ + /// <summary> + /// Represents the default PPC <see cref="IDispatcherProvider"/> which will invoke action on the current application dispatcher. + /// </summary> + /// <seealso cref="Tango.PPC.Common.Threading.IDispatcherProvider" /> + public class DefaultDispatcherProvider : IDispatcherProvider + { + private Dispatcher _dispatcher; + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultDispatcherProvider"/> class. + /// </summary> + /// <param name="dispatcher">The dispatcher.</param> + public DefaultDispatcherProvider(Dispatcher dispatcher) + { + _dispatcher = dispatcher; + } + + /// <summary> + /// Invokes the specified action asynchronously. + /// </summary> + /// <param name="action">The action.</param> + public void Invoke(Action action) + { + _dispatcher.BeginInvoke(action); + } + + /// <summary> + /// Invokes the specified action synchronously. + /// </summary> + /// <param name="action">The action.</param> + public void InvokeSync(Action action) + { + _dispatcher.Invoke(action); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs index 2c816eb6c..10aa86ad1 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs @@ -1,4 +1,5 @@ using System; +using System.Windows; using Tango.Core.DI; using Tango.Integration.ExternalBridge; using Tango.Logging; @@ -11,6 +12,7 @@ using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.Common.Speech; using Tango.MachineStudio.Common.StudioApplication; +using Tango.MachineStudio.Common.Threading; using Tango.MachineStudio.Common.Video; using Tango.MachineStudio.UI.Authentication; using Tango.MachineStudio.UI.Console; @@ -21,6 +23,7 @@ using Tango.MachineStudio.UI.Notifications; using Tango.MachineStudio.UI.StudioApplication; using Tango.MachineStudio.UI.SupervisingController; using Tango.MachineStudio.UI.TFS; +using Tango.MachineStudio.UI.Threading; using Tango.MachineStudio.UI.ViewModels; using Tango.MachineStudio.UI.Views; using Tango.Settings; @@ -64,7 +67,10 @@ namespace Tango.MachineStudio.UI TangoIOC.Default.Unregister<ISpeechProvider>(); TangoIOC.Default.Unregister<IHtmlPresenter>(); TangoIOC.Default.Unregister<ITeamFoundationServiceClient>(); + TangoIOC.Default.Unregister<IDispatcherProvider>(); + + TangoIOC.Default.Register<IDispatcherProvider, DefaultDispatcherProvider>(new DefaultDispatcherProvider(Application.Current.Dispatcher)); TangoIOC.Default.Register<INotificationProvider, DefaultNotificationProvider>(); TangoIOC.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>(); TangoIOC.Default.Register<INavigationManager, DefaultNavigationManager>(); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs index a468dc2e7..215f7afb5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs @@ -28,7 +28,7 @@ namespace Tango.MachineStudio.UI.ViewModels /// Represents the Machine Studio loading view, view model. /// </summary> /// <seealso cref="Tango.SharedUI.ViewModel" /> - public class LoadingViewVM : StudioViewModelInternal + public class LoadingViewVM : StudioViewModel { private INotificationProvider _notificationProvider; private TeamFoundationServiceExtendedClient _tfs; @@ -141,7 +141,7 @@ namespace Tango.MachineStudio.UI.ViewModels Status = "Loading, please wait..."; - ObservablesEntitiesAdapter.Instance.Initialize(); + ObservablesStaticCollections.Instance.Initialize(); _eventLogger.Log(EventTypes.ApplicationStarted, "Application Started!"); @@ -172,5 +172,10 @@ namespace Tango.MachineStudio.UI.ViewModels } }); } + + public override void OnApplicationReady() + { + + } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs index f2a4f1143..a37879a5e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -51,6 +51,15 @@ namespace Tango.MachineStudio.UI.ViewModels set { _password = value; RaisePropertyChangedAuto(); } } + private bool _isLogging; + /// <summary> + /// Gets or sets a value indicating whether this instance is logging. + /// </summary> + public bool IsLogging + { + get { return _isLogging; } + set { _isLogging = value; RaisePropertyChangedAuto(); } + } private bool _rememberMe; /// <summary> @@ -81,7 +90,7 @@ namespace Tango.MachineStudio.UI.ViewModels _navigationManager = navigationManager; _authenticationProvider = authenticationProvider; _eventLogger = eventLogger; - LoginCommand = new RelayCommand(Login); + LoginCommand = new RelayCommand(Login,() => !IsLogging); cryptographer = new Rfc2898Cryptographer(); Email = _settings.LastLoginEmail; @@ -100,26 +109,38 @@ namespace Tango.MachineStudio.UI.ViewModels /// <summary> /// Logins the requested user. /// </summary> - private void Login() + private async void Login() { if (Validate()) { try { - _authenticationProvider.Login(Email, Password); - _navigationManager.NavigateTo(NavigationView.MainView); - _settings.LastLoginEmail = Email; - _settings.RememberMe = RememberMe; + IsLogging = true; + InvalidateRelayCommands(); - _settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; - _settings.Save(); + await Task.Factory.StartNew(() => + { + _authenticationProvider.Login(Email, Password); + _navigationManager.NavigateTo(NavigationView.MainView); + _settings.LastLoginEmail = Email; + _settings.RememberMe = RememberMe; - _eventLogger.Log("User logged in"); + _settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; + _settings.Save(); + + _eventLogger.Log("User logged in"); + }); } - catch + catch (Exception) { + _notificationProvider.ShowError("Invalid credentials. Please try again."); } + finally + { + IsLogging = false; + InvalidateRelayCommands(); + } } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs index 44cfc6788..db32fe623 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineSerialViewVM.cs @@ -29,7 +29,7 @@ namespace Tango.MachineStudio.UI.ViewModels var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>(); - SelectedMachine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == settings.LastVirtualMachineSerialNumber); + SelectedMachine = ObservablesStaticCollections.Instance.Machines.SingleOrDefault(x => x.SerialNumber == settings.LastVirtualMachineSerialNumber); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index f8320e1f2..ee4435832 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Media; +using Tango.BL; using Tango.BL.Entities; using Tango.Core.Commands; using Tango.Core.DI; @@ -515,8 +516,14 @@ namespace Tango.MachineStudio.UI.ViewModels catch (Exception ex) { LogManager.Log(ex); - _eventLogger.Log(ex, "Error connecting to machine " + x.SelectedMachine.SerialNumber); + + if (x.SelectedMachine != null) + { + _eventLogger.Log(ex, "Error connecting to machine " + x.SelectedMachine.SerialNumber); + } + _notificationProvider.ShowError("Could not connect to the selected machine." + Environment.NewLine + ex.Message); + } InvalidateRelayCommands(); @@ -547,8 +554,13 @@ namespace Tango.MachineStudio.UI.ViewModels { try { - var configuration = ApplicationManager.ConnectedMachine.Machine.Configuration; - await ApplicationManager.ConnectedMachine.UploadHardwareConfiguration(configuration.HardwareVersion, configuration); + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var config = db.Adapter.GetConfiguration(s => s.Guid == ApplicationManager.ConnectedMachine.Machine.ConfigurationGuid); + var hw = db.Adapter.GetHardwareVersionByMachine(ApplicationManager.ConnectedMachine.Machine.Guid); + + await ApplicationManager.ConnectedMachine.UploadHardwareConfiguration(hw, config); + } NotificationProvider.ShowInfo("Hardware configuration uploaded successfully."); } catch (Exception ex) @@ -623,20 +635,19 @@ namespace Tango.MachineStudio.UI.ViewModels { LogManager.Log(String.Format("Starting module '{0}'...", module.Name)); - if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + if (!(MainView.Self as MainView).NavigationControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) { LogManager.Log("Module was not initialized. Initializing..."); FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; NavigationControl.SetNavigationName(view, module.Name); - (MainView.Self as MainView).TransitionControl.Elements.Add(view); + (MainView.Self as MainView).NavigationControl.Elements.Add(view); } } foreach (var m in StudioModuleLoader.AllModules.Where(x => x != module && !x.InNewWindow)) { m.IsLoaded = false; - TangoIOC.Default.GetModuleViewModels(m).ToList().ForEach(x => x.OnNavigatedFrom()); } if (module != null) @@ -646,15 +657,13 @@ namespace Tango.MachineStudio.UI.ViewModels IsModuleLoaded = true; LogManager.Log(String.Format("Navigating to module '{0}'...", module.Name)); - (MainView.Self as MainView).TransitionControl.NavigateTo(module.Name); - - TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(x => x.OnNavigatedTo()); + (MainView.Self as MainView).NavigationControl.NavigateTo(module.Name); } else { IsModuleLoaded = false; LogManager.Log(String.Format("Navigating to Home...")); - (MainView.Self as MainView).TransitionControl.NavigateTo("Home"); + (MainView.Self as MainView).NavigationControl.NavigateTo("Home"); } } @@ -674,16 +683,16 @@ namespace Tango.MachineStudio.UI.ViewModels LogManager.Log(String.Format("Starting module '{0}' in new window...", module.Name)); - if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + if (!(MainView.Self as MainView).NavigationControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) { LogManager.Log("Module was not initialized. Initializing..."); FrameworkElement v = Activator.CreateInstance(module.MainViewType) as FrameworkElement; NavigationControl.SetNavigationName(v, module.Name); - (MainView.Self as MainView).TransitionControl.Elements.Add(v); + (MainView.Self as MainView).NavigationControl.Elements.Add(v); } LogManager.Log("Detaching module view..."); - var view = (MainView.Self as MainView).TransitionControl.GetAndDetach(module.Name); + var view = (MainView.Self as MainView).NavigationControl.GetAndDetach(module.Name); ModuleWindowVM vm = new ModuleWindowVM(module); ModuleWindow window = new ModuleWindow(this, vm, view); @@ -694,7 +703,6 @@ namespace Tango.MachineStudio.UI.ViewModels window.grid.Children.Remove(view); module.InNewWindow = false; - TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(v => v.OnNavigatedFrom()); }; window.Owner = MainWindow.Instance; @@ -702,8 +710,6 @@ namespace Tango.MachineStudio.UI.ViewModels LogManager.Log("Opening new window..."); window.Show(); - TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(x => x.OnNavigatedTo()); - (_applicationManager as DefaultStudioApplicationManager).RegisterOpenedWindow(window); } catch (Exception ex) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs index f2550c598..c5831f701 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs @@ -319,9 +319,9 @@ namespace Tango.MachineStudio.UI.ViewModels try { Process p = new Process(); - p.StartInfo.FileName = _appPath + "\\Tango.MachineStudio.Updater.exe"; + p.StartInfo.FileName = _newPackageTempFolder + "\\Tango.MachineStudio.Updater.exe"; p.StartInfo.UseShellExecute = true; - p.StartInfo.Arguments = _newPackageTempFolder; + p.StartInfo.Arguments = _appPath; p.Start(); } catch (Exception ex) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml index 08e1006c1..68334ad24 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml @@ -5,7 +5,9 @@ xmlns:rules="clr-namespace:Tango.MachineStudio.Common.ValidationRules;assembly=Tango.MachineStudio.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:automation="clr-namespace:Tango.MachineStudio.Common.Automation;assembly=Tango.MachineStudio.Common" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" @@ -13,6 +15,8 @@ <UserControl.Resources> <rules:Required x:Key="Required"></rules:Required> + <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> + <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> </UserControl.Resources> @@ -24,21 +28,30 @@ <Image Source="/Images/machine-trans.png" RenderOptions.BitmapScalingMode="Fant" Width="100"></Image> <TextBlock Margin="20 0 0 0" VerticalAlignment="Center" FontSize="70" Foreground="{StaticResource AccentColorBrush}">Machine Studio</TextBlock> </StackPanel> - <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Width="320" Margin="0 120 0 0"> - <TextBlock HorizontalAlignment="Center" FontSize="24">Login to your account</TextBlock> - <Image Source="/Images/account.png" RenderOptions.BitmapScalingMode="Fant" Width="100" Margin="0 20 0 0"></Image> - <DockPanel Margin="0 20 0 0"> - <materialDesign:PackIcon Margin="0 0 0 0" Width="20" Height="20" VerticalAlignment="Top" Foreground="{Binding ElementName=txtEmail, Path=BorderBrush}" Kind="EmailOutline" /> - <TextBox x:Name="txtEmail" IsTabStop="True" Margin="5 0 0 0" materialDesign:HintAssist.FloatingScale="0.50" materialDesign:HintAssist.Hint="Email" materialDesign:TextFieldAssist.TextBoxViewMargin="1 0 1 0" FontSize="20" Style="{StaticResource MaterialDesignFloatingHintTextBox}" Text="{Binding Email,UpdateSourceTrigger=PropertyChanged,ValidatesOnNotifyDataErrors=True}" AutomationProperties.IsRequiredForForm="True" /> - </DockPanel> - <DockPanel Margin="0 20 0 0"> - <materialDesign:PackIcon Margin="0 0 0 0" Width="20" Height="20" VerticalAlignment="Top" Foreground="{Binding ElementName=txtPass, Path=BorderBrush}" Kind="Key" /> - <PasswordBox x:Name="txtPass" helpers:PasswordHelper.Attach="True" helpers:PasswordHelper.Password="{Binding Password,Mode=TwoWay}" Margin="5 0 0 0" materialDesign:HintAssist.FloatingScale="0.50" materialDesign:HintAssist.Hint="Password" materialDesign:TextFieldAssist.TextBoxViewMargin="1 0 1 0" FontSize="20" Style="{StaticResource MaterialDesignFloatingHintPasswordBox}" AutomationProperties.IsRequiredForForm="True" /> - </DockPanel> - <CheckBox Margin="25 20 0 0" IsChecked="{Binding RememberMe}">Remember me</CheckBox> - <Button AutomationProperties.AutomationId="{x:Static automation:UI.LoginButton}" Margin="25 20 0 0" Height="50" Command="{Binding LoginCommand}" Content="LOGIN"> + <DockPanel HorizontalAlignment="Center" VerticalAlignment="Center" Width="320" Margin="0 120 0 0" Height="398"> - </Button> - </StackPanel> + <Button DockPanel.Dock="Bottom" AutomationProperties.AutomationId="{x:Static automation:UI.LoginButton}" Margin="25 20 0 0" Height="50" Command="{Binding LoginCommand}" Content="LOGIN"></Button> + + <Grid> + <StackPanel Visibility="{Binding IsLogging,Converter={StaticResource BooleanToVisibilityInverseConverter}}"> + <TextBlock HorizontalAlignment="Center" FontSize="24">Login to your account</TextBlock> + <Image Source="/Images/account.png" RenderOptions.BitmapScalingMode="Fant" Width="100" Margin="0 20 0 0"></Image> + <DockPanel Margin="0 20 0 0"> + <materialDesign:PackIcon Margin="0 0 0 0" Width="20" Height="20" VerticalAlignment="Top" Foreground="{Binding ElementName=txtEmail, Path=BorderBrush}" Kind="EmailOutline" /> + <TextBox x:Name="txtEmail" IsTabStop="True" Margin="5 0 0 0" materialDesign:HintAssist.FloatingScale="0.50" materialDesign:HintAssist.Hint="Email" materialDesign:TextFieldAssist.TextBoxViewMargin="1 0 1 0" FontSize="20" Style="{StaticResource MaterialDesignFloatingHintTextBox}" Text="{Binding Email,UpdateSourceTrigger=PropertyChanged,ValidatesOnNotifyDataErrors=True}" AutomationProperties.IsRequiredForForm="True" /> + </DockPanel> + <DockPanel Margin="0 20 0 0"> + <materialDesign:PackIcon Margin="0 0 0 0" Width="20" Height="20" VerticalAlignment="Top" Foreground="{Binding ElementName=txtPass, Path=BorderBrush}" Kind="Key" /> + <PasswordBox x:Name="txtPass" helpers:PasswordHelper.Attach="True" helpers:PasswordHelper.Password="{Binding Password,Mode=TwoWay}" Margin="5 0 0 0" materialDesign:HintAssist.FloatingScale="0.50" materialDesign:HintAssist.Hint="Password" materialDesign:TextFieldAssist.TextBoxViewMargin="1 0 1 0" FontSize="20" Style="{StaticResource MaterialDesignFloatingHintPasswordBox}" AutomationProperties.IsRequiredForForm="True" /> + </DockPanel> + <CheckBox Margin="25 20 0 0" IsChecked="{Binding RememberMe}">Remember me</CheckBox> + </StackPanel> + + <StackPanel Visibility="{Binding IsLogging,Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Center"> + <mahapps:ProgressRing Width="80" Height="80" IsActive="{Binding IsLogging}"></mahapps:ProgressRing> + <TextBlock HorizontalAlignment="Center" Margin="0 30 0 0" FontSize="18" FontStyle="Italic">Logging you in...</TextBlock> + </StackPanel> + </Grid> + </DockPanel> </Grid> </UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml index 7044ad32e..9a494f862 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml @@ -12,7 +12,6 @@ xmlns:entities="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" - xmlns:db="clr-namespace:Tango.MachineStudio.DB.Views;assembly=Tango.MachineStudio.DB" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" xmlns:commonConverters="clr-namespace:Tango.MachineStudio.Common.Converters;assembly=Tango.MachineStudio.Common" mc:Ignorable="d" @@ -398,7 +397,7 @@ </Grid.RowDefinitions> <Grid Grid.Row="1"> - <controls:NavigationControl x:Name="TransitionControl" TransitionAlwaysFades="True" TransitionType="Zoom"> + <controls:NavigationControl x:Name="NavigationControl" TransitionAlwaysFades="True" TransitionType="Zoom"> <Grid controls:NavigationControl.NavigationName="Home"> <Grid.RowDefinitions> <RowDefinition Height="150"/> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs index 1e894f3f2..ca8d7066c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs @@ -27,6 +27,7 @@ using Tango.SharedUI.Helpers; using Tango.Logging; using static Tango.SharedUI.Controls.NavigationControl; using Tango.Core.DI; +using Tango.MachineStudio.Common.StudioApplication; namespace Tango.MachineStudio.UI.Views { @@ -37,10 +38,14 @@ namespace Tango.MachineStudio.UI.Views { private DefaultStudioModuleLoader _loader; + public static MainView Instance { get; set; } + public MainView() : base() { InitializeComponent(); + Instance = this; + _loader = TangoIOC.Default.GetInstance<IStudioModuleLoader>() as DefaultStudioModuleLoader; _loader.ModulesLoaded += Loader_ModulesLoaded; } @@ -68,11 +73,11 @@ namespace Tango.MachineStudio.UI.Views ThreadsHelper.InvokeUI(() => { - if (!TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + if (!NavigationControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) { FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; NavigationControl.SetNavigationName(view, module.Name); - TransitionControl.Elements.Add(view); + NavigationControl.Elements.Add(view); } _loader.UserModules.Add(module); @@ -84,6 +89,11 @@ namespace Tango.MachineStudio.UI.Views } item.Pop(); + + ThreadsHelper.InvokeUI(() => + { + TangoIOC.Default.GetInstance<IStudioApplicationManager>().NotifyApplicationReady(); + }); }); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml index 3b5affbbf..97c42d58d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml @@ -41,15 +41,7 @@ <DataTemplate> <Border BorderBrush="#E6E6E6" BorderThickness="0 0 0 1" Padding="5"> <DockPanel> - <StackPanel Orientation="Horizontal"> - <Image Source="/Images/bug.png" Width="24" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0"> - <TextBlock Text="{Binding Title}" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"></TextBlock> - <TextBlock Text="{Binding Comment,TargetNullValue='Comment',FallbackValue='Comment'}" Foreground="Gray" FontSize="10"></TextBlock> - </StackPanel> - </StackPanel> - - <StackPanel HorizontalAlignment="Right" Orientation="Horizontal"> + <StackPanel DockPanel.Dock="Right" HorizontalAlignment="Right" Orientation="Horizontal"> <Button Background="#FF8282" BorderBrush="#FF8282" Padding="0" Width="90" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.DeclineCommand}" CommandParameter="{Binding}"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon VerticalAlignment="Center" Kind="Close" /> @@ -63,6 +55,14 @@ </StackPanel> </Button> </StackPanel> + + <StackPanel Orientation="Horizontal" Margin="0 0 10 0" Width="320" HorizontalAlignment="Left"> + <Image Source="/Images/bug.png" Width="24" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" ToolTip="{Binding Comment}"> + <TextBlock Text="{Binding Title}" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"></TextBlock> + <TextBlock Text="{Binding Comment,TargetNullValue='Comment',FallbackValue='Comment'}" TextWrapping="Wrap" Foreground="Gray" FontSize="10"></TextBlock> + </StackPanel> + </StackPanel> </DockPanel> </Border> </DataTemplate> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj index 8e9d60541..b2200895c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj @@ -12,7 +12,7 @@ <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>Tango.MachineStudio.UpdateService</RootNamespace> <AssemblyName>Tango.MachineStudio.UpdateService</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <WcfConfigValidationEnabled>True</WcfConfigValidationEnabled> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <UseIISExpress>true</UseIISExpress> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config index 6fd5e637f..32a2460df 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> @@ -27,8 +27,7 @@ </bindings> <services> <service name="Tango.MachineStudio.UpdateService.MachineStudioUpdateService"> - <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LongTimeoutHttpBinding" - name="" contract="Tango.MachineStudio.Common.Update.IMachineStudioUpdateService" /> + <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LongTimeoutHttpBinding" name="" contract="Tango.MachineStudio.Common.Update.IMachineStudioUpdateService" /> </service> </services> <behaviors> @@ -106,6 +105,10 @@ <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="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> + </dependentAssembly> </assemblyBinding> </runtime> </configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/MainWindow.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/MainWindow.xaml.cs index a0c6928d2..759f5d8d1 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/MainWindow.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/MainWindow.xaml.cs @@ -23,13 +23,13 @@ namespace Tango.MachineStudio.Updater /// </summary> public partial class MainWindow : Window { - private String _appPath = AppDomain.CurrentDomain.BaseDirectory; + private String _sourceFolder = AppDomain.CurrentDomain.BaseDirectory; private String _msProcessName = "Tango.MachineStudio.UI"; - private String _sourceFolder = App.StartupArgs.FirstOrDefault(); + private String _appPath = String.Join(" ", App.StartupArgs); public MainWindow() { - if (!Directory.Exists(_sourceFolder)) + if (!Directory.Exists(_appPath)) { ShowError("This update utility can only be executed by Machine Studio."); Environment.Exit(0); @@ -47,6 +47,7 @@ namespace Tango.MachineStudio.Updater private void Update() { EnsureMachineStudioIsDown(); + RemoveOldDLLFiles(); ReplaceFiles(); StartMachineStudio(); Environment.Exit(0); @@ -65,6 +66,23 @@ namespace Tango.MachineStudio.Updater p.Start(); } + private void RemoveOldDLLFiles() + { + foreach (string dll in Directory.GetFiles(_appPath, "*.dll")) + { + try + { + File.Delete(dll); + } + catch + { + ShowError($"The file '{Path.GetFileName(dll)}' could not be removed. Please close all instances of Machine Studio and press OK."); + RemoveOldDLLFiles(); + return; + } + } + } + private void ReplaceFiles() { int maxProgress = Directory.GetFiles(_sourceFolder, "*.*", SearchOption.AllDirectories).Length; @@ -116,11 +134,23 @@ namespace Tango.MachineStudio.Updater do { appProcess = Process.GetProcessesByName(_msProcessName).FirstOrDefault(); + Process p = new Process(); + p.StartInfo.CreateNoWindow = true; + p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + p.StartInfo.FileName = "wmic"; + p.StartInfo.Arguments = String.Format("process where name='{0}' delete", _msProcessName); if (appProcess != null) { tries++; appProcess.Kill(); + + try + { + p.Start(); + } + catch { } + Thread.Sleep(1000); } @@ -133,9 +163,6 @@ namespace Tango.MachineStudio.Updater } while (appProcess != null); } - /// <summary> - /// Forces UI rendering. - /// </summary> private void DoEvents() { Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { })); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Properties/AssemblyInfo.cs index e9a89a0ee..10e0e252e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Updater Utility")] -[assembly: AssemblyVersion("2.0.7.1633")] +[assembly: AssemblyVersion("2.0.8.1159")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj index db6fcb52f..241085122 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Updater/Tango.MachineStudio.Updater.csproj @@ -8,7 +8,7 @@ <OutputType>WinExe</OutputType> <RootNamespace>Tango.MachineStudio.Updater</RootNamespace> <AssemblyName>Tango.MachineStudio.Updater</AssemblyName> - <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <WarningLevel>4</WarningLevel> |
