aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-01-03 15:11:49 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-01-03 15:11:49 +0200
commit0fc95107f2da4f93f7c135e7c29802bd7d785431 (patch)
tree11f6c6e961a30ad942edf38dc6aebee501fed34a
parent63b2a192ba12f8239668b6818db4ad02db68dbbc (diff)
downloadTango-0fc95107f2da4f93f7c135e7c29802bd7d785431.tar.gz
Tango-0fc95107f2da4f93f7c135e7c29802bd7d785431.zip
Added Mid Tanks to DB.
Started implementing Machine Designer.
-rw-r--r--Software/DB/Tango.dbbin602112 -> 602112 bytes
-rw-r--r--Software/DB/Tango.mdfbin75497472 -> 75497472 bytes
-rw-r--r--Software/DB/Tango_log.ldfbin8388608 -> 8388608 bytes
-rw-r--r--Software/Graphics/dispenser.pngbin0 -> 18037 bytes
-rw-r--r--Software/Graphics/machine-full-fx.pngbin0 -> 217186 bytes
-rw-r--r--Software/Graphics/machine-sketch.pngbin0 -> 41120 bytes
-rw-r--r--Software/Graphics/mid-tank.pngbin0 -> 2800 bytes
-rw-r--r--Software/Graphics/ti-tm4c129x.pngbin0 -> 352430 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj15
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs9
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MidTankTypesViewVM.cs18
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPackView.xaml15
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPacksView.xaml11
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml31
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml25
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml.cs32
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.pngbin0 -> 18037 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-full-fx.pngbin0 -> 217186 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-sketch.pngbin0 -> 41120 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.pngbin0 -> 2800 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.pngbin0 -> 352430 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/MachineDesignerModule.cs39
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs18
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.Designer.cs62
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj177
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModelLocator.cs31
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs53
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml198
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config11
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config8
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj8
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/IDS_PACKS.cs4
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx51
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram17
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/MID_TANK_TYPES.cs25
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Entities/Cartridge.cs22
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Entities/CartridgeType.cs21
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Entities/IdsPack.cs62
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Entities/MidTankType.cs117
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Enumerations/MidTankTypes.cs12
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapterExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE.cs8
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE_TYPES.cs3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs6
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MID_TANK_TYPES.cs34
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx210
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram86
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj3
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/DragAndDropService.cs728
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/DraggingSurface.cs25
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/DropEventArgs.cs48
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs6
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.Designer.cs63
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.Designer.cs26
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj118
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml12
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml.cs28
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Helpers/UIHelper.cs361
-rw-r--r--Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj8
-rw-r--r--Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs11
-rw-r--r--Software/Visual_Studio/Tango.sln45
74 files changed, 3123 insertions, 181 deletions
diff --git a/Software/DB/Tango.db b/Software/DB/Tango.db
index d676fc8c3..555cd32f7 100644
--- a/Software/DB/Tango.db
+++ b/Software/DB/Tango.db
Binary files differ
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf
index f9471f81a..041bdac8b 100644
--- a/Software/DB/Tango.mdf
+++ b/Software/DB/Tango.mdf
Binary files differ
diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf
index 5464292cb..c64f7bf70 100644
--- a/Software/DB/Tango_log.ldf
+++ b/Software/DB/Tango_log.ldf
Binary files differ
diff --git a/Software/Graphics/dispenser.png b/Software/Graphics/dispenser.png
new file mode 100644
index 000000000..82cf1a39a
--- /dev/null
+++ b/Software/Graphics/dispenser.png
Binary files differ
diff --git a/Software/Graphics/machine-full-fx.png b/Software/Graphics/machine-full-fx.png
new file mode 100644
index 000000000..b3c497546
--- /dev/null
+++ b/Software/Graphics/machine-full-fx.png
Binary files differ
diff --git a/Software/Graphics/machine-sketch.png b/Software/Graphics/machine-sketch.png
new file mode 100644
index 000000000..a4e1ae2a8
--- /dev/null
+++ b/Software/Graphics/machine-sketch.png
Binary files differ
diff --git a/Software/Graphics/mid-tank.png b/Software/Graphics/mid-tank.png
new file mode 100644
index 000000000..d22896e86
--- /dev/null
+++ b/Software/Graphics/mid-tank.png
Binary files differ
diff --git a/Software/Graphics/ti-tm4c129x.png b/Software/Graphics/ti-tm4c129x.png
new file mode 100644
index 000000000..9c280255e
--- /dev/null
+++ b/Software/Graphics/ti-tm4c129x.png
Binary files differ
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 01cd9d1a9..4faf2125a 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
@@ -125,6 +125,7 @@
<Compile Include="ViewModels\MediaConditionsViewVM.cs" />
<Compile Include="ViewModels\MediaMaterialsViewVM.cs" />
<Compile Include="ViewModels\MediaPurposesViewVM.cs" />
+ <Compile Include="ViewModels\MidTankTypesViewVM.cs" />
<Compile Include="ViewModels\MultiComboVM.cs" />
<Compile Include="ViewModels\OrganizationsViewVM.cs" />
<Compile Include="ViewModels\PermissionsViewVM.cs" />
@@ -140,6 +141,12 @@
<Compile Include="Views\DBViews\ActionTypeView.xaml.cs">
<DependentUpon>ActionTypeView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\DBViews\MidTankTypesView.xaml.cs">
+ <DependentUpon>MidTankTypesView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\DBViews\MidTankTypeView.xaml.cs">
+ <DependentUpon>MidTankTypeView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\DBViews\CatsView.xaml.cs">
<DependentUpon>CatsView.xaml</DependentUpon>
</Compile>
@@ -367,6 +374,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Views\DBViews\MidTankTypesView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="Views\DBViews\MidTankTypeView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Views\DBViews\CatsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs
index 857f0d3cf..3079f8e5f 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs
@@ -41,6 +41,7 @@ namespace Tango.MachineStudio.DB
SimpleIoc.Default.Register<LiquidTypesViewVM>();
SimpleIoc.Default.Register<CartridgesViewVM>();
SimpleIoc.Default.Register<CartridgeTypesViewVM>();
+ SimpleIoc.Default.Register<MidTankTypesViewVM>();
SimpleIoc.Default.Register<EventTypesViewVM>();
SimpleIoc.Default.Register<ActionTypesViewVM>();
@@ -339,5 +340,13 @@ namespace Tango.MachineStudio.DB
return ServiceLocator.Current.GetInstance<CatsViewVM>();
}
}
+
+ public static MidTankTypesViewVM MidTankTypesViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<MidTankTypesViewVM>();
+ }
+ }
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MidTankTypesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MidTankTypesViewVM.cs
new file mode 100644
index 000000000..6203a8fe3
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MidTankTypesViewVM.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.DAL.Observables;
+using Tango.MachineStudio.Common.Notifications;
+
+namespace Tango.MachineStudio.DB.ViewModels
+{
+ public class MidTankTypesViewVM : DbTableViewModel<MidTankType>
+ {
+ public MidTankTypesViewVM(INotificationProvider notification) : base(notification)
+ {
+
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPackView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPackView.xaml
index be6b135ce..699a9ceb6 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPackView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPackView.xaml
@@ -51,11 +51,20 @@
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
- <TextBlock Text="Cartridge:" FontWeight="Bold"></TextBlock>
- <ComboBox ItemsSource="{Binding Adapter.Cartridges}" SelectedItem="{Binding EditEntity.Cartridge,Mode=TwoWay}">
+ <TextBlock Text="Cartridge Type:" FontWeight="Bold"></TextBlock>
+ <ComboBox ItemsSource="{Binding Adapter.CartridgeTypes}" SelectedItem="{Binding EditEntity.CartridgeTypes,Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
- <TextBlock><Run Text="{Binding SerialNumber}"></Run><Run>,</Run> <Run Text="{Binding CartridgeTypes.Name}"></Run></TextBlock>
+ <TextBlock><Run Text="{Binding Name}"></Run></TextBlock>
+ </DataTemplate>
+ </ComboBox.ItemTemplate>
+ </ComboBox>
+
+ <TextBlock Text="Mid Tank Type:" FontWeight="Bold"></TextBlock>
+ <ComboBox ItemsSource="{Binding Adapter.MidTankTypes}" SelectedItem="{Binding EditEntity.MidTankTypes,Mode=TwoWay}">
+ <ComboBox.ItemTemplate>
+ <DataTemplate>
+ <TextBlock><Run Text="{Binding Name}"></Run></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPacksView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPacksView.xaml
index 7720a07ae..4a35b1900 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPacksView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/IdsPacksView.xaml
@@ -43,10 +43,17 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
- <DataGridTemplateColumn Header="Cartridge">
+ <DataGridTemplateColumn Header="Cartridge Type">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
- <TextBlock><Run Text="{Binding Cartridge.SerialNumber}"></Run><Run>,</Run> <Run Text="{Binding Dispenser.CartridgeTypes.Name}"></Run></TextBlock>
+ <TextBlock><Run Text="{Binding CartridgeTypes.Name}"></Run></TextBlock>
+ </DataTemplate>
+ </DataGridTemplateColumn.CellTemplate>
+ </DataGridTemplateColumn>
+ <DataGridTemplateColumn Header="Mid Tank Type">
+ <DataGridTemplateColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock><Run Text="{Binding MidTankTypes.Name}"></Run></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml
new file mode 100644
index 000000000..c6875a1da
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml
@@ -0,0 +1,31 @@
+<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.MidTankTypeView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls"
+ xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:vm="clr-namespace:Tango.MachineStudio.DB.ViewModels"
+ xmlns:local="clr-namespace:Tango.MachineStudio.DB.Views.DBViews"
+ mc:Ignorable="d"
+ d:DesignHeight="400" d:DesignWidth="300" d:DataContext="{d:DesignInstance Type=vm:MidTankTypesViewVM, IsDesignTimeCreatable=False}">
+
+ <Grid>
+ <controls:TableGrid>
+ <TextBlock Text="ID:" FontWeight="Bold"></TextBlock>
+ <TextBox Text="{Binding EditEntity.ID}" IsReadOnly="True"></TextBox>
+ <TextBlock Text="GUID:" FontWeight="Bold"></TextBlock>
+ <TextBox Text="{Binding EditEntity.Guid}" IsReadOnly="True"></TextBox>
+ <TextBlock Text="Last Updated:" FontWeight="Bold"></TextBlock>
+ <TextBox Text="{Binding EditEntity.LastUpdated}" IsReadOnly="True"></TextBox>
+ <TextBlock Text="Code:" FontWeight="Bold"></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="False" HorizontalContentAlignment="Left" Value="{Binding EditEntity.Code,Mode=TwoWay}"></mahapps:NumericUpDown>
+ <TextBlock Text="Name:" FontWeight="Bold"></TextBlock>
+ <TextBox Text="{Binding EditEntity.Name,Mode=TwoWay}"></TextBox>
+ <TextBlock Text="Liters Capacity:" FontWeight="Bold"></TextBlock>
+ <mahapps:NumericUpDown Minimum="0" Maximum="10000" InterceptArrowKeys="True" Background="Transparent" BorderThickness="0" InterceptMouseWheel="True" HasDecimals="True" HorizontalContentAlignment="Left" Value="{Binding EditEntity.LiterCapacity,Mode=TwoWay}"></mahapps:NumericUpDown>
+ </controls:TableGrid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml.cs
new file mode 100644
index 000000000..5b279f2e0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypeView.xaml.cs
@@ -0,0 +1,28 @@
+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.DB.Views.DBViews
+{
+ /// <summary>
+ /// Interaction logic for MachineView.xaml
+ /// </summary>
+ public partial class MidTankTypeView : UserControl
+ {
+ public MidTankTypeView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml
new file mode 100644
index 000000000..a808b8438
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml
@@ -0,0 +1,25 @@
+<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.MidTankTypesView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:global="clr-namespace:Tango.MachineStudio.DB"
+ xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" Background="White" DataContext="{x:Static global:ViewModelLocator.MidTankTypesViewVM}">
+ <Grid>
+ <controls:DbTableView>
+ <DataGrid Background="Transparent" ItemsSource="{Binding Adapter.MidTankTypesViewSource}" SelectedItem="{Binding SelectedEntity}" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" IsReadOnly="True">
+ <DataGrid.Columns>
+ <DataGridTextColumn Header="ID" Binding="{Binding ID}"></DataGridTextColumn>
+ <DataGridTextColumn Header="GUID" Binding="{Binding Guid}"></DataGridTextColumn>
+ <DataGridTextColumn Header="Code" Binding="{Binding Code}"></DataGridTextColumn>
+ <DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn>
+ <DataGridTextColumn Header="Capacity" Binding="{Binding LiterCapacity}"></DataGridTextColumn>
+ </DataGrid.Columns>
+ </DataGrid>
+ </controls:DbTableView>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml.cs
new file mode 100644
index 000000000..020e9dcc2
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/MidTankTypesView.xaml.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Tango.MachineStudio.DB.CustomAttributes;
+using Tango.MachineStudio.DB.Managers;
+using Tango.SharedUI.Controls;
+
+namespace Tango.MachineStudio.DB.Views.DBViews
+{
+ /// <summary>
+ /// Interaction logic for MachinesView.xaml
+ /// </summary>
+ [DBView]
+ public partial class MidTankTypesView : UserControl
+ {
+ public MidTankTypesView() : base()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png
new file mode 100644
index 000000000..82cf1a39a
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-full-fx.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-full-fx.png
new file mode 100644
index 000000000..b3c497546
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-full-fx.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-sketch.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-sketch.png
new file mode 100644
index 000000000..a4e1ae2a8
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-sketch.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png
new file mode 100644
index 000000000..d22896e86
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png
new file mode 100644
index 000000000..9c280255e
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/MachineDesignerModule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/MachineDesignerModule.cs
new file mode 100644
index 000000000..e7b343db8
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/MachineDesignerModule.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.DAL.Observables;
+using Tango.MachineStudio.Common;
+using Tango.MachineStudio.MachineDesigner.Views;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.MachineStudio.MachineDesigner
+{
+ public class MachineDesignerModule : IStudioModule
+ {
+ public string Name => "Machine Designer";
+
+ public string Description => "Provides a graphical control over machine configurations. Create, manage and deploy machine configurations using simple drag and drop interface.";
+
+ public BitmapSource Image => ResourceHelper.GetImageFromResources("Images/machine-sketch.png");
+
+ public FrameworkElement MainView => new MainView();
+
+ public Permissions Permission => Permissions.RunDeveloperModule;
+
+ public bool IsInitialized => true;
+
+ public void Dispose()
+ {
+
+ }
+
+ public void Initialize()
+ {
+
+ }
+ }
+}
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
new file mode 100644
index 000000000..2470d1d64
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/AssemblyInfo.cs
@@ -0,0 +1,18 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+[assembly: AssemblyTitle("Tango - Machine Studio Machine Designer Module")]
+
+[assembly: ComVisible(false)]
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..83f9d4088
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.MachineStudio.MachineDesigner.Properties {
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.MachineStudio.MachineDesigner.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.resx b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.resx
new file mode 100644
index 000000000..af7dbebba
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Resources.resx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..7dbfd3b21
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.MachineStudio.MachineDesigner.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.settings b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.settings
new file mode 100644
index 000000000..033d7a5e9
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj
new file mode 100644
index 000000000..41157a0be
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{D0CE8122-077D-42A2-9490-028AE4769B52}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>Tango.MachineStudio.MachineDesigner</RootNamespace>
+ <AssemblyName>Tango.MachineStudio.MachineDesigner</AssemblyName>
+ <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\..\Build\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="GalaSoft.MvvmLight, Version=5.3.0.19026, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
+ </Reference>
+ <Reference Include="GalaSoft.MvvmLight.Extras, Version=5.3.0.19032, Culture=neutral, PublicKeyToken=669f0b5e8f868abf, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Extras.dll</HintPath>
+ </Reference>
+ <Reference Include="GalaSoft.MvvmLight.Platform, Version=5.3.0.19032, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
+ </Reference>
+ <Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
+ </Reference>
+ <Reference Include="MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
+ </Reference>
+ <Reference Include="MaterialDesignThemes.Wpf, Version=2.3.1.953, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="ViewModelLocator.cs" />
+ <Compile Include="ViewModels\MainViewVM.cs" />
+ <Compile Include="Views\MainView.xaml.cs">
+ <DependentUpon>MainView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="..\..\..\Versioning\GlobalVersionInfo.cs">
+ <Link>GlobalVersionInfo.cs</Link>
+ </Compile>
+ <Compile Include="MachineDesignerModule.cs" />
+ <Page Include="Views\MainView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="app.config" />
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj">
+ <Project>{bb2abb74-ba58-4812-83aa-ec8171f42df4}</Project>
+ <Name>Tango.AutoComplete</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.ColorPicker\Tango.ColorPicker.csproj">
+ <Project>{a2f5af44-29ff-45d6-9d25-ecda5cce88b5}</Project>
+ <Name>Tango.ColorPicker</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj">
+ <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
+ <Name>Tango.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.DAL.Observables\Tango.DAL.Observables.csproj">
+ <Project>{0ecd6da8-7aa6-48d9-8b65-279d176ad9af}</Project>
+ <Name>Tango.DAL.Observables</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.DragAndDrop\Tango.DragAndDrop.csproj">
+ <Project>{b112d89a-a106-41ae-a0c1-4abc84c477f5}</Project>
+ <Name>Tango.DragAndDrop</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Logging\Tango.Logging.csproj">
+ <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project>
+ <Name>Tango.Logging</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.PMR\Tango.PMR.csproj">
+ <Project>{e4927038-348d-4295-aaf4-861c58cb3943}</Project>
+ <Name>Tango.PMR</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Settings\Tango.Settings.csproj">
+ <Project>{d8f1ad85-526a-4f50-b6dc-d437af63d8d8}</Project>
+ <Name>Tango.Settings</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.SharedUI\Tango.SharedUI.csproj">
+ <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
+ <Name>Tango.SharedUI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Synchronization\Tango.Synchronization.csproj">
+ <Project>{7ada4e86-cad7-4968-a210-3a8a9e5153ab}</Project>
+ <Name>Tango.Synchronization</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Transport\Tango.Transport.csproj">
+ <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project>
+ <Name>Tango.Transport</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
+ <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
+ <Name>Tango.MachineStudio.Common</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\machine-full-fx.png" />
+ <Resource Include="Images\machine-sketch.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\mid-tank.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\dispenser.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\ti-tm4c129x.png" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModelLocator.cs
new file mode 100644
index 000000000..66018e09c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModelLocator.cs
@@ -0,0 +1,31 @@
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Ioc;
+using Microsoft.Practices.ServiceLocation;
+using Tango.MachineStudio.MachineDesigner.ViewModels;
+
+namespace Tango.MachineStudio.MachineDesigner
+{
+ /// <summary>
+ /// This class contains static references to all the view models in the
+ /// application and provides an entry point for the bindings.
+ /// </summary>
+ public static class ViewModelLocator
+ {
+ /// <summary>
+ /// Initializes a new instance of the ViewModelLocator class.
+ /// </summary>
+ static ViewModelLocator()
+ {
+ ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
+ SimpleIoc.Default.Register<MainViewVM>();
+ }
+
+ public static MainViewVM MainViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<MainViewVM>();
+ }
+ }
+ }
+} \ No newline at end of file
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
new file mode 100644
index 000000000..120ae7972
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.DAL.Observables;
+using Tango.SharedUI;
+
+namespace Tango.MachineStudio.MachineDesigner.ViewModels
+{
+ public class MainViewVM : ViewModel
+ {
+ private ObservablesEntitiesAdapter _adapter;
+ /// <summary>
+ /// Gets or sets the db adapter.
+ /// </summary>
+ public ObservablesEntitiesAdapter Adapter
+ {
+ get { return _adapter; }
+ set { _adapter = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Machine _machine;
+ /// <summary>
+ /// Gets or sets the machine.
+ /// </summary>
+ public Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); }
+ }
+
+ private Configuration _configuration;
+ /// <summary>
+ /// Gets or sets the configuration.
+ /// </summary>
+ public Configuration Configuration
+ {
+ get { return _configuration; }
+ set { _configuration = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MainViewVM"/> class.
+ /// </summary>
+ public MainViewVM()
+ {
+ Adapter = ObservablesEntitiesAdapter.Instance;
+ Machine = Adapter.Machines.First();
+ Configuration = Machine.Configuration;
+ }
+ }
+}
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
new file mode 100644
index 000000000..cc0b43e48
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml
@@ -0,0 +1,198 @@
+<UserControl x:Class="Tango.MachineStudio.MachineDesigner.Views.MainView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop"
+ xmlns:global="clr-namespace:Tango.MachineStudio.MachineDesigner"
+ xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" Background="White" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">
+ <Grid>
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="477*"/>
+ <ColumnDefinition Width="250"/>
+ </Grid.ColumnDefinitions>
+
+ <Grid>
+ <Viewbox MaxWidth="900">
+ <Grid>
+ <Image Source="../Images/machine-full-fx.png" MaxWidth="800" RenderOptions.BitmapScalingMode="Fant">
+ <Image.Effect>
+ <DropShadowEffect ShadowDepth="0" BlurRadius="20" Opacity="1" RenderingBias="Performance" Color="DimGray"></DropShadowEffect>
+ </Image.Effect>
+ </Image>
+
+ <Canvas>
+ <Grid Canvas.Top="410" Canvas.Left="420" HorizontalAlignment="Right" VerticalAlignment="Bottom" Width="310" Height="90">
+ <UniformGrid Columns="8">
+ <Grid Margin="2">
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FF00E8FF"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FFD900FF"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FFFAFF00"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="Black"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="4 25 4 1">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="White"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant" Margin="2"></Image>
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant" Margin="2"></Image>
+ <Image Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant" Margin="2"></Image>
+ </UniformGrid>
+ <Rectangle VerticalAlignment="Bottom" Stroke="#202020" StrokeThickness="1">
+ <Rectangle.Effect>
+ <DropShadowEffect></DropShadowEffect>
+ </Rectangle.Effect>
+ </Rectangle>
+ </Grid>
+
+ <Grid Width="310" Height="90" Canvas.Top="314" Canvas.Left="420">
+ <UniformGrid Columns="8">
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FF00E8FF"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FFA800FF"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="#FFE9FF00"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <Rectangle Margin="14 25 13 34">
+ <Rectangle.Fill>
+ <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.8" Opacity="0.8">
+ <GradientStop Offset="0" Color="Transparent" />
+ <GradientStop Offset="1" Color="Black"/>
+ </LinearGradientBrush>
+ </Rectangle.Fill>
+ </Rectangle>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
+ <Grid Margin="2">
+ <Image Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
+ </UniformGrid>
+ </Grid>
+
+ <Grid Width="100" Height="100" Canvas.Left="70" Canvas.Top="331">
+ <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image>
+ </Grid>
+
+ <TextBlock Canvas.Top="163" Canvas.Left="288" FontStyle="Italic" Foreground="Gray">Touch Panel:</TextBlock>
+ <Grid Width="53" Height="55" Canvas.Top="184" Canvas.Left="279">
+ <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
+
+ <TextBlock Canvas.Top="441" Canvas.Left="156" FontStyle="Italic" Foreground="Gray">Embedded Firmware:</TextBlock>
+ <Grid Width="82" Height="26" Canvas.Top="410" Canvas.Left="158">
+ <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Right" StrokeThickness="1" StrokeDashArray="6" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
+
+ <TextBlock Canvas.Top="310" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Dispensers:</TextBlock>
+ <Grid Width="53" Height="20" Canvas.Top="331" Canvas.Left="377">
+ <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
+
+ <TextBlock Canvas.Top="420" Canvas.Left="340" FontStyle="Italic" Foreground="Gray">Mid Tanks:</TextBlock>
+ <Grid Width="53" Height="44" Canvas.Top="441" Canvas.Left="362">
+ <Rectangle Stroke="Gray" VerticalAlignment="Bottom" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
+ </Grid>
+ </Canvas>
+ </Grid>
+ </Viewbox>
+ </Grid>
+
+ <Grid Grid.Column="1" Background="#F6F6F6">
+
+ </Grid>
+ </Grid>
+
+ <dragAndDrop:DraggingSurface x:Name="dragSufrace" />
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs
new file mode 100644
index 000000000..bcf52aff0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs
@@ -0,0 +1,28 @@
+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.MachineDesigner.Views
+{
+ /// <summary>
+ /// Interaction logic for MainView.xaml
+ /// </summary>
+ public partial class MainView : UserControl
+ {
+ public MainView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config
new file mode 100644
index 000000000..cacd4cd77
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/app.config
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config
new file mode 100644
index 000000000..4fd672b32
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/packages.config
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="CommonServiceLocator" version="1.3" targetFramework="net46" />
+ <package id="MahApps.Metro" version="1.5.0" targetFramework="net46" />
+ <package id="MaterialDesignColors" version="1.1.2" targetFramework="net46" />
+ <package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net46" />
+ <package id="MvvmLightLibs" version="5.3.0.0" targetFramework="net46" />
+</packages> \ No newline at end of file
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 89823e4f7..886014be9 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
@@ -281,6 +281,14 @@
<Project>{94f7acf8-55e1-4a02-b9bc-a818413fdbbf}</Project>
<Name>Tango.MachineStudio.DB</Name>
</ProjectReference>
+ <ProjectReference Include="..\Modules\Tango.MachineStudio.Developer\Tango.MachineStudio.Developer.csproj">
+ <Project>{ce4a0d11-08a2-4cd6-9908-d6c62e80d805}</Project>
+ <Name>Tango.MachineStudio.Developer</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Modules\Tango.MachineStudio.MachineDesigner\Tango.MachineStudio.MachineDesigner.csproj">
+ <Project>{d0ce8122-077d-42a2-9490-028ae4769b52}</Project>
+ <Name>Tango.MachineStudio.MachineDesigner</Name>
+ </ProjectReference>
<ProjectReference Include="..\Modules\Tango.MachineStudio.Stubs\Tango.MachineStudio.Stubs.csproj">
<Project>{22c2aa72-9493-4d0d-b421-8ef9789fb192}</Project>
<Name>Tango.MachineStudio.Stubs</Name>
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/IDS_PACKS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/IDS_PACKS.cs
index cb94d5f67..c4ffb0cf2 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/IDS_PACKS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/IDS_PACKS.cs
@@ -21,6 +21,8 @@ namespace Tango.DAL.Local.DB
public string CONFIGURATION_GUID { get; set; }
public string DISPENSER_GUID { get; set; }
public string LIQUID_TYPE_GUID { get; set; }
- public string CARTRIDGE_GUID { get; set; }
+ public string CARTRIDGE_TYPE_GUID { get; set; }
+ public string MID_TANK_TYPE_GUID { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
index 5577ba99f..bcb01953b 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
@@ -58,6 +58,7 @@ namespace Tango.DAL.Local.DB
public virtual DbSet<MEDIA_CONDITIONS> MEDIA_CONDITIONS { get; set; }
public virtual DbSet<MEDIA_MATERIALS> MEDIA_MATERIALS { get; set; }
public virtual DbSet<MEDIA_PURPOSES> MEDIA_PURPOSES { get; set; }
+ public virtual DbSet<MID_TANK_TYPES> MID_TANK_TYPES { get; set; }
public virtual DbSet<ORGANIZATION> ORGANIZATIONS { get; set; }
public virtual DbSet<PERMISSION> PERMISSIONS { get; set; }
public virtual DbSet<RML> RMLS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
index bd3f0e69c..c90afa5ef 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
@@ -271,7 +271,9 @@
<Property Name="CONFIGURATION_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="DISPENSER_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LIQUID_TYPE_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
- <Property Name="CARTRIDGE_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="CARTRIDGE_TYPE_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="MID_TANK_TYPE_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="LINEAR_MASS_DENSITY_UNITS">
<Key>
@@ -403,6 +405,18 @@
<Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="CODE" Type="integer" Nullable="false" />
</EntityType>
+ <EntityType Name="MID_TANK_TYPES">
+ <Key>
+ <PropertyRef Name="ID" />
+ </Key>
+ <Property Name="ID" Type="integer" Nullable="false" />
+ <Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="CODE" Type="integer" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="LITER_CAPACITY" Type="real" Nullable="false" />
+ </EntityType>
<EntityType Name="ORGANIZATIONS">
<Key>
<PropertyRef Name="ID" />
@@ -545,6 +559,7 @@
<EntitySet Name="MEDIA_CONDITIONS" EntityType="Self.MEDIA_CONDITIONS" store:Type="Tables" />
<EntitySet Name="MEDIA_MATERIALS" EntityType="Self.MEDIA_MATERIALS" store:Type="Tables" />
<EntitySet Name="MEDIA_PURPOSES" EntityType="Self.MEDIA_PURPOSES" store:Type="Tables" />
+ <EntitySet Name="MID_TANK_TYPES" EntityType="Self.MID_TANK_TYPES" store:Type="Tables" />
<EntitySet Name="ORGANIZATIONS" EntityType="Self.ORGANIZATIONS" store:Type="Tables" />
<EntitySet Name="PERMISSIONS" EntityType="Self.PERMISSIONS" store:Type="Tables" />
<EntitySet Name="RMLS" EntityType="Self.RMLS" store:Type="Tables" />
@@ -592,6 +607,7 @@
<EntitySet Name="MEDIA_CONDITIONS" EntityType="LocalModel.MEDIA_CONDITIONS" />
<EntitySet Name="MEDIA_MATERIALS" EntityType="LocalModel.MEDIA_MATERIALS" />
<EntitySet Name="MEDIA_PURPOSES" EntityType="LocalModel.MEDIA_PURPOSES" />
+ <EntitySet Name="MID_TANK_TYPES" EntityType="LocalModel.MID_TANK_TYPES" />
<EntitySet Name="ORGANIZATIONS" EntityType="LocalModel.ORGANIZATION" />
<EntitySet Name="PERMISSIONS" EntityType="LocalModel.PERMISSION" />
<EntitySet Name="RMLS" EntityType="LocalModel.RML" />
@@ -867,7 +883,9 @@
<Property Name="CONFIGURATION_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="DISPENSER_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LIQUID_TYPE_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
- <Property Name="CARTRIDGE_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="CARTRIDGE_TYPE_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="MID_TANK_TYPE_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="LINEAR_MASS_DENSITY_UNITS">
<Key>
@@ -999,6 +1017,18 @@
<Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="CODE" Type="Int64" Nullable="false" />
</EntityType>
+ <EntityType Name="MID_TANK_TYPES">
+ <Key>
+ <PropertyRef Name="ID" />
+ </Key>
+ <Property Name="ID" Type="Int64" Nullable="false" />
+ <Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
+ <Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="CODE" Type="Int64" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="LITER_CAPACITY" Type="Double" Nullable="false" />
+ </EntityType>
<EntityType Name="ORGANIZATION">
<Key>
<PropertyRef Name="ID" />
@@ -1392,7 +1422,9 @@
<EntitySetMapping Name="IDS_PACKS">
<EntityTypeMapping TypeName="LocalModel.IDS_PACKS">
<MappingFragment StoreEntitySet="IDS_PACKS">
- <ScalarProperty Name="CARTRIDGE_GUID" ColumnName="CARTRIDGE_GUID" />
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="MID_TANK_TYPE_GUID" ColumnName="MID_TANK_TYPE_GUID" />
+ <ScalarProperty Name="CARTRIDGE_TYPE_GUID" ColumnName="CARTRIDGE_TYPE_GUID" />
<ScalarProperty Name="LIQUID_TYPE_GUID" ColumnName="LIQUID_TYPE_GUID" />
<ScalarProperty Name="DISPENSER_GUID" ColumnName="DISPENSER_GUID" />
<ScalarProperty Name="CONFIGURATION_GUID" ColumnName="CONFIGURATION_GUID" />
@@ -1544,6 +1576,19 @@
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
+ <EntitySetMapping Name="MID_TANK_TYPES">
+ <EntityTypeMapping TypeName="LocalModel.MID_TANK_TYPES">
+ <MappingFragment StoreEntitySet="MID_TANK_TYPES">
+ <ScalarProperty Name="LITER_CAPACITY" ColumnName="LITER_CAPACITY" />
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="CODE" ColumnName="CODE" />
+ <ScalarProperty Name="DELETED" ColumnName="DELETED" />
+ <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
+ <ScalarProperty Name="GUID" ColumnName="GUID" />
+ <ScalarProperty Name="ID" ColumnName="ID" />
+ </MappingFragment>
+ </EntityTypeMapping>
+ </EntitySetMapping>
<EntitySetMapping Name="ORGANIZATIONS">
<EntityTypeMapping TypeName="LocalModel.ORGANIZATION">
<MappingFragment StoreEntitySet="ORGANIZATIONS">
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
index f9884e5ba..ac5b442be 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
@@ -38,14 +38,15 @@
<EntityTypeShape EntityType="LocalModel.MEDIA_CONDITIONS" Width="1.5" PointX="14.75" PointY="4.75" />
<EntityTypeShape EntityType="LocalModel.MEDIA_MATERIALS" Width="1.5" PointX="14.75" PointY="7.75" />
<EntityTypeShape EntityType="LocalModel.MEDIA_PURPOSES" Width="1.5" PointX="14.75" PointY="10.75" />
- <EntityTypeShape EntityType="LocalModel.ORGANIZATION" Width="1.5" PointX="10.75" PointY="14.75" />
- <EntityTypeShape EntityType="LocalModel.PERMISSION" Width="1.5" PointX="12.75" PointY="14.75" />
- <EntityTypeShape EntityType="LocalModel.RML" Width="1.5" PointX="14.75" PointY="13.75" />
- <EntityTypeShape EntityType="LocalModel.ROLE" Width="1.5" PointX="16.75" PointY="0.75" />
- <EntityTypeShape EntityType="LocalModel.ROLES_PERMISSIONS" Width="1.5" PointX="16.75" PointY="4.75" />
- <EntityTypeShape EntityType="LocalModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="16.75" PointY="7.75" />
- <EntityTypeShape EntityType="LocalModel.USER" Width="1.5" PointX="16.75" PointY="10.75" />
- <EntityTypeShape EntityType="LocalModel.USERS_ROLES" Width="1.5" PointX="16.75" PointY="14.75" />
+ <EntityTypeShape EntityType="LocalModel.MID_TANK_TYPES" Width="1.5" PointX="10.75" PointY="14.75" />
+ <EntityTypeShape EntityType="LocalModel.ORGANIZATION" Width="1.5" PointX="12.75" PointY="14.75" />
+ <EntityTypeShape EntityType="LocalModel.PERMISSION" Width="1.5" PointX="14.75" PointY="13.75" />
+ <EntityTypeShape EntityType="LocalModel.RML" Width="1.5" PointX="16.75" PointY="0.75" />
+ <EntityTypeShape EntityType="LocalModel.ROLE" Width="1.5" PointX="16.75" PointY="7.75" />
+ <EntityTypeShape EntityType="LocalModel.ROLES_PERMISSIONS" Width="1.5" PointX="16.75" PointY="11.75" />
+ <EntityTypeShape EntityType="LocalModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="16.75" PointY="14.75" />
+ <EntityTypeShape EntityType="LocalModel.USER" Width="1.5" PointX="0.75" PointY="17.75" />
+ <EntityTypeShape EntityType="LocalModel.USERS_ROLES" Width="1.5" PointX="2.75" PointY="17.75" />
</Diagram>
</edmx:Diagrams>
</edmx:Designer>
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/MID_TANK_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/MID_TANK_TYPES.cs
new file mode 100644
index 000000000..75eb1ba64
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/MID_TANK_TYPES.cs
@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.DAL.Local.DB
+{
+ using System;
+ using System.Collections.Generic;
+
+ public partial class MID_TANK_TYPES
+ {
+ public long ID { get; set; }
+ public string GUID { get; set; }
+ public System.DateTime LAST_UPDATED { get; set; }
+ public bool DELETED { get; set; }
+ public long CODE { get; set; }
+ public string NAME { get; set; }
+ public double LITER_CAPACITY { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
index 16e1101a7..1770a031a 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
@@ -179,6 +179,9 @@
<Compile Include="DB\MEDIA_PURPOSES.cs">
<DependentUpon>LocalADO.tt</DependentUpon>
</Compile>
+ <Compile Include="DB\MID_TANK_TYPES.cs">
+ <DependentUpon>LocalADO.tt</DependentUpon>
+ </Compile>
<Compile Include="DB\ORGANIZATION.cs">
<DependentUpon>LocalADO.tt</DependentUpon>
</Compile>
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/Cartridge.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/Cartridge.cs
index 3505ad6ba..ce2a81c98 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Entities/Cartridge.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/Cartridge.cs
@@ -67,25 +67,6 @@ namespace Tango.DAL.Observables
}
- private ObservableCollection<IdsPack> _idspacks;
- /// <summary>
- /// Gets or sets the cartridge ids packs.
- /// </summary>
- [EntityFieldName("IDS_PACKS")]
- public ObservableCollection<IdsPack> IdsPacks
- {
- get
- {
- return _idspacks;
- }
-
- set
- {
- _idspacks = value; RaisePropertyChanged(nameof(IdsPacks));
- }
-
- }
-
/// <summary>
/// Initializes a new instance of the <see cref="Cartridge" /> class.
/// </summary>
@@ -109,9 +90,6 @@ namespace Tango.DAL.Observables
/// </summary>
private void Init()
{
-
- IdsPacks = new ObservableCollection<IdsPack>();
-
}
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/CartridgeType.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/CartridgeType.cs
index 3c658a544..45e2a8531 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Entities/CartridgeType.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/CartridgeType.cs
@@ -67,6 +67,25 @@ namespace Tango.DAL.Observables
}
+ private ObservableCollection<IdsPack> _idspacks;
+ /// <summary>
+ /// Gets or sets the cartridgetype ids packs.
+ /// </summary>
+ [EntityFieldName("IDS_PACKS")]
+ public ObservableCollection<IdsPack> IdsPacks
+ {
+ get
+ {
+ return _idspacks;
+ }
+
+ set
+ {
+ _idspacks = value; RaisePropertyChanged(nameof(IdsPacks));
+ }
+
+ }
+
/// <summary>
/// Initializes a new instance of the <see cref="CartridgeType" /> class.
/// </summary>
@@ -93,6 +112,8 @@ namespace Tango.DAL.Observables
Cartridges = new ObservableCollection<Cartridge>();
+ IdsPacks = new ObservableCollection<IdsPack>();
+
}
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/IdsPack.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/IdsPack.cs
index 787435950..0da97bcb7 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Entities/IdsPack.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/IdsPack.cs
@@ -67,21 +67,40 @@ namespace Tango.DAL.Observables
}
- private String _cartridgeguid;
+ private String _cartridgetypeguid;
/// <summary>
- /// Gets or sets the idspack cartridge guid.
+ /// Gets or sets the idspack cartridge type guid.
/// </summary>
- [EntityFieldName("CARTRIDGE_GUID")]
- public String CartridgeGuid
+ [EntityFieldName("CARTRIDGE_TYPE_GUID")]
+ public String CartridgeTypeGuid
{
get
{
- return _cartridgeguid;
+ return _cartridgetypeguid;
}
set
{
- _cartridgeguid = value; RaisePropertyChanged(nameof(CartridgeGuid));
+ _cartridgetypeguid = value; RaisePropertyChanged(nameof(CartridgeTypeGuid));
+ }
+
+ }
+
+ private String _midtanktypeguid;
+ /// <summary>
+ /// Gets or sets the idspack mid tank type guid.
+ /// </summary>
+ [EntityFieldName("MID_TANK_TYPE_GUID")]
+ public String MidTankTypeGuid
+ {
+ get
+ {
+ return _midtanktypeguid;
+ }
+
+ set
+ {
+ _midtanktypeguid = value; RaisePropertyChanged(nameof(MidTankTypeGuid));
}
}
@@ -105,21 +124,21 @@ namespace Tango.DAL.Observables
}
- private Cartridge _cartridge;
+ private CartridgeType _cartridgetypes;
/// <summary>
- /// Gets or sets the idspack cartridge.
+ /// Gets or sets the idspack cartridge types.
/// </summary>
- [EntityFieldName("CARTRIDGE")]
- public Cartridge Cartridge
+ [EntityFieldName("CARTRIDGE_TYPES")]
+ public CartridgeType CartridgeTypes
{
get
{
- return _cartridge;
+ return _cartridgetypes;
}
set
{
- _cartridge = value; RaisePropertyChanged(nameof(Cartridge));
+ _cartridgetypes = value; RaisePropertyChanged(nameof(CartridgeTypes));
}
}
@@ -181,6 +200,25 @@ namespace Tango.DAL.Observables
}
+ private MidTankType _midtanktypes;
+ /// <summary>
+ /// Gets or sets the idspack mid tank types.
+ /// </summary>
+ [EntityFieldName("MID_TANK_TYPES")]
+ public MidTankType MidTankTypes
+ {
+ get
+ {
+ return _midtanktypes;
+ }
+
+ set
+ {
+ _midtanktypes = value; RaisePropertyChanged(nameof(MidTankTypes));
+ }
+
+ }
+
/// <summary>
/// Initializes a new instance of the <see cref="IdsPack" /> class.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/MidTankType.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/MidTankType.cs
new file mode 100644
index 000000000..0b10497a2
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/MidTankType.cs
@@ -0,0 +1,117 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using Tango.DAL.Remote.DB;
+
+namespace Tango.DAL.Observables
+{
+ [EntityFieldName("MID_TANK_TYPES")]
+ public class MidTankType : ObservableEntity<MID_TANK_TYPES>
+ {
+
+ private Int32 _code;
+ /// <summary>
+ /// Gets or sets the midtanktype code.
+ /// </summary>
+ [EntityFieldName("CODE")]
+ public Int32 Code
+ {
+ get
+ {
+ return _code;
+ }
+
+ set
+ {
+ _code = value; RaisePropertyChanged(nameof(Code));
+ }
+
+ }
+
+ private String _name;
+ /// <summary>
+ /// Gets or sets the midtanktype name.
+ /// </summary>
+ [EntityFieldName("NAME")]
+ public String Name
+ {
+ get
+ {
+ return _name;
+ }
+
+ set
+ {
+ _name = value; RaisePropertyChanged(nameof(Name));
+ }
+
+ }
+
+ private Double _litercapacity;
+ /// <summary>
+ /// Gets or sets the midtanktype liter capacity.
+ /// </summary>
+ [EntityFieldName("LITER_CAPACITY")]
+ public Double LiterCapacity
+ {
+ get
+ {
+ return _litercapacity;
+ }
+
+ set
+ {
+ _litercapacity = value; RaisePropertyChanged(nameof(LiterCapacity));
+ }
+
+ }
+
+ private ObservableCollection<IdsPack> _idspacks;
+ /// <summary>
+ /// Gets or sets the midtanktype ids packs.
+ /// </summary>
+ [EntityFieldName("IDS_PACKS")]
+ public ObservableCollection<IdsPack> IdsPacks
+ {
+ get
+ {
+ return _idspacks;
+ }
+
+ set
+ {
+ _idspacks = value; RaisePropertyChanged(nameof(IdsPacks));
+ }
+
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MidTankType" /> class.
+ /// </summary>
+ public MidTankType() : base()
+ {
+ Init();
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MidTankType" /> class.
+ /// </summary>
+ /// <param name="entity">The entity.</param>
+ public MidTankType(MID_TANK_TYPES entity) : base(entity)
+ {
+ Init();
+ MapEntityToObservable(entity, this);
+ }
+
+ /// <summary>
+ /// Initialize complex types.
+ /// </summary>
+ private void Init()
+ {
+
+ IdsPacks = new ObservableCollection<IdsPack>();
+
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/MidTankTypes.cs b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/MidTankTypes.cs
new file mode 100644
index 000000000..754ffcf99
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/MidTankTypes.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.ComponentModel;
+
+namespace Tango.DAL.Observables
+{
+ public enum MidTankTypes
+ {
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
index 6ab3b602f..aa2012dba 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
@@ -16,7 +16,8 @@ public static class ConfigurationExtensions
{
IdsPack clonedPack = idsPack.CloneEntity();
clonedPack.Dispenser = idsPack.Dispenser.CloneEntity();
- clonedPack.Cartridge = idsPack.Cartridge.CloneEntity();
+ clonedPack.CartridgeTypes = idsPack.CartridgeTypes;
+ clonedPack.MidTankTypes = idsPack.MidTankTypes;
cloned.IdsPacks.Add(clonedPack);
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs
index e4baa31c9..93838895b 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs
@@ -120,6 +120,8 @@ namespace Tango.DAL.Observables
CartridgeTypes = Context.CARTRIDGE_TYPES.Where(x => !x.DELETED).ToList().Select(x => ObservableEntity.CreateObservableFromEntity<CartridgeType>(x)).ToObservableCollection();
+ MidTankTypes = Context.MID_TANK_TYPES.Where(x => !x.DELETED).ToList().Select(x => ObservableEntity.CreateObservableFromEntity<MidTankType>(x)).ToObservableCollection();
+
ActionTypes = Context.ACTION_TYPES.Where(x => !x.DELETED).ToList().Select(x => ObservableEntity.CreateObservableFromEntity<ActionType>(x)).ToObservableCollection();
EventTypes = Context.EVENT_TYPES.Where(x => !x.DELETED).ToList().Select(x => ObservableEntity.CreateObservableFromEntity<EventType>(x)).ToObservableCollection();
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapterExtension.cs
index d5d687d46..c42ced758 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapterExtension.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapterExtension.cs
@@ -1194,6 +1194,42 @@ namespace Tango.DAL.Observables
}
+ private ObservableCollection<MidTankType> _midtanktypes;
+ /// <summary>
+ /// Gets or sets the MidTankTypes.
+ /// </summary>
+ public ObservableCollection<MidTankType> MidTankTypes
+ {
+ get
+ {
+ return _midtanktypes;
+ }
+
+ set
+ {
+ _midtanktypes = value; RaisePropertyChanged(nameof(MidTankTypes));
+ }
+
+ }
+
+ private ICollectionView _midtanktypesViewSource;
+ /// <summary>
+ /// Gets or sets the MidTankTypes View Source.
+ ///</summary>
+ public ICollectionView MidTankTypesViewSource
+ {
+ get
+ {
+ return _midtanktypesViewSource;
+ }
+
+ set
+ {
+ _midtanktypesViewSource = value; RaisePropertyChanged(nameof(MidTankTypesViewSource));
+ }
+
+ }
+
private ObservableCollection<Organization> _organizations;
/// <summary>
/// Gets or sets the Organizations.
@@ -1554,6 +1590,8 @@ namespace Tango.DAL.Observables
MediaPurposesViewSource = CreateCollectionView(MediaPurposes);
+ MidTankTypesViewSource = CreateCollectionView(MidTankTypes);
+
OrganizationsViewSource = CreateCollectionView(Organizations);
PermissionsViewSource = CreateCollectionView(Permissions);
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj b/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj
index 5912b99ea..e777d87f5 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj
@@ -64,6 +64,7 @@
<Compile Include="Entities\FiberSynth.cs" />
<Compile Include="Entities\LiquidType.cs" />
<Compile Include="Entities\LiquidTypesRml.cs" />
+ <Compile Include="Entities\MidTankType.cs" />
<Compile Include="EntityFieldNameAttribute.cs" />
<Compile Include="Enumerations\Actions.cs" />
<Compile Include="Enumerations\CartridgeTypes.cs" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE.cs
index 9aea9e037..707510146 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE.cs
@@ -14,12 +14,6 @@ namespace Tango.DAL.Remote.DB
public partial class CARTRIDGE
{
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
- public CARTRIDGE()
- {
- this.IDS_PACKS = new HashSet<IDS_PACKS>();
- }
-
public int ID { get; set; }
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
@@ -28,7 +22,5 @@ namespace Tango.DAL.Remote.DB
public string CARTRIDGE_TYPE_GUID { get; set; }
public virtual CARTRIDGE_TYPES CARTRIDGE_TYPES { get; set; }
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
- public virtual ICollection<IDS_PACKS> IDS_PACKS { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE_TYPES.cs
index c5c4227c5..5e6074c70 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/CARTRIDGE_TYPES.cs
@@ -18,6 +18,7 @@ namespace Tango.DAL.Remote.DB
public CARTRIDGE_TYPES()
{
this.CARTRIDGES = new HashSet<CARTRIDGE>();
+ this.IDS_PACKS = new HashSet<IDS_PACKS>();
}
public int ID { get; set; }
@@ -29,5 +30,7 @@ namespace Tango.DAL.Remote.DB
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CARTRIDGE> CARTRIDGES { get; set; }
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public virtual ICollection<IDS_PACKS> IDS_PACKS { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs
index 247d398da..2ae0d07e5 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs
@@ -21,12 +21,14 @@ namespace Tango.DAL.Remote.DB
public string CONFIGURATION_GUID { get; set; }
public string DISPENSER_GUID { get; set; }
public string LIQUID_TYPE_GUID { get; set; }
- public string CARTRIDGE_GUID { get; set; }
+ public string CARTRIDGE_TYPE_GUID { get; set; }
+ public string MID_TANK_TYPE_GUID { get; set; }
public string NAME { get; set; }
- public virtual CARTRIDGE CARTRIDGE { get; set; }
+ public virtual CARTRIDGE_TYPES CARTRIDGE_TYPES { get; set; }
public virtual CONFIGURATION CONFIGURATION { get; set; }
public virtual DISPENSER DISPENSER { get; set; }
public virtual LIQUID_TYPES LIQUID_TYPES { get; set; }
+ public virtual MID_TANK_TYPES MID_TANK_TYPES { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MID_TANK_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MID_TANK_TYPES.cs
new file mode 100644
index 000000000..52da42c25
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MID_TANK_TYPES.cs
@@ -0,0 +1,34 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.DAL.Remote.DB
+{
+ using System;
+ using System.Collections.Generic;
+
+ public partial class MID_TANK_TYPES
+ {
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
+ public MID_TANK_TYPES()
+ {
+ this.IDS_PACKS = new HashSet<IDS_PACKS>();
+ }
+
+ public int ID { get; set; }
+ public string GUID { get; set; }
+ public System.DateTime LAST_UPDATED { get; set; }
+ public bool DELETED { get; set; }
+ public int CODE { get; set; }
+ public string NAME { get; set; }
+ public double LITER_CAPACITY { get; set; }
+
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public virtual ICollection<IDS_PACKS> IDS_PACKS { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
index a04261d6a..3f3549da2 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
@@ -58,6 +58,7 @@ namespace Tango.DAL.Remote.DB
public virtual DbSet<MEDIA_CONDITIONS> MEDIA_CONDITIONS { get; set; }
public virtual DbSet<MEDIA_MATERIALS> MEDIA_MATERIALS { get; set; }
public virtual DbSet<MEDIA_PURPOSES> MEDIA_PURPOSES { get; set; }
+ public virtual DbSet<MID_TANK_TYPES> MID_TANK_TYPES { get; set; }
public virtual DbSet<ORGANIZATION> ORGANIZATIONS { get; set; }
public virtual DbSet<PERMISSION> PERMISSIONS { get; set; }
public virtual DbSet<RML> RMLS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
index 7e82dbbe3..73df729c2 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -11,7 +11,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -23,7 +23,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="ADDRESS_STRING" Type="nvarchar" MaxLength="100" Nullable="false" />
<Property Name="LOCALITY" Type="nvarchar" MaxLength="56" />
@@ -39,7 +39,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -50,7 +50,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -61,7 +61,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -72,7 +72,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -83,7 +83,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -94,7 +94,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="SERIAL_NUMBER" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CARTRIDGE_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -105,7 +105,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="LIQUID_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="MACHINE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -117,7 +117,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="100" Nullable="false" />
<Property Name="DESCRIPTION" Type="nvarchar" MaxLength="200" Nullable="false" />
@@ -134,7 +134,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CREATION_DATE" Type="datetime" Nullable="false" />
@@ -152,7 +152,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="FIRST_NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="LAST_NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -167,7 +167,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -178,7 +178,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="SERIAL_NUMBER" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="DISPENSER_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -189,7 +189,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -200,7 +200,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -211,7 +211,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -223,7 +223,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="EVENT_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="ACTION_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -234,7 +234,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
@@ -245,7 +245,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
@@ -256,7 +256,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -267,12 +267,13 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CONFIGURATION_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="DISPENSER_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="LIQUID_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="CARTRIDGE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ <Property Name="CARTRIDGE_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ <Property Name="MID_TANK_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
</EntityType>
<EntityType Name="LINEAR_MASS_DENSITY_UNITS">
@@ -281,7 +282,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
@@ -292,7 +293,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -305,7 +306,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="LIQUID_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="RML_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -316,7 +317,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="VERSION" Type="float" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -328,7 +329,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="SERIAL_NUMBER" Type="varchar" MaxLength="50" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" />
@@ -343,7 +344,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="MACHINE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="CONFIGURATION_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -354,7 +355,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="MACHINE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="EVENT_TYPE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -368,7 +369,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="COLOR" Type="int" Nullable="false" />
</EntityType>
@@ -378,7 +379,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
@@ -389,7 +390,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
@@ -400,18 +401,30 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
</EntityType>
+ <EntityType Name="MID_TANK_TYPES">
+ <Key>
+ <PropertyRef Name="GUID" />
+ </Key>
+ <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
+ <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
+ <Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="CODE" Type="int" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
+ <Property Name="LITER_CAPACITY" Type="float" Nullable="false" />
+ </EntityType>
<EntityType Name="ORGANIZATIONS">
<Key>
<PropertyRef Name="GUID" />
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="CONTACT_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -423,7 +436,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="30" Nullable="false" />
@@ -435,7 +448,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="MANUFACTURER" Type="nvarchar" MaxLength="50" Nullable="false" />
@@ -463,7 +476,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="CODE" Type="int" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="30" Nullable="false" />
@@ -475,7 +488,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="ROLE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="PERMISSION_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -494,7 +507,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="EMAIL" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="PASSWORD" Type="nvarchar" MaxLength="200" Nullable="false" />
@@ -508,7 +521,7 @@
</Key>
<Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
- <Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
<Property Name="USER_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="ROLE_GUID" Type="varchar" MaxLength="36" Nullable="false" />
@@ -609,18 +622,6 @@
</Dependent>
</ReferentialConstraint>
</Association>
- <Association Name="FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES">
- <End Role="CARTRIDGES" Type="Self.CARTRIDGES" Multiplicity="1" />
- <End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" />
- <ReferentialConstraint>
- <Principal Role="CARTRIDGES">
- <PropertyRef Name="GUID" />
- </Principal>
- <Dependent Role="IDS_PACKS">
- <PropertyRef Name="CARTRIDGE_GUID" />
- </Dependent>
- </ReferentialConstraint>
- </Association>
<Association Name="FK_CONFIGURATIONS_DISPENSERS_DISPENSERS">
<End Role="DISPENSERS" Type="Self.DISPENSERS" Multiplicity="1" />
<End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" />
@@ -717,6 +718,18 @@
</Dependent>
</ReferentialConstraint>
</Association>
+ <Association Name="FK_IDS_PACKS_CARTRIDGE_TYPES">
+ <End Role="CARTRIDGE_TYPES" Type="Self.CARTRIDGE_TYPES" Multiplicity="1" />
+ <End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" />
+ <ReferentialConstraint>
+ <Principal Role="CARTRIDGE_TYPES">
+ <PropertyRef Name="GUID" />
+ </Principal>
+ <Dependent Role="IDS_PACKS">
+ <PropertyRef Name="CARTRIDGE_TYPE_GUID" />
+ </Dependent>
+ </ReferentialConstraint>
+ </Association>
<Association Name="FK_IDS_PACKS_CONFIGURATIONS">
<End Role="CONFIGURATIONS" Type="Self.CONFIGURATIONS" Multiplicity="1" />
<End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" />
@@ -729,6 +742,18 @@
</Dependent>
</ReferentialConstraint>
</Association>
+ <Association Name="FK_IDS_PACKS_MID_TANK_TYPES">
+ <End Role="MID_TANK_TYPES" Type="Self.MID_TANK_TYPES" Multiplicity="1" />
+ <End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" />
+ <ReferentialConstraint>
+ <Principal Role="MID_TANK_TYPES">
+ <PropertyRef Name="GUID" />
+ </Principal>
+ <Dependent Role="IDS_PACKS">
+ <PropertyRef Name="MID_TANK_TYPE_GUID" />
+ </Dependent>
+ </ReferentialConstraint>
+ </Association>
<Association Name="FK_LIQUIDS_RML_LIQUIDS">
<End Role="LIQUID_TYPES" Type="Self.LIQUID_TYPES" Multiplicity="1" />
<End Role="LIQUID_TYPES_RMLS" Type="Self.LIQUID_TYPES_RMLS" Multiplicity="*" />
@@ -1097,6 +1122,7 @@
<EntitySet Name="MEDIA_CONDITIONS" EntityType="Self.MEDIA_CONDITIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="MEDIA_MATERIALS" EntityType="Self.MEDIA_MATERIALS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="MEDIA_PURPOSES" EntityType="Self.MEDIA_PURPOSES" Schema="dbo" store:Type="Tables" />
+ <EntitySet Name="MID_TANK_TYPES" EntityType="Self.MID_TANK_TYPES" Schema="dbo" store:Type="Tables" />
<EntitySet Name="ORGANIZATIONS" EntityType="Self.ORGANIZATIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="PERMISSIONS" EntityType="Self.PERMISSIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="RMLS" EntityType="Self.RMLS" Schema="dbo" store:Type="Tables" />
@@ -1137,10 +1163,6 @@
<End Role="APPLICATION_VERSIONS" EntitySet="APPLICATION_VERSIONS" />
<End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" />
</AssociationSet>
- <AssociationSet Name="FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES" Association="Self.FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES">
- <End Role="CARTRIDGES" EntitySet="CARTRIDGES" />
- <End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
- </AssociationSet>
<AssociationSet Name="FK_CONFIGURATIONS_DISPENSERS_DISPENSERS" Association="Self.FK_CONFIGURATIONS_DISPENSERS_DISPENSERS">
<End Role="DISPENSERS" EntitySet="DISPENSERS" />
<End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
@@ -1173,10 +1195,18 @@
<End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" />
<End Role="EVENT_TYPES_ACTIONS" EntitySet="EVENT_TYPES_ACTIONS" />
</AssociationSet>
+ <AssociationSet Name="FK_IDS_PACKS_CARTRIDGE_TYPES" Association="Self.FK_IDS_PACKS_CARTRIDGE_TYPES">
+ <End Role="CARTRIDGE_TYPES" EntitySet="CARTRIDGE_TYPES" />
+ <End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
+ </AssociationSet>
<AssociationSet Name="FK_IDS_PACKS_CONFIGURATIONS" Association="Self.FK_IDS_PACKS_CONFIGURATIONS">
<End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" />
<End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
</AssociationSet>
+ <AssociationSet Name="FK_IDS_PACKS_MID_TANK_TYPES" Association="Self.FK_IDS_PACKS_MID_TANK_TYPES">
+ <End Role="MID_TANK_TYPES" EntitySet="MID_TANK_TYPES" />
+ <End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
+ </AssociationSet>
<AssociationSet Name="FK_LIQUIDS_RML_LIQUIDS" Association="Self.FK_LIQUIDS_RML_LIQUIDS">
<End Role="LIQUID_TYPES" EntitySet="LIQUID_TYPES" />
<End Role="LIQUID_TYPES_RMLS" EntitySet="LIQUID_TYPES_RMLS" />
@@ -1324,6 +1354,7 @@
<EntitySet Name="MEDIA_CONDITIONS" EntityType="RemoteModel.MEDIA_CONDITIONS" />
<EntitySet Name="MEDIA_MATERIALS" EntityType="RemoteModel.MEDIA_MATERIALS" />
<EntitySet Name="MEDIA_PURPOSES" EntityType="RemoteModel.MEDIA_PURPOSES" />
+ <EntitySet Name="MID_TANK_TYPES" EntityType="RemoteModel.MID_TANK_TYPES" />
<EntitySet Name="ORGANIZATIONS" EntityType="RemoteModel.ORGANIZATION" />
<EntitySet Name="PERMISSIONS" EntityType="RemoteModel.PERMISSION" />
<EntitySet Name="RMLS" EntityType="RemoteModel.RML" />
@@ -1364,8 +1395,8 @@
<End Role="CARTRIDGE_TYPES" EntitySet="CARTRIDGE_TYPES" />
<End Role="CARTRIDGE" EntitySet="CARTRIDGES" />
</AssociationSet>
- <AssociationSet Name="FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES" Association="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES">
- <End Role="CARTRIDGE" EntitySet="CARTRIDGES" />
+ <AssociationSet Name="FK_IDS_PACKS_CARTRIDGE_TYPES" Association="RemoteModel.FK_IDS_PACKS_CARTRIDGE_TYPES">
+ <End Role="CARTRIDGE_TYPES" EntitySet="CARTRIDGE_TYPES" />
<End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
</AssociationSet>
<AssociationSet Name="FK_CATS_LIQUID_TYPES" Association="RemoteModel.FK_CATS_LIQUID_TYPES">
@@ -1444,6 +1475,10 @@
<End Role="LIQUID_TYPES" EntitySet="LIQUID_TYPES" />
<End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
</AssociationSet>
+ <AssociationSet Name="FK_IDS_PACKS_MID_TANK_TYPES" Association="RemoteModel.FK_IDS_PACKS_MID_TANK_TYPES">
+ <End Role="MID_TANK_TYPES" EntitySet="MID_TANK_TYPES" />
+ <End Role="IDS_PACKS" EntitySet="IDS_PACKS" />
+ </AssociationSet>
<AssociationSet Name="FK_RML_LINEAR_MASS_DENSITY_UNITS" Association="RemoteModel.FK_RML_LINEAR_MASS_DENSITY_UNITS">
<End Role="LINEAR_MASS_DENSITY_UNITS" EntitySet="LINEAR_MASS_DENSITY_UNITS" />
<End Role="RML" EntitySet="RMLS" />
@@ -1603,6 +1638,7 @@
<Property Name="CODE" Type="Int32" Nullable="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
<NavigationProperty Name="CARTRIDGES" Relationship="RemoteModel.FK_CARTRIDGES_CARTRIDGE_TYPES" FromRole="CARTRIDGE_TYPES" ToRole="CARTRIDGE" />
+ <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_IDS_PACKS_CARTRIDGE_TYPES" FromRole="CARTRIDGE_TYPES" ToRole="IDS_PACKS" />
</EntityType>
<EntityType Name="CARTRIDGE">
<Key>
@@ -1615,7 +1651,6 @@
<Property Name="SERIAL_NUMBER" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
<Property Name="CARTRIDGE_TYPE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<NavigationProperty Name="CARTRIDGE_TYPES" Relationship="RemoteModel.FK_CARTRIDGES_CARTRIDGE_TYPES" FromRole="CARTRIDGE" ToRole="CARTRIDGE_TYPES" />
- <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES" FromRole="CARTRIDGE" ToRole="IDS_PACKS" />
</EntityType>
<EntityType Name="CAT">
<Key>
@@ -1818,12 +1853,14 @@
<Property Name="CONFIGURATION_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="DISPENSER_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="LIQUID_TYPE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
- <Property Name="CARTRIDGE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <Property Name="CARTRIDGE_TYPE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <Property Name="MID_TANK_TYPE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
- <NavigationProperty Name="CARTRIDGE" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES" FromRole="IDS_PACKS" ToRole="CARTRIDGE" />
+ <NavigationProperty Name="CARTRIDGE_TYPES" Relationship="RemoteModel.FK_IDS_PACKS_CARTRIDGE_TYPES" FromRole="IDS_PACKS" ToRole="CARTRIDGE_TYPES" />
<NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_IDS_PACKS_CONFIGURATIONS" FromRole="IDS_PACKS" ToRole="CONFIGURATION" />
<NavigationProperty Name="DISPENSER" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_DISPENSERS" FromRole="IDS_PACKS" ToRole="DISPENSER" />
<NavigationProperty Name="LIQUID_TYPES" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" FromRole="IDS_PACKS" ToRole="LIQUID_TYPES" />
+ <NavigationProperty Name="MID_TANK_TYPES" Relationship="RemoteModel.FK_IDS_PACKS_MID_TANK_TYPES" FromRole="IDS_PACKS" ToRole="MID_TANK_TYPES" />
</EntityType>
<EntityType Name="LINEAR_MASS_DENSITY_UNITS">
<Key>
@@ -1978,6 +2015,19 @@
<Property Name="CODE" Type="Int32" Nullable="false" />
<NavigationProperty Name="RMLS" Relationship="RemoteModel.FK_RML_MEDIA_PURPOSES" FromRole="MEDIA_PURPOSES" ToRole="RML" />
</EntityType>
+ <EntityType Name="MID_TANK_TYPES">
+ <Key>
+ <PropertyRef Name="GUID" />
+ </Key>
+ <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
+ <Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" />
+ <Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="CODE" Type="Int32" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
+ <Property Name="LITER_CAPACITY" Type="Double" Nullable="false" />
+ <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_IDS_PACKS_MID_TANK_TYPES" FromRole="MID_TANK_TYPES" ToRole="IDS_PACKS" />
+ </EntityType>
<EntityType Name="ORGANIZATION">
<Key>
<PropertyRef Name="GUID" />
@@ -2209,15 +2259,15 @@
</Dependent>
</ReferentialConstraint>
</Association>
- <Association Name="FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES">
- <End Type="RemoteModel.CARTRIDGE" Role="CARTRIDGE" Multiplicity="1" />
+ <Association Name="FK_IDS_PACKS_CARTRIDGE_TYPES">
+ <End Type="RemoteModel.CARTRIDGE_TYPES" Role="CARTRIDGE_TYPES" Multiplicity="1" />
<End Type="RemoteModel.IDS_PACKS" Role="IDS_PACKS" Multiplicity="*" />
<ReferentialConstraint>
- <Principal Role="CARTRIDGE">
+ <Principal Role="CARTRIDGE_TYPES">
<PropertyRef Name="GUID" />
</Principal>
<Dependent Role="IDS_PACKS">
- <PropertyRef Name="CARTRIDGE_GUID" />
+ <PropertyRef Name="CARTRIDGE_TYPE_GUID" />
</Dependent>
</ReferentialConstraint>
</Association>
@@ -2451,6 +2501,18 @@
</Dependent>
</ReferentialConstraint>
</Association>
+ <Association Name="FK_IDS_PACKS_MID_TANK_TYPES">
+ <End Type="RemoteModel.MID_TANK_TYPES" Role="MID_TANK_TYPES" Multiplicity="1" />
+ <End Type="RemoteModel.IDS_PACKS" Role="IDS_PACKS" Multiplicity="*" />
+ <ReferentialConstraint>
+ <Principal Role="MID_TANK_TYPES">
+ <PropertyRef Name="GUID" />
+ </Principal>
+ <Dependent Role="IDS_PACKS">
+ <PropertyRef Name="MID_TANK_TYPE_GUID" />
+ </Dependent>
+ </ReferentialConstraint>
+ </Association>
<Association Name="FK_RML_LINEAR_MASS_DENSITY_UNITS">
<End Type="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Role="LINEAR_MASS_DENSITY_UNITS" Multiplicity="1" />
<End Type="RemoteModel.RML" Role="RML" Multiplicity="*" />
@@ -2948,7 +3010,8 @@
<EntityTypeMapping TypeName="RemoteModel.IDS_PACKS">
<MappingFragment StoreEntitySet="IDS_PACKS">
<ScalarProperty Name="NAME" ColumnName="NAME" />
- <ScalarProperty Name="CARTRIDGE_GUID" ColumnName="CARTRIDGE_GUID" />
+ <ScalarProperty Name="MID_TANK_TYPE_GUID" ColumnName="MID_TANK_TYPE_GUID" />
+ <ScalarProperty Name="CARTRIDGE_TYPE_GUID" ColumnName="CARTRIDGE_TYPE_GUID" />
<ScalarProperty Name="LIQUID_TYPE_GUID" ColumnName="LIQUID_TYPE_GUID" />
<ScalarProperty Name="DISPENSER_GUID" ColumnName="DISPENSER_GUID" />
<ScalarProperty Name="CONFIGURATION_GUID" ColumnName="CONFIGURATION_GUID" />
@@ -3100,6 +3163,19 @@
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
+ <EntitySetMapping Name="MID_TANK_TYPES">
+ <EntityTypeMapping TypeName="RemoteModel.MID_TANK_TYPES">
+ <MappingFragment StoreEntitySet="MID_TANK_TYPES">
+ <ScalarProperty Name="LITER_CAPACITY" ColumnName="LITER_CAPACITY" />
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="CODE" ColumnName="CODE" />
+ <ScalarProperty Name="DELETED" ColumnName="DELETED" />
+ <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
+ <ScalarProperty Name="GUID" ColumnName="GUID" />
+ <ScalarProperty Name="ID" ColumnName="ID" />
+ </MappingFragment>
+ </EntityTypeMapping>
+ </EntitySetMapping>
<EntitySetMapping Name="ORGANIZATIONS">
<EntityTypeMapping TypeName="RemoteModel.ORGANIZATION">
<MappingFragment StoreEntitySet="ORGANIZATIONS">
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
index 1bf8a6a7b..c8d5cd035 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,47 +5,48 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1">
- <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="10.5" PointY="37.5" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="3" PointY="16.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="0.75" PointY="15.875" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="22" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="0.75" PointY="12.75" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="0.75" PointY="28.25" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="0.75" PointY="35" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE" Width="1.5" PointX="3" PointY="34.875" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="9.75" PointY="12.625" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="17.25" PointY="19.125" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3" PointY="6.75" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="3" PointY="20.5" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="31.75" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="31.625" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="8.375" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="19" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="10.5" PointY="4.375" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="12.75" PointY="4.5" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="12.75" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="12.75" PointY="31" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="25.125" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="7.875" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="12.75" PointY="24.75" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="2.75" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="17.25" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="5.25" PointY="12.5" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="7.5" PointY="9" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="9.75" PointY="8.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="12.75" PointY="9.375" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="12.75" PointY="21.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="12.75" PointY="16.5" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="12.75" PointY="27.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="12.75" PointY="34.125" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="5.25" PointY="18.5" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="15.5" PointY="2.5" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="15" PointY="14" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="15.5" PointY="6.375" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="17.75" PointY="6.5" />
- <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="5.75" PointY="1.625" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="10.5" PointY="16.875" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="17.75" PointY="15.5" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="13.5" PointY="40.375" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="3" PointY="22.625" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="0.75" PointY="9.625" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="23.25" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="0.75" PointY="20.125" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="0.75" PointY="13.875" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="18.5" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE" Width="1.5" PointX="5.25" PointY="18.5" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="12.75" PointY="11" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="16.25" PointY="20.125" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3" PointY="8" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="3" PointY="26.875" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="5.125" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="26.375" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="17" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="7.5" PointY="15.25" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="15.75" PointY="11.375" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="11.75" PointY="20.875" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="11.75" PointY="3.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="29.5" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="8.875" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="11.75" PointY="30" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="14.5" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="16.25" PointY="16.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="5.25" PointY="14" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="7.5" PointY="10.375" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="9.75" PointY="6.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="9.75" PointY="10.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="11.75" PointY="27.125" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="11.75" PointY="17.375" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="11.75" PointY="24" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="11.75" PointY="33.125" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="4.25" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="5.25" PointY="24.875" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="10.5" PointY="40.375" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="14" PointY="15" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="10.5" PointY="36.25" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="12.75" PointY="36.375" />
+ <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="5.75" PointY="2.625" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="7.5" PointY="5.75" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="12.75" PointY="7.375" />
<AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_ACTIONS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
@@ -54,7 +55,7 @@
<AssociationConnector Association="RemoteModel.FK_CONFIGURATIONS_APPLICATION_OS_VERSIONS" />
<AssociationConnector Association="RemoteModel.FK_CONFIGURATIONS_APPLICATION_VERSIONS" />
<AssociationConnector Association="RemoteModel.FK_CARTRIDGES_CARTRIDGE_TYPES" />
- <AssociationConnector Association="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_CARTRIDGES" />
+ <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_CARTRIDGE_TYPES" />
<AssociationConnector Association="RemoteModel.FK_CATS_LIQUID_TYPES" />
<AssociationConnector Association="RemoteModel.FK_CATS_MACHINES" />
<AssociationConnector Association="RemoteModel.FK_CCTS_RMLS" />
@@ -74,6 +75,7 @@
<AssociationConnector Association="RemoteModel.FK_RML_FIBER_SHAPES" />
<AssociationConnector Association="RemoteModel.FK_RML_FIBER_SYNTHESIS" />
<AssociationConnector Association="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" />
+ <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_MID_TANK_TYPES" />
<AssociationConnector Association="RemoteModel.FK_RML_LINEAR_MASS_DENSITY_UNITS" />
<AssociationConnector Association="RemoteModel.FK_LIQUIDS_RML_LIQUIDS" />
<AssociationConnector Association="RemoteModel.FK_LIQUIDS_RML_RML" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
index 0159a5727..986db2303 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
@@ -164,6 +164,9 @@
<Compile Include="DB\MEDIA_PURPOSES.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
+ <Compile Include="DB\MID_TANK_TYPES.cs">
+ <DependentUpon>RemoteADO.tt</DependentUpon>
+ </Compile>
<Compile Include="DB\ORGANIZATION.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/DragAndDropService.cs b/Software/Visual_Studio/Tango.DragAndDrop/DragAndDropService.cs
new file mode 100644
index 000000000..5e6182efa
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/DragAndDropService.cs
@@ -0,0 +1,728 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Imaging;
+using System.Windows.Threading;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.DragAndDrop
+{
+ /// <summary>
+ /// <para><img class="classImage" src="../Media/DragAndDropService.png" /></para>
+ /// Represents a drag and drop service which exposes several attached properties and events to create an interactive drag and drop functionality.
+ /// </summary>
+ /// <example>
+ /// <para class="example-title">
+ /// <img class="exampleIcon" src="../Icons/CodeExample.png" />
+ /// <i>
+ /// The following example demonstrates how to use the Drag and Drop service and the <see cref="DraggingSurface"/> to easily create drag and drop features.
+ /// </i>
+ /// </para>
+ /// <para>
+ /// <markup><video class="exampleVideo" autoplay="autoplay" controls="controls" loop="loop" src="../Media/DragAndDropExample.mp4"></video></markup>
+ /// </para>
+ /// <code lang="XAML" source="../FullAPIExamples/Examples/DragAndDrop/DragAndDropExample.xaml" title="Drag and Drop Example." />
+ /// </example>
+ /// <seealso cref="DraggingSurface" />
+ /// <seealso cref="DropEventArgs" />
+ public static class DragAndDropService
+ {
+ private static List<FrameworkElement> _dragElements;
+ private static List<FrameworkElement> _dropElements;
+ private static Point _mouseDownLocation;
+ private static FrameworkElement _currentDragedElement;
+ private static FrameworkElement _currentDropElement;
+ private static bool _isMouseDown;
+ private static DispatcherTimer _dragTimer;
+ private static Border _dragBorder;
+ private const int MIN_DRAG_OFFSET = 8;
+
+ #region Delegates
+
+ /// <summary>
+ /// Represents the attached <see cref="DropEvent"/> event delegate.
+ /// </summary>
+ /// <param name="sender">The sender.</param>
+ /// <param name="e">The <see cref="DropEventArgs"/> instance containing the event data.</param>
+ public delegate void DropEventHandler(object sender, DropEventArgs e);
+
+ #endregion
+
+ #region Constructors
+
+ /// <summary>
+ /// Initializes the <see cref="DragAndDropService"/> class.
+ /// </summary>
+ static DragAndDropService()
+ {
+ _dragElements = new List<FrameworkElement>();
+ _dropElements = new List<FrameworkElement>();
+ _dragTimer = new DispatcherTimer();
+ _dragTimer.Interval = TimeSpan.FromMilliseconds(30);
+ _dragTimer.Tick += DragTimer_Tick;
+ _dragTimer.IsEnabled = false;
+ }
+
+ #endregion
+
+ #region Attached Properties
+
+ #region Draggable
+
+ /// <summary>
+ /// Determines whether an element is draggable by the drag and drop service.
+ /// </summary>
+ public static readonly DependencyProperty DraggableProperty =
+ DependencyProperty.RegisterAttached("Draggable",
+ typeof(bool), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(false, DraggableChanged));
+
+ /// <summary>
+ /// Draggable changed.
+ /// </summary>
+ /// <param name="d">The d.</param>
+ /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
+ private static void DraggableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if ((bool)e.NewValue)
+ {
+ RegisterDraggable(d as FrameworkElement);
+ }
+ else
+ {
+ UnRegisterDraggable(d as FrameworkElement);
+ }
+ }
+
+ /// <summary>
+ /// Sets the draggable attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">if set to <c>true</c> [value].</param>
+ public static void SetDraggable(FrameworkElement element, bool value)
+ {
+ element.SetValue(DraggableProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the draggable attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static bool GetDraggable(FrameworkElement element)
+ {
+ return (bool)element.GetValue(DraggableProperty);
+ }
+
+ #endregion
+
+ #region IsDragging
+
+ /// <summary>
+ /// Determines whether the draggable element is currently being dragged.
+ /// </summary>
+ public static readonly DependencyProperty IsDraggingProperty =
+ DependencyProperty.RegisterAttached("IsDragging",
+ typeof(bool), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(false));
+
+ /// <summary>
+ /// Sets the IsDragging attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">if set to <c>true</c> [value].</param>
+ public static void SetIsDragging(FrameworkElement element, bool value)
+ {
+ element.SetValue(IsDraggingProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the is dragging attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static bool GetIsDragging(FrameworkElement element)
+ {
+ return (bool)element.GetValue(IsDraggingProperty);
+ }
+
+ #endregion
+
+ #region DraggableBackground
+
+ /// <summary>
+ /// Determines the draggable element replication background.
+ /// </summary>
+ public static readonly DependencyProperty DraggableBackgroundProperty =
+ DependencyProperty.RegisterAttached("DraggableBackground",
+ typeof(Brush), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(null));
+
+ /// <summary>
+ /// Sets the draggable background attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">The value.</param>
+ public static void SetDraggableBackground(FrameworkElement element, Brush value)
+ {
+ element.SetValue(DraggableBackgroundProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the draggable background attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static Brush GetDraggableBackground(FrameworkElement element)
+ {
+ return (Brush)element.GetValue(DraggableBackgroundProperty);
+ }
+
+ #endregion
+
+ #region DraggableBorderBrush
+
+ /// <summary>
+ /// Determines the draggable element replication border brush.
+ /// </summary>
+ public static readonly DependencyProperty DraggableBorderBrushProperty =
+ DependencyProperty.RegisterAttached("DraggableBorderBrush",
+ typeof(Brush), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(null));
+
+ /// <summary>
+ /// Sets the draggable border brush attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">The value.</param>
+ public static void SetDraggableBorderBrush(FrameworkElement element, Brush value)
+ {
+ element.SetValue(DraggableBorderBrushProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the draggable border brush attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static Brush GetDraggableBorderBrush(FrameworkElement element)
+ {
+ return (Brush)element.GetValue(DraggableBorderBrushProperty);
+ }
+
+ #endregion
+
+ #region DraggableOpacity
+
+ /// <summary>
+ /// Determines the draggable element replication opacity.
+ /// </summary>
+ public static readonly DependencyProperty DraggableOpacityProperty =
+ DependencyProperty.RegisterAttached("DraggableOpacity",
+ typeof(double), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(0.8));
+
+ /// <summary>
+ /// Sets the draggable opacity attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">The value.</param>
+ public static void SetDraggableOpacity(FrameworkElement element, double value)
+ {
+ element.SetValue(DraggableOpacityProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the draggable opacity attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static double GetDraggableOpacity(FrameworkElement element)
+ {
+ return (double)element.GetValue(DraggableOpacityProperty);
+ }
+
+ #endregion
+
+ #region Droppable
+
+ /// <summary>
+ /// Determines whether an element is a dropable target by the drag and drop service.
+ /// </summary>
+ public static readonly DependencyProperty DroppableProperty =
+ DependencyProperty.RegisterAttached("Droppable",
+ typeof(bool), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(false, DroppableChanged));
+
+ /// <summary>
+ /// Droppables the changed attached property.
+ /// </summary>
+ /// <param name="d">The d.</param>
+ /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
+ private static void DroppableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if ((bool)e.NewValue)
+ {
+ RegisterDroppable(d as FrameworkElement);
+ }
+ else
+ {
+ UnRegisterDroppable(d as FrameworkElement);
+ }
+ }
+
+ /// <summary>
+ /// Sets the droppable attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">if set to <c>true</c> [value].</param>
+ public static void SetDroppable(FrameworkElement element, bool value)
+ {
+ element.SetValue(DroppableProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the droppable attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static bool GetDroppable(FrameworkElement element)
+ {
+ return (bool)element.GetValue(DroppableProperty);
+ }
+
+ #endregion
+
+ #region IsDraggableOver
+
+ /// <summary>
+ /// Determines whether a draggable element currently hovers over the droppable element.
+ /// </summary>
+ public static readonly DependencyProperty IsDraggableOverProperty =
+ DependencyProperty.RegisterAttached("IsDraggableOver",
+ typeof(bool), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(false));
+
+ /// <summary>
+ /// Sets the is draggable over attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">if set to <c>true</c> [value].</param>
+ public static void SetIsDraggableOver(FrameworkElement element, bool value)
+ {
+ element.SetValue(IsDraggableOverProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the is draggable over attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static bool GetIsDraggableOver(FrameworkElement element)
+ {
+ return (bool)element.GetValue(IsDraggableOverProperty);
+ }
+
+ #endregion
+
+ #region Dragging Surface
+
+ /// <summary>
+ /// Determines the Draggable dragging surface.
+ /// </summary>
+ public static readonly DependencyProperty DraggingSurfaceProperty =
+ DependencyProperty.RegisterAttached("DraggingSurface",
+ typeof(DraggingSurface), typeof(DragAndDropService),
+ new FrameworkPropertyMetadata(null, DraggingSurfaceChanged));
+
+ /// <summary>
+ /// Dragging the surface changed.
+ /// </summary>
+ /// <param name="d">The d.</param>
+ /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
+ private static void DraggingSurfaceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+
+ }
+
+ /// <summary>
+ /// Sets the dragging surface attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="value">The value.</param>
+ public static void SetDraggingSurface(FrameworkElement element, DraggingSurface value)
+ {
+ element.SetValue(DraggingSurfaceProperty, value);
+ }
+
+ /// <summary>
+ /// Gets the dragging surface attached property.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <returns></returns>
+ public static DraggingSurface GetDraggingSurface(FrameworkElement element)
+ {
+ return (DraggingSurface)element.GetValue(DraggingSurfaceProperty);
+ }
+
+ #endregion
+
+ #endregion
+
+ #region Attached Events
+
+ /// <summary>
+ /// Occurs when a successful drop has occurred.
+ /// </summary>
+ public static readonly RoutedEvent DropEvent =
+ EventManager.RegisterRoutedEvent("Drop",
+ RoutingStrategy.Bubble,
+ typeof(DropEventHandler),
+ typeof(DragAndDropService));
+
+ /// <summary>
+ /// Adds the drop event handler.
+ /// </summary>
+ /// <param name="o">The o.</param>
+ /// <param name="handler">The handler.</param>
+ public static void AddDropHandler(DependencyObject o, DropEventHandler handler)
+ {
+ ((UIElement)o).AddHandler(DropEvent, handler);
+ }
+
+ /// <summary>
+ /// Removes the drop event handler.
+ /// </summary>
+ /// <param name="o">The o.</param>
+ /// <param name="handler">The handler.</param>
+ public static void RemoveDropHandler(DependencyObject o, DropEventHandler handler)
+ {
+ ((UIElement)o).RemoveHandler(DropEvent, handler);
+ }
+
+ #endregion
+
+ #region Drag Timer
+
+ /// <summary>
+ /// Handles the Tick event of the DragTimer control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
+ private static void DragTimer_Tick(object sender, EventArgs e)
+ {
+ if (Mouse.LeftButton == MouseButtonState.Pressed && _currentDragedElement != null)
+ {
+ var surface = GetDraggingSurface(_currentDragedElement);
+ var rootElement = surface.Parent as FrameworkElement;
+
+ DraggingSurface.SetLeft(_dragBorder, Mouse.GetPosition(surface).X - _mouseDownLocation.X);
+ DraggingSurface.SetTop(_dragBorder, Mouse.GetPosition(surface).Y - _mouseDownLocation.Y);
+ _dragBorder.Visibility = Visibility.Visible;
+
+ bool found = false;
+
+ foreach (var dropElement in _dropElements.Where(x => x != _currentDragedElement))
+ {
+ Point dropPoint = dropElement.TransformToAncestor(rootElement).Transform(new Point(0, 0));
+ Rect dropRect = new Rect(dropPoint, new Size(dropElement.ActualWidth, dropElement.ActualHeight));
+ Rect dragRect = new Rect(Canvas.GetLeft(_dragBorder), Canvas.GetTop(_dragBorder), _dragBorder.Width / 2, _dragBorder.Height);
+
+ Point mousePoint = rootElement.PointToScreen(Mouse.GetPosition(rootElement));
+
+ if (dropRect.IntersectsWith(dragRect))
+ {
+ SetIsDraggableOver(dropElement, true);
+
+ foreach (var drop in _dropElements.Where(x => x != dropElement))
+ {
+ SetIsDraggableOver(drop, false);
+ }
+
+ _currentDropElement = dropElement;
+ found = true;
+ }
+ else
+ {
+ SetIsDraggableOver(dropElement, false);
+ }
+ }
+
+ if (!found)
+ {
+ _currentDropElement = null;
+ }
+ }
+ else
+ {
+ DropDraggable();
+ }
+ }
+
+ #endregion
+
+ #region Private Methods
+
+ /// <summary>
+ /// Registers a framework element as a draggable element.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ private static void RegisterDraggable(FrameworkElement element)
+ {
+ if (!_dragElements.Contains(element))
+ {
+ _dragElements.Add(element);
+
+ element.PreviewMouseDown += Draggable_PreviewMouseDown;
+ element.MouseMove += Draggable_MouseMove;
+ element.PreviewMouseUp += Draggable_PreviewMouseUp;
+ element.Unloaded += Element_Unloaded;
+ }
+ }
+
+ /// <summary>
+ /// Unregisters a framework element as a draggable element.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ private static void RegisterDroppable(FrameworkElement element)
+ {
+ if (!_dropElements.Contains(element))
+ {
+ _dropElements.Add(element);
+ element.Unloaded += Element_Unloaded1;
+ }
+ }
+
+ /// <summary>
+ /// Registers a framework element as a droppable element.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ private static void UnRegisterDraggable(FrameworkElement element)
+ {
+ _dragElements.Remove(element);
+ }
+
+ /// <summary>
+ /// Unregisters a framework element as a droppable element.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ private static void UnRegisterDroppable(FrameworkElement element)
+ {
+ _dropElements.Remove(element);
+ }
+
+ /// <summary>
+ /// Creates the dragging element replication.
+ /// </summary>
+ private static void CreateDraggingElement()
+ {
+ if (_currentDragedElement != null)
+ {
+ BitmapSource source = UIHelper.TakeSnapshot(_currentDragedElement);
+ _dragBorder = new Border();
+
+ var surface = GetDraggingSurface(_currentDragedElement);
+
+ _dragBorder.Background = GetDraggableBackground(_currentDragedElement);
+ _dragBorder.BorderThickness = new Thickness(1);
+ _dragBorder.BorderBrush = GetDraggableBorderBrush(_currentDragedElement);
+ //dragBorder.CornerRadius = new CornerRadius(currentDragedElement.BorderRadius);
+
+ _dragBorder.Visibility = Visibility.Hidden;
+ _dragBorder.IsHitTestVisible = false;
+ _dragBorder.Width = source.PixelWidth;
+ _dragBorder.Height = source.PixelHeight;
+ _dragBorder.Opacity = GetDraggableOpacity(_currentDragedElement);
+
+ Image img = new Image();
+ _dragBorder.Child = img;
+ img.Stretch = System.Windows.Media.Stretch.Fill;
+ img.Source = source;
+
+ ScaleTransform scale = new ScaleTransform(1, 1, 0.5, 0.5);
+ _dragBorder.RenderTransformOrigin = new Point(0.5, 0.5);
+ _dragBorder.RenderTransform = scale;
+ surface.Children.Add(_dragBorder);
+
+ DoubleAnimation ani = new DoubleAnimation(0.95, new Duration(TimeSpan.FromMilliseconds(300)));
+ ani.AutoReverse = true;
+ ani.RepeatBehavior = RepeatBehavior.Forever;
+
+ DoubleAnimation aniOp = new DoubleAnimation(_dragBorder.Opacity, 0.5, new Duration(TimeSpan.FromMilliseconds(300)));
+ aniOp.AutoReverse = true;
+ aniOp.RepeatBehavior = RepeatBehavior.Forever;
+
+ scale.BeginAnimation(ScaleTransform.ScaleXProperty, ani);
+ scale.BeginAnimation(ScaleTransform.ScaleYProperty, ani);
+ _dragBorder.BeginAnimation(ContentControl.OpacityProperty, aniOp);
+ }
+ }
+
+ /// <summary>
+ /// Removes the dragging element replication.
+ /// </summary>
+ private static void RemoveDraggingElement()
+ {
+ if (_dragBorder != null)
+ {
+ _dragBorder.RenderTransform.BeginAnimation(ScaleTransform.ScaleXProperty, null);
+ _dragBorder.RenderTransform.BeginAnimation(ScaleTransform.ScaleYProperty, null);
+ _dragBorder.BeginAnimation(ContentControl.OpacityProperty, null);
+ }
+
+ var surface = GetDraggingSurface(_currentDragedElement);
+ surface.Children.Clear();
+ }
+
+ /// <summary>
+ /// Drops the draggable.
+ /// </summary>
+ /// <param name="noDrop">if set to <c>true</c> [no drop].</param>
+ private static void DropDraggable(bool noDrop = false)
+ {
+ _isMouseDown = false;
+ RemoveDraggingElement();
+ _dragTimer.Stop();
+ SetIsDragging(_currentDragedElement, false);
+
+ foreach (var dropElement in _dropElements)
+ {
+ SetIsDraggableOver(dropElement, false);
+ }
+
+ if (noDrop)
+ {
+ _currentDragedElement = null;
+ _currentDropElement = null;
+ return;
+ }
+
+ if (_currentDropElement != null && _currentDragedElement != null)
+ {
+ _currentDropElement.RaiseEvent(new DropEventArgs(DropEvent, _currentDragedElement, _currentDropElement, _mouseDownLocation));
+ _currentDragedElement = null;
+ _currentDropElement = null;
+ }
+ else if (_currentDropElement == null && _currentDragedElement != null)
+ {
+ //if (DroppedNoWhere != null) DroppedNoWhere(this, currentDragedElement.Element);
+ //TODO: ??
+ }
+ }
+
+ #endregion
+
+ #region Draggable Event Handlers
+
+ /// <summary>
+ /// Handles the PreviewMouseDown event of the Draggable control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="System.Windows.Input.MouseButtonEventArgs"/> instance containing the event data.</param>
+ private static void Draggable_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+ {
+ if (e.Source != sender) return;
+
+ FrameworkElement element = sender as FrameworkElement;
+
+ if (!_dragElements.Exists(x => x == element))
+ {
+ e.Handled = false;
+ return;
+ }
+
+ _mouseDownLocation = e.GetPosition(element);
+ _currentDragedElement = element;
+ _isMouseDown = true;
+ }
+
+ /// <summary>
+ /// Handles the MouseMove event of the Draggable control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="System.Windows.Input.MouseEventArgs"/> instance containing the event data.</param>
+ private static void Draggable_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
+ {
+ if (_isMouseDown)
+ {
+ FrameworkElement element = _currentDragedElement;
+
+ if (element != null)
+ {
+ var surface = GetDraggingSurface(element);
+
+ if (surface != null)
+ {
+ if ((e.GetPosition(element).X > _mouseDownLocation.X + MIN_DRAG_OFFSET || e.GetPosition(element).X < _mouseDownLocation.X - MIN_DRAG_OFFSET) || (e.GetPosition(element).Y > _mouseDownLocation.Y + MIN_DRAG_OFFSET || e.GetPosition(element).Y < _mouseDownLocation.Y - MIN_DRAG_OFFSET))
+ {
+ element.ReleaseMouseCapture();
+ surface.ReleaseMouseCapture();
+ _isMouseDown = false;
+ CreateDraggingElement();
+ _dragTimer.Start();
+ SetIsDragging(element, true);
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Handles the PreviewMouseUp event of the Draggable control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="System.Windows.Input.MouseButtonEventArgs"/> instance containing the event data.</param>
+ private static void Draggable_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
+ {
+ FrameworkElement element = _currentDragedElement;
+
+ if (element != null)
+ {
+ if ((e.GetPosition(element).X > _mouseDownLocation.X + 10 || e.GetPosition(element).X < _mouseDownLocation.X - 10) || (e.GetPosition(element).Y > _mouseDownLocation.Y + 10 || e.GetPosition(element).Y < _mouseDownLocation.Y - 10))
+ {
+ DropDraggable();
+ }
+ else
+ {
+ DropDraggable(true);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Handles the Unloaded event of the Element control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
+ private static void Element_Unloaded(object sender, RoutedEventArgs e)
+ {
+ FrameworkElement element = sender as FrameworkElement;
+ UnRegisterDraggable(element);
+ }
+
+ #endregion
+
+ #region Droppable Event Handlers
+
+ /// <summary>
+ /// Handles the Unloaded1 event of the Element control.
+ /// </summary>
+ /// <param name="sender">The source of the event.</param>
+ /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
+ private static void Element_Unloaded1(object sender, RoutedEventArgs e)
+ {
+ FrameworkElement element = sender as FrameworkElement;
+ UnRegisterDroppable(element);
+ }
+
+ #endregion
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/DraggingSurface.cs b/Software/Visual_Studio/Tango.DragAndDrop/DraggingSurface.cs
new file mode 100644
index 000000000..4dd47af47
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/DraggingSurface.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+
+namespace Tango.DragAndDrop
+{
+ /// <summary>
+ /// Represents a dragging surface to be used by the <see cref="DragAndDropService"/>.
+ /// </summary>
+ /// <seealso cref="DragAndDropService"/>
+ /// <seealso cref="DropEventArgs"/>
+ public class DraggingSurface : Canvas
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="DraggingSurface"/> class.
+ /// </summary>
+ public DraggingSurface()
+ {
+ IsHitTestVisible = false;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/DropEventArgs.cs b/Software/Visual_Studio/Tango.DragAndDrop/DropEventArgs.cs
new file mode 100644
index 000000000..32822696c
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/DropEventArgs.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Tango.DragAndDrop
+{
+ /// <summary>
+ /// Represents the <see cref="DragAndDropService.DropEvent"/> attached event arguments.
+ /// </summary>
+ /// <seealso cref="System.Windows.RoutedEventArgs" />
+ /// <seealso cref="DragAndDropService"/>
+ /// <seealso cref="DraggingSurface"/>
+ public class DropEventArgs : RoutedEventArgs
+ {
+ /// <summary>
+ /// Gets or sets the position within the droppable element.
+ /// </summary>
+ public Point Position { get; set; }
+
+ /// <summary>
+ /// Gets or sets the draggable element.
+ /// </summary>
+ public FrameworkElement Draggable { get; set; }
+
+ /// <summary>
+ /// Gets or sets the droppable element.
+ /// </summary>
+ public FrameworkElement Droppable { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="DropEventArgs"/> class.
+ /// </summary>
+ /// <param name="routedEvent">The routed event.</param>
+ /// <param name="draggable">The draggable.</param>
+ /// <param name="droppable">The droppable.</param>
+ /// <param name="position">The position.</param>
+ public DropEventArgs(RoutedEvent routedEvent, FrameworkElement draggable, FrameworkElement droppable, Point position)
+ {
+ RoutedEvent = routedEvent;
+ Draggable = draggable;
+ Droppable = droppable;
+ Position = position;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..f8bab5ef1
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/AssemblyInfo.cs
@@ -0,0 +1,6 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Tango - Drag & Drop Components")]
+[assembly: ComVisible(false)] \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.Designer.cs b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..b93bf42d3
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.DragAndDrop.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.DragAndDrop.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.resx b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.resx
new file mode 100644
index 000000000..af7dbebba
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Resources.resx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.Designer.cs b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..66753ca65
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.DragAndDrop.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.settings b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.settings
new file mode 100644
index 000000000..033d7a5e9
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj b/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj
new file mode 100644
index 000000000..1c3f02230
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DragAndDrop/Tango.DragAndDrop.csproj
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{B112D89A-A106-41AE-A0C1-4ABC84C477F5}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Tango.DragAndDrop</RootNamespace>
+ <AssemblyName>Tango.DragAndDrop</AssemblyName>
+ <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ <SccProjectName>SAK</SccProjectName>
+ <SccLocalPath>SAK</SccLocalPath>
+ <SccAuxPath>SAK</SccAuxPath>
+ <SccProvider>SAK</SccProvider>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\Build\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <DocumentationFile>
+ </DocumentationFile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\Build\WpfVideoTools\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SignAssembly>false</SignAssembly>
+ </PropertyGroup>
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>
+ </AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\Versioning\GlobalVersionInfo.cs">
+ <Link>GlobalVersionInfo.cs</Link>
+ </Compile>
+ <Compile Include="DragAndDropService.cs" />
+ <Compile Include="DraggingSurface.cs" />
+ <Compile Include="DropEventArgs.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>
+ </SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ <AppDesigner Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Tango.SharedUI\Tango.SharedUI.csproj">
+ <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
+ <Name>Tango.SharedUI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\WpfVideoTools.Core\WpfVideoTools.Core.csproj">
+ <Project>{ed504ebe-110e-433d-96a9-344be453587a}</Project>
+ <Name>WpfVideoTools.Core</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml b/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml
new file mode 100644
index 000000000..7ef3aa972
--- /dev/null
+++ b/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml
@@ -0,0 +1,12 @@
+<UserControl x:Class="Tango.SharedUI.Controls.ScalerControl"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.SharedUI.Controls"
+ mc:Ignorable="d"
+ d:DesignHeight="300" d:DesignWidth="300">
+ <Grid>
+
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml.cs
new file mode 100644
index 000000000..058e246e1
--- /dev/null
+++ b/Software/Visual_Studio/Tango.SharedUI/Controls/ScalerControl.xaml.cs
@@ -0,0 +1,28 @@
+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.SharedUI.Controls
+{
+ /// <summary>
+ /// Interaction logic for ScalerControl.xaml
+ /// </summary>
+ public partial class ScalerControl : UserControl
+ {
+ public ScalerControl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.SharedUI/Helpers/UIHelper.cs b/Software/Visual_Studio/Tango.SharedUI/Helpers/UIHelper.cs
index 12178e428..945137316 100644
--- a/Software/Visual_Studio/Tango.SharedUI/Helpers/UIHelper.cs
+++ b/Software/Visual_Studio/Tango.SharedUI/Helpers/UIHelper.cs
@@ -1,15 +1,372 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Interop;
using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Threading;
namespace Tango.SharedUI.Helpers
{
public static class UIHelper
{
+ #region Native Classes
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct RECT
+ {
+ private int _Left;
+ private int _Top;
+ private int _Right;
+ private int _Bottom;
+
+ public RECT(RECT Rectangle)
+ : this(Rectangle.Left, Rectangle.Top, Rectangle.Right, Rectangle.Bottom)
+ {
+ }
+ public RECT(int Left, int Top, int Right, int Bottom)
+ {
+ _Left = Left;
+ _Top = Top;
+ _Right = Right;
+ _Bottom = Bottom;
+ }
+
+ public int X
+ {
+ get { return _Left; }
+ set { _Left = value; }
+ }
+ public int Y
+ {
+ get { return _Top; }
+ set { _Top = value; }
+ }
+ public int Left
+ {
+ get { return _Left; }
+ set { _Left = value; }
+ }
+ public int Top
+ {
+ get { return _Top; }
+ set { _Top = value; }
+ }
+ public int Right
+ {
+ get { return _Right; }
+ set { _Right = value; }
+ }
+ public int Bottom
+ {
+ get { return _Bottom; }
+ set { _Bottom = value; }
+ }
+ public int Height
+ {
+ get { return _Bottom - _Top; }
+ set { _Bottom = value + _Top; }
+ }
+ public int Width
+ {
+ get { return _Right - _Left; }
+ set { _Right = value + _Left; }
+ }
+ public System.Drawing.Point Location
+ {
+ get { return new System.Drawing.Point(Left, Top); }
+ set
+ {
+ _Left = value.X;
+ _Top = value.Y;
+ }
+ }
+ public System.Drawing.Size Size
+ {
+ get { return new System.Drawing.Size(Width, Height); }
+ set
+ {
+ _Right = value.Width + _Left;
+ _Bottom = value.Height + _Top;
+ }
+ }
+
+ public static implicit operator System.Drawing.Rectangle(RECT Rectangle)
+ {
+ return new System.Drawing.Rectangle(Rectangle.Left, Rectangle.Top, Rectangle.Width, Rectangle.Height);
+ }
+ public static implicit operator RECT(System.Drawing.Rectangle Rectangle)
+ {
+ return new RECT(Rectangle.Left, Rectangle.Top, Rectangle.Right, Rectangle.Bottom);
+ }
+ public static bool operator ==(RECT Rectangle1, RECT Rectangle2)
+ {
+ return Rectangle1.Equals(Rectangle2);
+ }
+ public static bool operator !=(RECT Rectangle1, RECT Rectangle2)
+ {
+ return !Rectangle1.Equals(Rectangle2);
+ }
+
+ public override string ToString()
+ {
+ return "{Left: " + _Left + "; " + "Top: " + _Top + "; Right: " + _Right + "; Bottom: " + _Bottom + "}";
+ }
+
+ public override int GetHashCode()
+ {
+ return ToString().GetHashCode();
+ }
+
+ public bool Equals(RECT Rectangle)
+ {
+ return Rectangle.Left == _Left && Rectangle.Top == _Top && Rectangle.Right == _Right && Rectangle.Bottom == _Bottom;
+ }
+
+ public override bool Equals(object Object)
+ {
+ if (Object is RECT)
+ {
+ return Equals((RECT)Object);
+ }
+ else if (Object is System.Drawing.Rectangle)
+ {
+ return Equals(new RECT((System.Drawing.Rectangle)Object));
+ }
+
+ return false;
+ }
+ }
+
+ #endregion
+
+ [DllImport("user32.dll")]
+ internal static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
+ [DllImport("user32.dll")]
+ internal static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags);
+ [DllImport("user32.dll", CharSet = CharSet.Auto)]
+ internal static extern IntPtr GetCapture();
+
+ public static void InvokeUI(Action action)
+ {
+ EnsureDispatcher();
+
+
+ try
+ {
+ Application.Current.Dispatcher.BeginInvoke(action);
+ }
+ catch { }
+ }
+
+ public static void InvokeUIUrgent(Action action)
+ {
+ EnsureDispatcher();
+ Application.Current.Dispatcher.Invoke(action, DispatcherPriority.Send);
+ }
+
+ public static void EnsureDispatcher()
+ {
+ try
+ {
+ if (System.Windows.Application.Current == null) //Using this to enable processing outside a WPF application.
+ {
+ new System.Windows.Application { ShutdownMode = ShutdownMode.OnExplicitShutdown };
+ }
+ }
+ catch { }
+ }
+
+ public static void DoEvents()
+ {
+ Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
+ new Action(delegate { }));
+ }
+
+ public static void ReleaseMouseCapture()
+ {
+ IntPtr capturingHandle = GetCapture();
+ for (int i = 0; i < Application.Current.Windows.Count; i++)
+ {
+ if (new WindowInteropHelper(Application.Current.Windows[i]).Handle == capturingHandle)
+ {
+ Mouse.Capture(Application.Current.Windows[i], CaptureMode.Element);
+ Application.Current.Windows[i].ReleaseMouseCapture();
+ break;
+ }
+ }
+ }
+
+ public static void RemoveChild(DependencyObject parent, UIElement child)
+ {
+ var panel = parent as Panel;
+ if (panel != null)
+ {
+ panel.Children.Remove(child);
+ return;
+ }
+
+ var decorator = parent as Decorator;
+ if (decorator != null)
+ {
+ if (decorator.Child == child)
+ {
+ decorator.Child = null;
+ }
+ return;
+ }
+
+ var contentPresenter = parent as ContentPresenter;
+ if (contentPresenter != null)
+ {
+ if (contentPresenter.Content == child)
+ {
+ contentPresenter.Content = null;
+ }
+ return;
+ }
+
+ var contentControl = parent as ContentControl;
+ if (contentControl != null)
+ {
+ if (contentControl.Content == child)
+ {
+ contentControl.Content = null;
+ }
+ return;
+ }
+ }
+
+ public static void AddChild(DependencyObject parent, UIElement child)
+ {
+ var panel = parent as Panel;
+ if (panel != null)
+ {
+ panel.Children.Add(child);
+ return;
+ }
+
+ var decorator = parent as Decorator;
+ if (decorator != null)
+ {
+ decorator.Child = child;
+ return;
+ }
+
+ var contentPresenter = parent as ContentPresenter;
+ if (contentPresenter != null)
+ {
+ contentPresenter.Content = child;
+ return;
+ }
+
+ var contentControl = parent as ContentControl;
+ if (contentControl != null)
+ {
+ contentControl.Content = child;
+ return;
+ }
+ }
+
+ public static RenderTargetBitmap TakeSnapshot(Visual oVisual, Size oSize)
+ {
+
+ int nWidth = (int)Math.Ceiling(oSize.Width);
+ int nHeight = (int)Math.Ceiling(oSize.Height);
+
+ RenderTargetBitmap oTargetBitmap = new RenderTargetBitmap(
+ nWidth,
+ nHeight,
+ 96,
+ 96,
+ PixelFormats.Pbgra32
+ );
+
+ DrawingVisual oDrawingVisual = new DrawingVisual();
+
+ using (DrawingContext oDrawingContext = oDrawingVisual.RenderOpen())
+ {
+ VisualBrush oVisualBrush = new VisualBrush(oVisual) { Stretch = Stretch.Fill };
+
+ oDrawingContext.DrawRectangle(
+ oVisualBrush,
+ null,
+ new Rect(
+ new Point(),
+ new Size(nWidth, nHeight)
+ )
+ );
+
+ oDrawingContext.Close();
+ oTargetBitmap.Render(oDrawingVisual);
+ }
+
+ oTargetBitmap.Freeze();
+
+ return oTargetBitmap;
+ }
+
+ public static RenderTargetBitmap TakeSnapshot(FrameworkElement element)
+ {
+
+ int nWidth = (int)Math.Ceiling(element.ActualWidth);
+ int nHeight = (int)Math.Ceiling(element.ActualHeight);
+
+ RenderTargetBitmap oTargetBitmap = new RenderTargetBitmap(
+ nWidth,
+ nHeight,
+ 96,
+ 96,
+ PixelFormats.Pbgra32
+ );
+
+ DrawingVisual oDrawingVisual = new DrawingVisual();
+
+ using (DrawingContext oDrawingContext = oDrawingVisual.RenderOpen())
+ {
+ VisualBrush oVisualBrush = new VisualBrush(element) { Stretch = Stretch.Fill };
+
+ oDrawingContext.DrawRectangle(
+ oVisualBrush,
+ null,
+ new Rect(
+ new Point(),
+ new Size(nWidth, nHeight)
+ )
+ );
+
+ oDrawingContext.Close();
+ oTargetBitmap.Render(oDrawingVisual);
+ }
+
+ return oTargetBitmap;
+ }
+
+ public static System.Drawing.Bitmap TakeSnapshot(Window window)
+ {
+
+ var handle = new WindowInteropHelper(window).Handle;
+ RECT rc;
+ GetWindowRect(handle, out rc);
+
+ System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
+ var gfxBmp = System.Drawing.Graphics.FromImage(bmp);
+ IntPtr hdcBitmap = gfxBmp.GetHdc();
+
+ PrintWindow(handle, hdcBitmap, 0);
+
+ gfxBmp.ReleaseHdc(hdcBitmap);
+ gfxBmp.Dispose();
+
+ return bmp;
+ }
+
/// <summary>
/// Finds a Child of a given item in the visual tree.
/// </summary>
@@ -20,7 +377,7 @@ namespace Tango.SharedUI.Helpers
/// If not matching item can be found,
/// a null parent is being returned.</returns>
public static T FindChild<T>(DependencyObject parent, string childName)
- where T : DependencyObject
+ where T : DependencyObject
{
// Confirm parent and childName are valid.
if (parent == null) return null;
@@ -62,5 +419,5 @@ namespace Tango.SharedUI.Helpers
return foundChild;
}
- }
+ }
}
diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
index 7fd3f149c..5f9b35b43 100644
--- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
+++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj
@@ -50,6 +50,7 @@
<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">
<HintPath>..\packages\MvvmLightLibs.5.3.0.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
<Private>True</Private>
@@ -74,6 +75,9 @@
<Compile Include="Controls\MultiTransitionControl.xaml.cs">
<DependentUpon>MultiTransitionControl.xaml</DependentUpon>
</Compile>
+ <Compile Include="Controls\ScalerControl.xaml.cs">
+ <DependentUpon>ScalerControl.xaml</DependentUpon>
+ </Compile>
<Compile Include="Controls\ScriptEditorControl.xaml.cs">
<DependentUpon>ScriptEditorControl.xaml</DependentUpon>
</Compile>
@@ -133,6 +137,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Controls\ScalerControl.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Controls\ScriptEditorControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
diff --git a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs
index 84103af39..5985eb393 100644
--- a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs
+++ b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs
@@ -35,8 +35,6 @@ namespace Tango.Synchronization.Remote
LogManager.Log("Querying all local addresses...");
var local_addresses = _localDB.ADDRESSES.ToList();
- LogManager.Log("Querying all local cartridges...");
- var local_cartridges = _localDB.CARTRIDGES.ToList();
LogManager.Log("Querying all local configurations...");
var local_configurations = _localDB.CONFIGURATIONS.ToList();
LogManager.Log("Querying all local configuration dispensers...");
@@ -110,9 +108,9 @@ namespace Tango.Synchronization.Remote
guids = remote_ids_packs.Select(x => x.DISPENSER_GUID).ToList();
var remote_dispensers = _remoteDB.DISPENSERS.Where(x => guids.Contains(x.GUID)).ToList();
- LogManager.Log("Querying all remote cartridges...");
- guids = remote_ids_packs.Select(x => x.CARTRIDGE_GUID).ToList();
- var remote_cartridges = _remoteDB.CARTRIDGES.Where(x => guids.Contains(x.GUID)).ToList();
+ LogManager.Log("Querying all remote cartridge types...");
+ guids = remote_ids_packs.Select(x => x.CARTRIDGE_TYPE_GUID).ToList();
+ var remote_cartridges_types = _remoteDB.CARTRIDGE_TYPES.Where(x => guids.Contains(x.GUID)).ToList();
LogManager.Log("Querying all remote CATS...");
guids = remote_machines.Select(x => x.GUID).ToList();
@@ -128,9 +126,6 @@ namespace Tango.Synchronization.Remote
LogManager.Log("Comparing addresses");
CompareCollections(remote_addresses, local_addresses, _remoteDB.ADDRESSES, _localDB.ADDRESSES);
- LogManager.Log("Comparing cartridges");
- CompareCollections(remote_cartridges, local_cartridges, _remoteDB.CARTRIDGES, _localDB.CARTRIDGES);
-
LogManager.Log("Comparing configurations");
CompareCollections(remote_configurations, local_configurations, _remoteDB.CONFIGURATIONS, _localDB.CONFIGURATIONS);
diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln
index 7335dcce7..f31dbd91a 100644
--- a/Software/Visual_Studio/Tango.sln
+++ b/Software/Visual_Studio/Tango.sln
@@ -105,6 +105,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Integration", "Tango.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Stubs", "MachineStudio\Modules\Tango.MachineStudio.Stubs\Tango.MachineStudio.Stubs.csproj", "{22C2AA72-9493-4D0D-B421-8EF9789FB192}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.MachineDesigner", "MachineStudio\Modules\Tango.MachineStudio.MachineDesigner\Tango.MachineStudio.MachineDesigner.csproj", "{D0CE8122-077D-42A2-9490-028AE4769B52}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DragAndDrop", "Tango.DragAndDrop\Tango.DragAndDrop.csproj", "{B112D89A-A106-41AE-A0C1-4ABC84C477F5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -903,6 +907,46 @@ Global
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x64.Build.0 = Release|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.ActiveCfg = Release|Any CPU
{22C2AA72-9493-4D0D-B421-8EF9789FB192}.Release|x86.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x64.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Debug|x86.Build.0 = Debug|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|ARM64.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x64.Build.0 = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.ActiveCfg = Release|Any CPU
+ {D0CE8122-077D-42A2-9490-028AE4769B52}.Release|x86.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x64.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Debug|x86.Build.0 = Debug|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|ARM64.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x64.Build.0 = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.ActiveCfg = Release|Any CPU
+ {B112D89A-A106-41AE-A0C1-4ABC84C477F5}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -930,5 +974,6 @@ Global
{625B2A26-97A9-45C9-8BCF-6BD30F593E17} = {4443B71C-216E-4D4C-8D19-868F50803813}
{BB2ABB74-BA58-4812-83AA-EC8171F42DF4} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958}
{22C2AA72-9493-4D0D-B421-8EF9789FB192} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
+ {D0CE8122-077D-42A2-9490-028AE4769B52} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
EndGlobalSection
EndGlobal