diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-01-03 15:11:49 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-01-03 15:11:49 +0200 |
| commit | 0fc95107f2da4f93f7c135e7c29802bd7d785431 (patch) | |
| tree | 11f6c6e961a30ad942edf38dc6aebee501fed34a | |
| parent | 63b2a192ba12f8239668b6818db4ad02db68dbbc (diff) | |
| download | Tango-0fc95107f2da4f93f7c135e7c29802bd7d785431.tar.gz Tango-0fc95107f2da4f93f7c135e7c29802bd7d785431.zip | |
Added Mid Tanks to DB.
Started implementing Machine Designer.
74 files changed, 3123 insertions, 181 deletions
diff --git a/Software/DB/Tango.db b/Software/DB/Tango.db Binary files differindex d676fc8c3..555cd32f7 100644 --- a/Software/DB/Tango.db +++ b/Software/DB/Tango.db diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf Binary files differindex f9471f81a..041bdac8b 100644 --- a/Software/DB/Tango.mdf +++ b/Software/DB/Tango.mdf diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf Binary files differindex 5464292cb..c64f7bf70 100644 --- a/Software/DB/Tango_log.ldf +++ b/Software/DB/Tango_log.ldf diff --git a/Software/Graphics/dispenser.png b/Software/Graphics/dispenser.png Binary files differnew file mode 100644 index 000000000..82cf1a39a --- /dev/null +++ b/Software/Graphics/dispenser.png diff --git a/Software/Graphics/machine-full-fx.png b/Software/Graphics/machine-full-fx.png Binary files differnew file mode 100644 index 000000000..b3c497546 --- /dev/null +++ b/Software/Graphics/machine-full-fx.png diff --git a/Software/Graphics/machine-sketch.png b/Software/Graphics/machine-sketch.png Binary files differnew file mode 100644 index 000000000..a4e1ae2a8 --- /dev/null +++ b/Software/Graphics/machine-sketch.png diff --git a/Software/Graphics/mid-tank.png b/Software/Graphics/mid-tank.png Binary files differnew file mode 100644 index 000000000..d22896e86 --- /dev/null +++ b/Software/Graphics/mid-tank.png diff --git a/Software/Graphics/ti-tm4c129x.png b/Software/Graphics/ti-tm4c129x.png Binary files differnew file mode 100644 index 000000000..9c280255e --- /dev/null +++ b/Software/Graphics/ti-tm4c129x.png 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 Binary files differnew file mode 100644 index 000000000..82cf1a39a --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/dispenser.png 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 Binary files differnew file mode 100644 index 000000000..b3c497546 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-full-fx.png 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 Binary files differnew file mode 100644 index 000000000..a4e1ae2a8 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/machine-sketch.png 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 Binary files differnew file mode 100644 index 000000000..d22896e86 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/mid-tank.png 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 Binary files differnew file mode 100644 index 000000000..9c280255e --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Images/ti-tm4c129x.png 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 |
