diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-12-30 01:27:53 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-12-30 01:27:53 +0200 |
| commit | cc3480d4aac4175b1072060dd2d6d398d3451ae8 (patch) | |
| tree | 0c416705eca9d499a3118d83d84b5143f3cee262 /Software | |
| parent | 7b69f9a96ab82e3a6e2345092600edf5854f5f4f (diff) | |
| download | Tango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.tar.gz Tango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.zip | |
Working on dispenserssssssss
Diffstat (limited to 'Software')
70 files changed, 2634 insertions, 2175 deletions
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf Binary files differindex 601408e2e..967eddb23 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 a0788fd6d..65b2bce77 100644 --- a/Software/DB/Tango_log.ldf +++ b/Software/DB/Tango_log.ldf diff --git a/Software/Graphics/Machine Studio Modules/dispensers.png b/Software/Graphics/Machine Studio Modules/dispensers.png Binary files differnew file mode 100644 index 000000000..2f9e1ca8b --- /dev/null +++ b/Software/Graphics/Machine Studio Modules/dispensers.png diff --git a/Software/Graphics/dispensers-title.png b/Software/Graphics/dispensers-title.png Binary files differnew file mode 100644 index 000000000..b5c594aa7 --- /dev/null +++ b/Software/Graphics/dispensers-title.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/App.config b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/App.config new file mode 100644 index 000000000..56898686f --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/App.config @@ -0,0 +1,55 @@ +<?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> + <dependentAssembly> + <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Contracts/IMainView.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Contracts/IMainView.cs new file mode 100644 index 000000000..ea0744c84 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Contracts/IMainView.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.MachineStudio.Dispensers.Contracts +{ + public enum DispensersNavigationView + { + DispensersView, + DispenserView, + } + + public interface IMainView : IView + { + void NavigateTo(DispensersNavigationView view); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/DispensersModule.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/DispensersModule.cs new file mode 100644 index 000000000..6d6c7d8e6 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/DispensersModule.cs @@ -0,0 +1,63 @@ +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.BL.Enumerations; +using Tango.MachineStudio.Dispensers.Views; +using Tango.MachineStudio.Common; +using Tango.SharedUI.Helpers; + +namespace Tango.MachineStudio.ColorLab +{ + [StudioModule(10)] + public class DispensersModule : StudioModuleBase + { + public override string Name + { + get + { + return "Dispensers"; + } + } + + public override string Description + { + get + { + return "Manage twine's dispensers repository."; + } + } + + public override BitmapSource Image + { + get + { + return ResourceHelper.GetImageFromResources("Images/dispensers.png"); + } + } + + public override Type MainViewType + { + get + { + return typeof(MainView); + } + } + + public override Permissions Permission + { + get + { + return Permissions.RunResearchModule; + } + } + + public override void Dispose() + { + + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers-title.png b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers-title.png Binary files differnew file mode 100644 index 000000000..b5c594aa7 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers-title.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png Binary files differnew file mode 100644 index 000000000..2f9e1ca8b --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Models/DispenserModel.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Models/DispenserModel.cs new file mode 100644 index 000000000..94bf24e85 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Models/DispenserModel.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; + +namespace Tango.MachineStudio.Dispensers.Models +{ + public class DispenserModel + { + private ObservablesContext _context; + + public Dispenser Dispenser { get; set; } + + public DispenserModel(Dispenser dispenser, ObservablesContext context) + { + Dispenser = dispenser; + _context = context; + } + + + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..f52524e12 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +[assembly: AssemblyTitle("Tango - Machine Studio Dispensers Module")] +[assembly: AssemblyVersion("2.0.12.1608")] + +[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/MachineStudio.Dispensers/Properties/Resources.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Resources.Designer.cs new file mode 100644 index 000000000..436917dd5 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/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.MachineStudio.Dispensers.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", "15.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.MachineStudio.Dispensers.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/MachineStudio.Dispensers/Properties/Resources.resx b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/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/MachineStudio.Dispensers/Properties/Settings.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Settings.Designer.cs new file mode 100644 index 000000000..caf9445c0 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/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.MachineStudio.Dispensers.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.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/MachineStudio.Dispensers/Properties/Settings.settings b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/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/MachineStudio.Dispensers/Tango.MachineStudio.Dispensers.csproj b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Tango.MachineStudio.Dispensers.csproj new file mode 100644 index 000000000..bd8f858a6 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Tango.MachineStudio.Dispensers.csproj @@ -0,0 +1,167 @@ +<?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>{F69DA3A8-F823-461E-87CF-A9275ABC0B15}</ProjectGuid> + <OutputType>library</OutputType> + <RootNamespace>Tango.MachineStudio.Dispensers</RootNamespace> + <AssemblyName>Tango.MachineStudio.Dispensers</AssemblyName> + <TargetFrameworkVersion>v4.6.1</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\Machine Studio\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>..\..\..\Build\Machine Studio\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.dll</HintPath> + </Reference> + <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.SqlServer.dll</HintPath> + </Reference> + <Reference Include="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.ComponentModel.DataAnnotations" /> + <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="..\..\..\Versioning\GlobalVersionInfo.cs"> + <Link>GlobalVersionInfo.cs</Link> + </Compile> + <Compile Include="Contracts\IMainView.cs" /> + <Compile Include="DispensersModule.cs" /> + <Compile Include="Models\DispenserModel.cs" /> + <Compile Include="ViewModelLocator.cs" /> + <Compile Include="ViewModels\MainViewVM.cs" /> + <Compile Include="Views\DispensersView.xaml.cs"> + <DependentUpon>DispensersView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\DispenserView.xaml.cs"> + <DependentUpon>DispenserView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\MainView.xaml.cs"> + <DependentUpon>MainView.xaml</DependentUpon> + </Compile> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <None Include="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.BL\Tango.BL.csproj"> + <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project> + <Name>Tango.BL</Name> + </ProjectReference> + <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + </ProjectReference> + <ProjectReference Include="..\..\..\Tango.Logging\Tango.Logging.csproj"> + <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project> + <Name>Tango.Logging</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.MachineStudio.Common\Tango.MachineStudio.Common.csproj"> + <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project> + <Name>Tango.MachineStudio.Common</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\dispensers-title.png" /> + </ItemGroup> + <ItemGroup> + <Page Include="Views\DispensersView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\DispenserView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\MainView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + </ItemGroup> + <ItemGroup> + <Resource Include="Images\dispensers.png" /> + </ItemGroup> + <ItemGroup /> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModelLocator.cs new file mode 100644 index 000000000..038a052b3 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModelLocator.cs @@ -0,0 +1,28 @@ +using Tango.MachineStudio.Dispensers.ViewModels; +using Tango.Core.DI; + +namespace Tango.MachineStudio.Dispensers +{ + /// <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() + { + TangoIOC.Default.Register<MainViewVM>(); + } + + public static MainViewVM MainViewVM + { + get + { + return TangoIOC.Default.GetInstance<MainViewVM>(); + } + } + } +}
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModels/MainViewVM.cs new file mode 100644 index 000000000..db9dff355 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModels/MainViewVM.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.MachineStudio.Common; +using System.Data.Entity; +using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.Dispensers.Contracts; +using Tango.Core.Commands; + +namespace Tango.MachineStudio.Dispensers.ViewModels +{ + public class MainViewVM : StudioViewModel<IMainView> + { + private ObservablesContext _dbContext; + private ObservablesContext _activeContext; + private INotificationProvider _notification; + + private ObservableCollection<Dispenser> _dispensers; + public ObservableCollection<Dispenser> Dispensers + { + get { return _dispensers; } + set { _dispensers = value; RaisePropertyChangedAuto(); } + } + + private Dispenser _selectedDispenser; + public Dispenser SelectedDispenser + { + get { return _selectedDispenser; } + set { _selectedDispenser = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } + } + + private Dispenser _activeDispenser; + public Dispenser ActiveDispenser + { + get { return _activeDispenser; } + set { _activeDispenser = value; RaisePropertyChangedAuto(); } + } + + private String _filter; + public String Filter + { + get { return _filter; } + set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } + } + + public RelayCommand AddDispenserCommand { get; set; } + + public RelayCommand RemoveDispenserCommand { get; set; } + + public RelayCommand ManageDispenserCommand { get; set; } + + public RelayCommand BackToDispensersCommand { get; set; } + + public RelayCommand SaveCommand { get; set; } + + public MainViewVM(INotificationProvider notificationProvider) + { + _notification = notificationProvider; + + ManageDispenserCommand = new RelayCommand(ManageSelectedDispenser,() => SelectedDispenser != null); + BackToDispensersCommand = new RelayCommand(() => { View.NavigateTo(DispensersNavigationView.DispensersView); }); + } + + private async void OnFilterChanged() + { + if (Filter != null) + { + IsFree = false; + Dispensers = (await _dbContext.Dispensers.Where(x => x.SerialNumber.StartsWith(Filter)).ToListAsync()).ToObservableCollection(); + IsFree = true; + } + } + + private async void ManageSelectedDispenser() + { + if (SelectedDispenser != null) + { + if (_activeContext != null) + { + _activeContext.Dispose(); + } + + using (_notification.PushTaskItem("Loading dispenser data...")) + { + _activeContext = ObservablesContext.CreateDefault(); + ActiveDispenser = await _activeContext.Dispensers.SingleOrDefaultAsync(x => x.Guid == SelectedDispenser.Guid); + View.NavigateTo(DispensersNavigationView.DispenserView); + } + } + else + { + ActiveDispenser = null; + } + } + + public async override void OnApplicationReady() + { + _dbContext = ObservablesContext.CreateDefault(); + await _dbContext.DispenserTypes.LoadAsync(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml new file mode 100644 index 000000000..796c0f8a4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml @@ -0,0 +1,46 @@ +<UserControl x:Class="Tango.MachineStudio.Dispensers.Views.DispenserView" + 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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.MachineStudio.Dispensers.ViewModels" + xmlns:global="clr-namespace:Tango.MachineStudio.Dispensers" + xmlns:local="clr-namespace:Tango.MachineStudio.Dispensers.Views" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + <Grid Margin="20"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <StackPanel Orientation="Horizontal"> + <Button Style="{StaticResource MaterialDesignFlatButton}" Height="Auto" Command="{Binding BackToDispensersCommand}"> + <materialDesign:PackIcon Kind="ArrowLeft" Width="50" Height="50" Foreground="#202020" ToolTip="Back to RML list" /> + </Button> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="34"> + <Run>DISPENSER</Run> + <Run Text="{Binding ActiveDispenser.SerialNumber}"></Run> + </TextBlock> + </StackPanel> + + <Button HorizontalAlignment="Right" Width="170" Height="45" Margin="0 0 20 0" VerticalAlignment="Center" Command="{Binding SaveCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="ContentSaveAll" Width="24" Height="24" /> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">SAVE</TextBlock> + </StackPanel> + </Button> + </Grid> + + <Grid DockPanel.Dock="Bottom"> + + </Grid> + + <Grid Margin="0 20"> + + </Grid> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml.cs new file mode 100644 index 000000000..61e758dc7 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.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.Dispensers.Views +{ + /// <summary> + /// Interaction logic for DispenserView.xaml + /// </summary> + public partial class DispenserView : UserControl + { + public DispenserView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml new file mode 100644 index 000000000..3ae7082f0 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml @@ -0,0 +1,76 @@ +<UserControl x:Class="Tango.MachineStudio.Dispensers.Views.DispensersView" + 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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.MachineStudio.Dispensers.ViewModels" + xmlns:global="clr-namespace:Tango.MachineStudio.Dispensers" + xmlns:local="clr-namespace:Tango.MachineStudio.Dispensers.Views" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + <UserControl.Resources> + <converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" /> + </UserControl.Resources> + + <Grid> + <DockPanel Margin="100" MaxWidth="1200"> + <Grid DockPanel.Dock="Top"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/dispensers-title.png" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" /> + + <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 0 0 10"> + <materialDesign:PackIcon VerticalAlignment="Center" Kind="BarcodeScan" Width="32" Height="32" /> + <TextBox Width="400" FontSize="20" Margin="10 0 0 0" materialDesign:HintAssist.Hint="Serial Number" Text="{Binding Filter,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </StackPanel> + </StackPanel> + </Grid> + <Grid DockPanel.Dock="Bottom"> + <StackPanel VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left" Margin="0 0 0 0"> + <Button Margin="0 0 10 0" MinWidth="160" Height="50" Background="#FF7575" BorderBrush="#FF7575" Command="{Binding RemoveDispenserCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Delete" Width="20" Height="20" /> + <TextBlock Margin="5 0 0 0" FontSize="16">DELETE</TextBlock> + </StackPanel> + </Button> + <Button Margin="0 0 10 0" MinWidth="160" Height="50" Background="#65C682" BorderBrush="#65C682" Command="{Binding AddDispenserCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Plus" Width="20" Height="20" /> + <TextBlock Margin="5 0 0 0" FontSize="16">NEW DISPENSER</TextBlock> + </StackPanel> + </Button> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> + <Button Margin="50 0 0 0" MinWidth="200" Height="60" Command="{Binding ManageDispenserCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Pencil" Width="24" Height="24" /> + <TextBlock Margin="10 0 0 0" FontSize="18">EDIT</TextBlock> + </StackPanel> + </Button> + </StackPanel> + </Grid> + <Grid> + <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" Background="#93FFFFFF" AlternatingRowBackground="#C9F6F6F6" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Dispensers}" SelectedItem="{Binding SelectedDispenser}"> + <DataGrid.CellStyle> + <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}"> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="VerticalContentAlignment" Value="Center"></Setter> + </Style> + </DataGrid.CellStyle> + <DataGrid.Columns> + <DataGridTextColumn Header="SERIAL NUMBER" Binding="{Binding SerialNumber}" Width="Auto" /> + <DataGridTextColumn Header="TYPE" Binding="{Binding DispenserType.Name}" Width="Auto" /> + <DataGridTextColumn Header="NANOLITER / PULSE" Binding="{Binding NlPerPulse}" Width="Auto" /> + <DataGridTextColumn Header="INSTALLED" Binding="{Binding Installed}" Width="Auto" /> + <DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> + </DataGrid.Columns> + </DataGrid> + </Grid> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml.cs new file mode 100644 index 000000000..dda818ff6 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.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.Dispensers.Views +{ + /// <summary> + /// Interaction logic for DispensersView.xaml + /// </summary> + public partial class DispensersView : UserControl + { + public DispensersView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml new file mode 100644 index 000000000..4062f8b74 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml @@ -0,0 +1,22 @@ +<UserControl x:Class="Tango.MachineStudio.Dispensers.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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.MachineStudio.Dispensers.ViewModels" + xmlns:global="clr-namespace:Tango.MachineStudio.Dispensers" + xmlns:local="clr-namespace:Tango.MachineStudio.Dispensers.Views" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + <Grid> + <controls:NavigationControl x:Name="navigationControl" TransitionType="Slide"> + <local:DispensersView /> + <local:DispenserView/> + </controls:NavigationControl> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml.cs new file mode 100644 index 000000000..bc3f747e8 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.Core.DI; +using Tango.MachineStudio.Dispensers.Contracts; + +namespace Tango.MachineStudio.Dispensers.Views +{ + /// <summary> + /// Interaction logic for MainView.xaml + /// </summary> + public partial class MainView : UserControl , IMainView + { + public MainView() + { + InitializeComponent(); + TangoIOC.Default.Register<IMainView>(this); + } + + public void NavigateTo(DispensersNavigationView view) + { + navigationControl.NavigateTo(view.ToString()); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/packages.config b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/packages.config new file mode 100644 index 000000000..6676d3860 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/packages.config @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="CommonServiceLocator" version="1.3" targetFramework="net461" /> + <package id="EntityFramework" version="6.0.0" targetFramework="net461" /> + <package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net461" /> + <package id="MahApps.Metro" version="1.5.0" targetFramework="net461" /> + <package id="MaterialDesignColors" version="1.1.2" targetFramework="net461" /> + <package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net461" /> +</packages>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Contracts/IMainView.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Contracts/IMainView.cs new file mode 100644 index 000000000..392b557c4 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Contracts/IMainView.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.SharedUI; + +namespace Tango.MachineStudio.MachineDesigner.Contracts +{ + public enum MachineDesignerNavigationView + { + MachinesView, + MachineDetailsView, + ConfigurationView, + } + + public interface IMainView : IView + { + void NavigateTo(MachineDesignerNavigationView view); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 3fa7c60cf..8ced2e510 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -76,19 +76,37 @@ <Link>GlobalVersionInfo.cs</Link> </Compile> <Compile Include="AutoComplete\MachineVersionsProvider.cs" /> + <Compile Include="Contracts\IMainView.cs" /> <Compile Include="ViewModelLocator.cs" /> <Compile Include="ViewModels\MachineVersionDialogVM.cs" /> <Compile Include="ViewModels\MainViewVM.cs" /> + <Compile Include="Views\MachineDetailsView.xaml.cs"> + <DependentUpon>MachineDetailsView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\MachinesView.xaml.cs"> + <DependentUpon>MachinesView.xaml</DependentUpon> + </Compile> <Compile Include="Views\MachineVersionDialog.xaml.cs"> <DependentUpon>MachineVersionDialog.xaml</DependentUpon> </Compile> <Compile Include="Views\MachineView.xaml.cs"> <DependentUpon>MachineView.xaml</DependentUpon> </Compile> + <Compile Include="Views\ConfigurationView.xaml.cs"> + <DependentUpon>ConfigurationView.xaml</DependentUpon> + </Compile> + <Compile Include="MachineDesignerModule.cs" /> <Compile Include="Views\MainView.xaml.cs"> <DependentUpon>MainView.xaml</DependentUpon> </Compile> - <Compile Include="MachineDesignerModule.cs" /> + <Page Include="Views\MachineDetailsView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> + <Page Include="Views\MachinesView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Views\MachineVersionDialog.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -97,6 +115,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\ConfigurationView.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Views\MainView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> @@ -232,7 +254,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 5a5df0d0f..e2924a185 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -18,45 +18,38 @@ using Tango.MachineStudio.Common; using Tango.BL; using Tango.AutoComplete.Editors; using System.Data.Entity; +using Tango.BL.Builders; +using Tango.MachineStudio.MachineDesigner.Contracts; namespace Tango.MachineStudio.MachineDesigner.ViewModels { - public class MainViewVM : StudioViewModel + public class MainViewVM : StudioViewModel<IMainView> { private INotificationProvider _notification; - private ObservablesContext _db; - private Configuration _original_configuration; + private ObservablesContext _dbContext; + private ObservablesContext _machineContext; + private ObservablesContext _configContext; #region Properties - private ObservablesStaticCollections _adapter; + private ObservableCollection<Machine> _machines; /// <summary> - /// Gets or sets the db static adapter. + /// Gets or sets the machines. /// </summary> - public ObservablesStaticCollections Adapter + public ObservableCollection<Machine> Machines { - get { return _adapter; } - set { _adapter = value; RaisePropertyChangedAuto(); } + get { return _machines; } + set { _machines = value; RaisePropertyChangedAuto(); } } - private bool _canWork; + private ObservableCollection<Dispenser> _dispensers; /// <summary> - /// Gets or sets a value indicating whether this instance can work. + /// Gets or sets the dispensers. /// </summary> - public bool CanWork + public ObservableCollection<Dispenser> Dispensers { - get { return _canWork; } - set { _canWork = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } - } - - private Machine _machine; - /// <summary> - /// Gets or sets the current editable machine. - /// </summary> - public Machine Machine - { - get { return _machine; } - set { _machine = value; RaisePropertyChangedAuto(); } + get { return _dispensers; } + set { _dispensers = value; RaisePropertyChangedAuto(); } } private Machine _selectedMachine; @@ -70,11 +63,24 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { if (_selectedMachine != value) { - _selectedMachine = value; RaisePropertyChangedAuto(); OnSelectedMachineChanged(); + _selectedMachine = value; + RaisePropertyChangedAuto(); + InvalidateRelayCommands(); } } } + private Machine _activeMachine; + /// <summary> + /// Gets or sets the active machine. + /// </summary> + public Machine ActiveMachine + { + get { return _activeMachine; } + set { _activeMachine = value; RaisePropertyChangedAuto(); } + } + + private Configuration _configuration; /// <summary> /// Gets or sets the editable machine configuration. @@ -95,29 +101,19 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _selectedIds = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } - private ObservableCollection<Configuration> _history; + private String _dispensersFilter; /// <summary> - /// Gets or sets the machine configuration history. + /// Gets or sets the dispensers filter. /// </summary> - public ObservableCollection<Configuration> History + public String DispensersFilter { - get { return _history; } - set { _history = value; RaisePropertyChangedAuto(); } - } - - private Configuration _selectedHistoryConfiguration; - /// <summary> - /// Gets or sets the machine selected configuration from history. - /// </summary> - public Configuration SelectedHistoryConfiguration - { - get { return _selectedHistoryConfiguration; } - set { _selectedHistoryConfiguration = value; RaisePropertyChangedAuto(); OnHistoryConfigurationSelected(); } + get { return _dispensersFilter; } + set { _dispensersFilter = value; RaisePropertyChangedAuto(); OnDispensersFilterChanged(); } } private String _filter; /// <summary> - /// Gets or sets the configuration components filter. + /// Gets or sets the machines filter. /// </summary> public String Filter { @@ -125,11 +121,6 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } } - /// <summary> - /// Gets or sets the machines provider. - /// </summary> - public ISuggestionProvider MachinesProvider { get; set; } - #endregion #region Commands @@ -150,19 +141,19 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public RelayCommand RemoveIdsCommand { get; set; } /// <summary> - /// Gets or sets the set version configuration command. + /// Gets or sets the remove machine command. /// </summary> - public RelayCommand SetVersionConfigurationCommand { get; set; } + public RelayCommand RemoveMachineCommand { get; set; } /// <summary> - /// Gets or sets the set as default command. + /// Gets or sets the add machine command. /// </summary> - public RelayCommand SetAsDefaultCommand { get; set; } + public RelayCommand AddMachineCommand { get; set; } /// <summary> - /// Gets or sets the reset command. + /// Gets or sets the edit machine command. /// </summary> - public RelayCommand ResetCommand { get; set; } + public RelayCommand EditMachineCommand { get; set; } #endregion @@ -178,195 +169,95 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> public MainViewVM(INotificationProvider notification) { - CanWork = true; - + _dbContext = ObservablesContext.CreateDefault(); _notification = notification; - Configuration = new Configuration(); - Configuration.Name = "Untitled"; - Machine = new Machine(); - Machine.Configuration = Configuration; - - SaveCommand = new RelayCommand(Save, (x) => CanWork); - AddIdsCommand = new RelayCommand(AddIds, (x) => CanWork && Configuration.IdsPacks.Count < 8); - RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => CanWork && SelectedIds != null); - SetVersionConfigurationCommand = new RelayCommand(SetVersionConfiguration, (x) => CanWork); - SetAsDefaultCommand = new RelayCommand(SetAsDefaultConfiguration, (x) => CanWork); - ResetCommand = new RelayCommand(Reset, () => CanWork); + //SaveCommand = new RelayCommand(Save); + AddIdsCommand = new RelayCommand(AddIds, (x) => Configuration != null && Configuration.IdsPacks.Count < 8); + RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => SelectedIds != null); + EditMachineCommand = new RelayCommand(EditSelectedMachine, () => SelectedMachine != null); + } - MachinesProvider = new SuggestionProvider((filter) => + private async void EditSelectedMachine() + { + using (_notification.PushTaskItem("Loading machine details...")) { - try - { - return _db.Machines.Where(x => x.SerialNumber.StartsWith(filter)).ToList(); - } - catch + IsFree = false; + + if (_machineContext != null) { - return new List<Machine>(); + _machineContext.Dispose(); } - }); + + _machineContext = ObservablesContext.CreateDefault(); + ActiveMachine = (await new MachineBuilder(_machineContext).Set(SelectedMachine).WithOrganization().WithConfiguration().BuildAsync()); + View.NavigateTo(MachineDesignerNavigationView.MachineDetailsView); + + IsFree = true; + } } #endregion #region Application Ready - public async override void OnApplicationReady() + public override void OnApplicationReady() { - await InitCollections(); + } #endregion - private Task InitCollections() - { - return Task.Factory.StartNew(() => - { - CanWork = false; + //private Task InitCollections() + //{ + // return Task.Factory.StartNew(() => + // { + // CanWork = false; - _db = ObservablesContext.CreateDefault(); + // _dbContext = ObservablesContext.CreateDefault(); - Adapter = new ObservablesStaticCollections(); - Adapter.ApplicationDisplayPanelVersions = _db.ApplicationDisplayPanelVersions.ToObservableCollection(); - Adapter.ApplicationFirmwareVersions = _db.ApplicationFirmwareVersions.ToObservableCollection(); - Adapter.ApplicationOsVersions = _db.ApplicationOsVersions.ToObservableCollection(); - Adapter.EmbeddedFirmwareVersions = _db.EmbeddedFirmwareVersions.ToObservableCollection(); - Adapter.DispenserTypes = _db.DispenserTypes.ToObservableCollection(); - Adapter.LiquidTypes = _db.LiquidTypes.ToObservableCollection(); - Adapter.MidTankTypes = _db.MidTankTypes.ToObservableCollection(); - Adapter.CartridgeTypes = _db.CartridgeTypes.ToObservableCollection(); - Adapter.IdsPackFormulas = _db.IdsPackFormulas.ToObservableCollection(); - Adapter.HardwareVersions = _db.HardwareVersions.ToObservableCollection(); - Adapter.MachineVersions = _db.MachineVersions.ToObservableCollection(); - Adapter.Organizations = _db.Organizations.ToObservableCollection(); + // Adapter = new ObservablesStaticCollections(); + // Adapter.ApplicationDisplayPanelVersions = _dbContext.ApplicationDisplayPanelVersions.ToObservableCollection(); + // Adapter.ApplicationFirmwareVersions = _dbContext.ApplicationFirmwareVersions.ToObservableCollection(); + // Adapter.ApplicationOsVersions = _dbContext.ApplicationOsVersions.ToObservableCollection(); + // Adapter.EmbeddedFirmwareVersions = _dbContext.EmbeddedFirmwareVersions.ToObservableCollection(); + // Adapter.DispenserTypes = _dbContext.DispenserTypes.ToObservableCollection(); + // Adapter.LiquidTypes = _dbContext.LiquidTypes.ToObservableCollection(); + // Adapter.MidTankTypes = _dbContext.MidTankTypes.ToObservableCollection(); + // Adapter.CartridgeTypes = _dbContext.CartridgeTypes.ToObservableCollection(); + // Adapter.IdsPackFormulas = _dbContext.IdsPackFormulas.ToObservableCollection(); + // Adapter.HardwareVersions = _dbContext.HardwareVersions.ToObservableCollection(); + // Adapter.MachineVersions = _dbContext.MachineVersions.ToObservableCollection(); + // Adapter.Organizations = _dbContext.Organizations.ToObservableCollection(); - Adapter.InitCollectionSources(); + // Adapter.InitCollectionSources(); - CanWork = true; - }); - } + // CanWork = true; + // }); + //} private void Reset() { - using (_notification.PushTaskItem("Resetting designer...")) - { - SelectedMachine = null; - Machine = new Machine(); - Configuration = new Configuration(); - History = new ObservableCollection<Configuration>(); - SelectedHistoryConfiguration = null; - Filter = String.Empty; - InitCollections(); - } + //using (_notification.PushTaskItem("Resetting designer...")) + //{ + // SelectedMachine = null; + // Machine = new Machine(); + // Configuration = new Configuration(); + // InitCollections(); + //} } - #region Virtual Methods - - /// <summary> - /// Called when the selected machine has changed. - /// </summary> - protected virtual void OnSelectedMachineChanged() + private async void OnDispensersFilterChanged() { - if (SelectedMachine != null) + if (!String.IsNullOrWhiteSpace(DispensersFilter)) { - CanWork = false; - - using (_notification.PushTaskItem("Loading machine configuration...")) - { - Task.Factory.StartNew(() => - { - InitCollections().Wait(); - Machine = _db.Machines.Where(x => x.Guid == SelectedMachine.Guid).Include(x => x.Organization).SingleOrDefault(x => x.Guid == SelectedMachine.Guid); - Configuration = _db.Adapter.GetConfiguration(x => x.Guid == Machine.ConfigurationGuid); - - SetHistory(); - - _original_configuration = Configuration.Clone(); - }); - } - - CanWork = true; - } - else - { - History = new ObservableCollection<Configuration>(); - } - } - - /// <summary> - /// Called when the history configuration has been selected - /// </summary> - protected virtual void OnHistoryConfigurationSelected() - { - if (SelectedHistoryConfiguration != null && CanWork) - { - using (_notification.PushTaskItem("Loading Configuration...")) - { - Task.Factory.StartNew(() => - { - CanWork = false; - - SelectedHistoryConfiguration = _db.Adapter.GetConfiguration(x => x.Guid == SelectedHistoryConfiguration.Guid); - Configuration = SelectedHistoryConfiguration; - Machine.Configuration = Configuration; - - CanWork = true; - }); - } - } - } - - /// <summary> - /// Called when the filter has changed - /// </summary> - protected virtual void OnFilterChanged() - { - List<ICollectionView> collections = new List<ICollectionView>(); - collections.Add(Adapter.ApplicationFirmwareVersionsViewSource); - collections.Add(Adapter.ApplicationDisplayPanelVersionsViewSource); - collections.Add(Adapter.ApplicationOsVersionsViewSource); - collections.Add(Adapter.EmbeddedFirmwareVersionsViewSource); - collections.Add(Adapter.DispenserTypesViewSource); - collections.Add(Adapter.CartridgeTypesViewSource); - collections.Add(Adapter.LiquidTypesViewSource); - collections.Add(Adapter.MidTankTypesViewSource); - collections.Add(Adapter.HardwareVersionsViewSource); - - foreach (var collection in collections) - { - collection.Filter = (x) => - { - foreach (var prop in x.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(y => y.PropertyType == typeof(String))) - { - String value = prop.GetValue(x).ToStringSafe(); - - if (value != null && Filter != null) - { - if (value.ToLower().Contains(Filter.ToLower())) - { - return true; - } - } - } - - return false; - }; + IsFree = false; + Dispensers = (await _configContext.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).ToListAsync()).ToObservableCollection(); + IsFree = true; } } - #endregion - - #region Public Methods - - /// <summary> - /// Sets the selected machine without any further processing. - /// </summary> - /// <param name="machine">The machine.</param> - public void SetSelectedMachine(Machine machine) - { - _machine = machine; - RaisePropertyChanged(nameof(Machine)); - } + #region Virtual Methods #endregion @@ -433,25 +324,25 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } /// <summary> - /// Drops the type of the cartridge. + /// Drops the dispenser. /// </summary> - /// <param name="cartridgeType">Type of the cartridge.</param> + /// <param name="dispenser">The dispenser.</param> /// <param name="idsPack">The ids pack.</param> - public void DropCartridgeType(CartridgeType cartridgeType, IdsPack idsPack) + public void DropDispenser(Dispenser dispenser, IdsPack idsPack) { - idsPack.CartridgeType = cartridgeType; - idsPack.CartridgeTypeGuid = cartridgeType.Guid; + idsPack.Dispenser = dispenser; + idsPack.DispenserGuid = dispenser.Guid; } /// <summary> - /// Drops the dispenser. + /// Drops the type of the cartridge. /// </summary> - /// <param name="dispenserType">The dispenser.</param> + /// <param name="cartridgeType">Type of the cartridge.</param> /// <param name="idsPack">The ids pack.</param> - public void DropDispenserType(DispenserType dispenserType, IdsPack idsPack) + public void DropCartridgeType(CartridgeType cartridgeType, IdsPack idsPack) { - idsPack.DispenserType = dispenserType; - idsPack.DispenserTypeGuid = dispenserType.Guid; + idsPack.CartridgeType = cartridgeType; + idsPack.CartridgeTypeGuid = cartridgeType.Guid; } /// <summary> @@ -497,7 +388,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> private void RemoveIds() { - _db.IdsPacks.Remove(SelectedIds); + _dbContext.IdsPacks.Remove(SelectedIds); SelectedIds = null; } @@ -506,277 +397,251 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// </summary> private void AddIds() { - _db.IdsPacks.Add(new IdsPack() { Configuration = Configuration }); + _dbContext.IdsPacks.Add(new IdsPack() { Configuration = Configuration }); InvalidateRelayCommands(); } - /// <summary> - /// Saves the current machine configuration. - /// </summary> - private async void Save() - { - foreach (var ids in Configuration.IdsPacks) - { - ids.PackIndex = Configuration.IdsPacks.IndexOf(ids); - ids.Configuration = Configuration; - ids.ConfigurationGuid = Configuration.Guid; - } + ///// <summary> + ///// Saves the current machine configuration. + ///// </summary> + //private async void Save() + //{ + // foreach (var ids in Configuration.IdsPacks) + // { + // ids.PackIndex = Configuration.IdsPacks.IndexOf(ids); + // ids.Configuration = Configuration; + // ids.ConfigurationGuid = Configuration.Guid; + // } - //Validate + // //Validate - List<String> errors = new List<string>(); + // List<String> errors = new List<string>(); - if (Machine.MachineVersion == null) - { - errors.Add("Machine version is required."); - } + // if (Machine.MachineVersion == null) + // { + // errors.Add("Machine version is required."); + // } - if (Machine.Name.IsNullOrWhiteSpace()) - { - errors.Add("Machine name is required."); - } + // if (Machine.Name.IsNullOrWhiteSpace()) + // { + // errors.Add("Machine name is required."); + // } - if (Machine.Organization == null) - { - errors.Add("Machine organization is required."); - } + // if (Machine.Organization == null) + // { + // errors.Add("Machine organization is required."); + // } - if (Machine.SerialNumber.IsNullOrWhiteSpace()) - { - errors.Add("Machine serial number is required."); - } + // if (Machine.SerialNumber.IsNullOrWhiteSpace()) + // { + // errors.Add("Machine serial number is required."); + // } - if (Configuration.Name.IsNullOrWhiteSpace()) - { - errors.Add("Configuration name is required."); - } + // if (Configuration.Name.IsNullOrWhiteSpace()) + // { + // errors.Add("Configuration name is required."); + // } - if (Configuration.ApplicationDisplayPanelVersion == null) - { - errors.Add("Touch Panel is required."); - } + // if (Configuration.ApplicationDisplayPanelVersion == null) + // { + // errors.Add("Touch Panel is required."); + // } - if (Configuration.ApplicationFirmwareVersion == null) - { - errors.Add("Application firmware is required."); - } + // if (Configuration.ApplicationFirmwareVersion == null) + // { + // errors.Add("Application firmware is required."); + // } - if (Configuration.ApplicationOsVersion == null) - { - errors.Add("Application operation system is required."); - } + // if (Configuration.ApplicationOsVersion == null) + // { + // errors.Add("Application operation system is required."); + // } - if (Configuration.EmbeddedFirmwareVersion == null) - { - errors.Add("Embedded firmware is required."); - } + // if (Configuration.EmbeddedFirmwareVersion == null) + // { + // errors.Add("Embedded firmware is required."); + // } - if (Configuration.HardwareVersion == null) - { - errors.Add("Hardware version is required."); - } + // if (Configuration.HardwareVersion == null) + // { + // errors.Add("Hardware version is required."); + // } - foreach (var pack in Configuration.IdsPacks) - { - if (pack.LiquidType != null || pack.CartridgeType != null || pack.DispenserType != null || pack.IdsPackFormula != null || pack.MidTankType != null) - { - if (pack.Name.IsNullOrWhiteSpace()) - { - errors.Add(String.Format("Name is required on IDS pack number '{0}'.", Configuration.IdsPacks.IndexOf(pack) + 1)); - continue; - } - if (pack.CartridgeType == null) - { - errors.Add(String.Format("Cartridge type is required on IDS pack '{0}'.", pack.Name)); - } - if (pack.DispenserType == null) - { - errors.Add(String.Format("Dispenser type is required on IDS pack '{0}'.", pack.Name)); - } - if (pack.LiquidType == null) - { - errors.Add(String.Format("Liquid type is required on IDS pack '{0}'.", pack.Name)); - } - if (pack.MidTankType == null) - { - errors.Add(String.Format("Mid Tank type is required on IDS pack '{0}'.", pack.Name)); - } - if (pack.IdsPackFormula == null) - { - errors.Add(String.Format("Formula type is required on IDS pack '{0}'.", pack.Name)); - } + // foreach (var pack in Configuration.IdsPacks) + // { + // if (pack.LiquidType != null || pack.CartridgeType != null || pack.Dispenser != null || pack.IdsPackFormula != null || pack.MidTankType != null) + // { + // if (pack.CartridgeType == null) + // { + // errors.Add(String.Format("Cartridge type is required on IDS pack '{0}'.", pack.PackIndex)); + // } + // if (pack.Dispenser == null) + // { + // errors.Add(String.Format("Dispenser is required on IDS pack '{0}'.", pack.PackIndex)); + // } + // if (pack.LiquidType == null) + // { + // errors.Add(String.Format("Liquid type is required on IDS pack '{0}'.", pack.PackIndex)); + // } + // if (pack.MidTankType == null) + // { + // errors.Add(String.Format("Mid Tank type is required on IDS pack '{0}'.", pack.PackIndex)); + // } + // if (pack.IdsPackFormula == null) + // { + // errors.Add(String.Format("Formula type is required on IDS pack '{0}'.", pack.PackIndex)); + // } - pack.IsEmpty = false; - } - else - { - pack.IsEmpty = true; - pack.Name = String.Empty; - } - } + // pack.IsEmpty = false; + // } + // else + // { + // pack.IsEmpty = true; + // } + // } - if (errors.Count > 0) - { - String errorsString = "Please fix the following validation errors before trying to save." + Environment.NewLine + Environment.NewLine; - errorsString += String.Join(Environment.NewLine, errors); - _notification.ShowError(errorsString); - return; - } + // if (errors.Count > 0) + // { + // String errorsString = "Please fix the following validation errors before trying to save." + Environment.NewLine + Environment.NewLine; + // errorsString += String.Join(Environment.NewLine, errors); + // _notification.ShowError(errorsString); + // return; + // } - //Validate + // //Validate - try - { - CanWork = false; + // try + // { + // CanWork = false; - using (_notification.PushTaskItem("Saving Machine Configuration...")) - { - if (!_db.Machines.Any(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower())) - { - if (!_notification.ShowQuestion("The specified machine serial number does not exist. Do you wish to create a new machine?")) - { - CanWork = true; - return; - } - else - { - Machine.Configuration = Configuration; - Configuration.CreationDate = DateTime.UtcNow; - Machine.ProductionDate = DateTime.UtcNow; + // using (_notification.PushTaskItem("Saving Machine Configuration...")) + // { + // if (!_dbContext.Machines.Any(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower())) + // { + // if (!_notification.ShowQuestion("The specified machine serial number does not exist. Do you wish to create a new machine?")) + // { + // CanWork = true; + // return; + // } + // else + // { + // Machine.Configuration = Configuration; + // Configuration.CreationDate = DateTime.UtcNow; + // Machine.ProductionDate = DateTime.UtcNow; - _db.Machines.Add(Machine); - _db.MachinesConfigurations.Add(new MachinesConfiguration() - { - Configuration = Configuration, - Machine = Machine, - }); - } - } - else - { - bool add_history = History.Count == 0 || _original_configuration.Name != Configuration.Name; + // _dbContext.Machines.Add(Machine); + // } + // } - if (add_history) - { - _db.Configurations.Add(_original_configuration); + // await _dbContext.SaveChangesAsync(); + // OnSelectedMachineChanged(); - _db.MachinesConfigurations.Add(new MachinesConfiguration() - { - Configuration = _original_configuration, - Machine = Machine - }); - } - } + // } + // } + // catch (Exception ex) + // { + // _notification.ShowError("An error occurred while trying to save the configuration" + Environment.NewLine + ex.Message); + // } + // finally + // { + // CanWork = true; + // InvalidateRelayCommands(); + // } + //} - await _db.SaveChangesAsync(); - OnSelectedMachineChanged(); + ///// <summary> + ///// Sets the current configuration to the selected machine version default configuration. + ///// </summary> + //private async void SetVersionConfiguration() + //{ + // if (Machine.MachineVersion != null) + // { + // using (_notification.PushTaskItem("Applying default configuration...")) + // { + // CanWork = false; - } - } - catch (Exception ex) - { - _notification.ShowError("An error occurred while trying to save the configuration" + Environment.NewLine + ex.Message); - } - finally - { - CanWork = true; - InvalidateRelayCommands(); - } - } + // await Task.Factory.StartNew(() => + // { + // var version = _dbContext.MachineVersions.Where(x => x.Guid == Machine.MachineVersion.Guid).Include(x => x.DefaultConfiguration).FirstOrDefault(); + // var version_config = _dbContext.Adapter.GetConfiguration(x => x.Guid == version.DefaultConfiguration.Guid); + // Configuration = version_config.Clone(); + // Machine.Configuration = Configuration; + // }); - /// <summary> - /// Sets the specified machine history. - /// </summary> - /// <param name="machine">The machine.</param> - private void SetHistory() - { - History = _db.MachinesConfigurations.Where(x => x.MachineGuid == Machine.Guid).Select(x => x.Configuration).ToObservableCollection(); - //History.Insert(0, Machine.Configuration); - } + // CanWork = true; + // } + // } + // else + // { + // _notification.ShowError("No machine version selected."); + // } + //} - /// <summary> - /// Sets the current configuration to the selected machine version default configuration. - /// </summary> - private async void SetVersionConfiguration() - { - if (Machine.MachineVersion != null) - { - using (_notification.PushTaskItem("Applying default configuration...")) - { - CanWork = false; + ///// <summary> + ///// Sets the current configuration as a default machine version configuration. + ///// </summary> + //private void SetAsDefaultConfiguration() + //{ + // _notification.ShowModalDialog<MachineVersionDialogVM>(async (vm) => + // { + // CanWork = false; - await Task.Factory.StartNew(() => - { - var version = _db.MachineVersions.Where(x => x.Guid == Machine.MachineVersion.Guid).Include(x => x.DefaultConfiguration).FirstOrDefault(); - var version_config = _db.Adapter.GetConfiguration(x => x.Guid == version.DefaultConfiguration.Guid); - Configuration = version_config.Clone(); - Machine.Configuration = Configuration; - }); + // try + // { + // using (_notification.PushTaskItem("Saving Default Configuration...")) + // { + // if (vm.SelectedVersion != null) + // { + // var version = _dbContext.MachineVersions.Where(x => x.Guid == vm.SelectedVersion.Guid).Include(x => x.DefaultConfiguration).SingleOrDefault(x => x.Guid == vm.SelectedVersion.Guid); - CanWork = true; - } - } - else - { - _notification.ShowError("No machine version selected."); - } - } + // _dbContext.Configurations.Remove(version.DefaultConfiguration); - /// <summary> - /// Sets the current configuration as a default machine version configuration. - /// </summary> - private void SetAsDefaultConfiguration() - { - _notification.ShowModalDialog<MachineVersionDialogVM>(async (vm) => - { - CanWork = false; + // var cloned = Configuration.Clone(); + // _dbContext.Configurations.Add(cloned); + // version.DefaultConfiguration = cloned; - try - { - using (_notification.PushTaskItem("Saving Default Configuration...")) - { - if (vm.SelectedVersion != null) - { - var version = _db.MachineVersions.Where(x => x.Guid == vm.SelectedVersion.Guid).Include(x => x.DefaultConfiguration).SingleOrDefault(x => x.Guid == vm.SelectedVersion.Guid); + // await _dbContext.SaveChangesAsync(); + // } + // else + // { + // MachineVersion newVersion = new MachineVersion(); + // newVersion.Version = vm.Version; + // newVersion.Name = vm.VersionName; - _db.Configurations.Remove(version.DefaultConfiguration); + // var cloned = Configuration.Clone(); - var cloned = Configuration.Clone(); - _db.Configurations.Add(cloned); - version.DefaultConfiguration = cloned; + // _dbContext.Configurations.Add(cloned); + // newVersion.DefaultConfiguration = cloned; + // _dbContext.MachineVersions.Add(newVersion); + // await _dbContext.SaveChangesAsync(); + // } + // } + // } + // catch (Exception ex) + // { + // _notification.ShowError(ex.Message); + // } + // finally + // { + // CanWork = true; + // } - await _db.SaveChangesAsync(); - } - else - { - MachineVersion newVersion = new MachineVersion(); - newVersion.Version = vm.Version; - newVersion.Name = vm.VersionName; + // }, () => + // { - var cloned = Configuration.Clone(); + // }); + //} - _db.Configurations.Add(cloned); - newVersion.DefaultConfiguration = cloned; - _db.MachineVersions.Add(newVersion); - await _db.SaveChangesAsync(); - } - } - } - catch (Exception ex) - { - _notification.ShowError(ex.Message); - } - finally - { - CanWork = true; - } + #endregion - }, () => + private async void OnFilterChanged() + { + if (!String.IsNullOrWhiteSpace(Filter)) { - - }); + IsFree = false; + Machines = (await _dbContext.Machines.Where(x => x.SerialNumber.StartsWith(Filter)).ToListAsync()).ToObservableCollection(); + IsFree = true; + } } - - #endregion } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml new file mode 100644 index 000000000..a96cd4685 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml @@ -0,0 +1,718 @@ +<UserControl x:Class="Tango.MachineStudio.MachineDesigner.Views.ConfigurationView" + 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:fa="http://schemas.fontawesome.io/icons/" + xmlns:providers="clr-namespace:Tango.MachineStudio.MachineDesigner.AutoComplete" + xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels" + xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views" + mc:Ignorable="d" + d:DesignHeight="720" d:DesignWidth="1280" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + <UserControl.Resources> + <sharedConverters:ColorToIntegerConverter x:Key="ColorToIntegerConverter" /> + + <Style x:Key="draggableGrid" TargetType="Grid"> + <Setter Property="RenderTransform"> + <Setter.Value> + <ScaleTransform ScaleX="1" ScaleY="1"></ScaleTransform> + </Setter.Value> + </Setter> + <Setter Property="RenderTransformOrigin" Value="0.5,0.5"></Setter> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="dragAndDrop:DragAndDropService.Draggable" Value="True"></Setter> + <Setter Property="dragAndDrop:DragAndDropService.Droppable" Value="True"></Setter> + <Setter Property="dragAndDrop:DragAndDropService.DraggingSurface" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"></Setter> + <Style.Triggers> + <Trigger Property="dragAndDrop:DragAndDropService.IsDraggableOver" Value="True"> + <Setter Property="Opacity" Value="0.5"></Setter> + <Trigger.EnterActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="0.95" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleX"></DoubleAnimation> + <DoubleAnimation To="0.95" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleY"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.EnterActions> + <Trigger.ExitActions> + <BeginStoryboard> + <Storyboard> + <DoubleAnimation To="1" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleX"></DoubleAnimation> + <DoubleAnimation To="1" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleY"></DoubleAnimation> + </Storyboard> + </BeginStoryboard> + </Trigger.ExitActions> + </Trigger> + </Style.Triggers> + </Style> + + <Style TargetType="Expander" BasedOn="{StaticResource {x:Type Expander}}"> + <Setter Property="HeaderTemplate"> + <Setter.Value> + <DataTemplate> + <TextBlock Text="{Binding}" FontSize="13"></TextBlock> + </DataTemplate> + </Setter.Value> + </Setter> + </Style> + </UserControl.Resources> + + <Grid> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="477*"/> + <ColumnDefinition Width="310" x:FieldModifier="public" x:Name="panelColumnDefinition" /> + </Grid.ColumnDefinitions> + + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="200"/> + <ColumnDefinition Width="1*"/> + </Grid.ColumnDefinitions> + + <Grid Grid.Column="1"> + <Grid.RowDefinitions> + <RowDefinition Height="90"/> + <RowDefinition Height="631*"/> + </Grid.RowDefinitions> + + <Grid ClipToBounds="False"> + + </Grid> + + <Viewbox MaxWidth="1200" Grid.Row="1" > + <Grid VerticalAlignment="Top"> + + <Image IsHitTestVisible="False" 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 ClipToBounds="False" x:Name="canvas"> + + <Grid x:Name="hardwareGrid" Style="{StaticResource draggableGrid}" Width="118" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True" dragAndDrop:DragAndDropService.Drop="MachineDrop"> + <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.HardwareVersion.Name}"></Run> + <Run Text="{Binding Configuration.HardwareVersion.Version}"></Run> + </TextBlock> + </StackPanel> + </Border> + </Grid> + + <TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware Version</TextBlock> + <Grid Width="97" Height="90" Canvas.Left="431" Canvas.Top="-13"> + <Rectangle Stroke="Gray" VerticalAlignment="Top" 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="222" Canvas.Left="446" FontStyle="Italic" Foreground="Gray">Add IDS</TextBlock> + <Grid Width="23" Height="20" Canvas.Top="231" Canvas.Left="414"> + <Rectangle Stroke="Gray" VerticalAlignment="Top" 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="255" Canvas.Left="500" FontStyle="Italic" Foreground="Gray">Remove IDS</TextBlock> + <Grid Width="35" Height="8" Canvas.Top="264" Canvas.Left="460"> + <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> + </Grid> + + <Button Command="{Binding AddIdsCommand}" Style="{StaticResource MaterialDesignFlatButton}" Height="24" Width="24" Padding="0" Canvas.Left="402" Canvas.Top="253"> + <materialDesign:PackIcon Kind="Plus" Width="24" Height="24"></materialDesign:PackIcon> + </Button> + + <Button Command="{Binding RemoveIdsCommand}" Style="{StaticResource MaterialDesignFlatButton}" Height="24" Width="24" Padding="0" Canvas.Left="430" Canvas.Top="252"> + <materialDesign:PackIcon Kind="Minus" Width="24" Height="24"></materialDesign:PackIcon> + </Button> + + <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" Rows="1" Columns="8" TextElement.FontSize="9"> + <TextBlock HorizontalAlignment="Center">1</TextBlock> + <TextBlock HorizontalAlignment="Center">2</TextBlock> + <TextBlock HorizontalAlignment="Center">3</TextBlock> + <TextBlock HorizontalAlignment="Center">4</TextBlock> + <TextBlock HorizontalAlignment="Center">5</TextBlock> + <TextBlock HorizontalAlignment="Center">6</TextBlock> + <TextBlock HorizontalAlignment="Center">7</TextBlock> + <TextBlock HorizontalAlignment="Center">8</TextBlock> + </UniformGrid> + <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> + <ListBox ItemsSource="{Binding Configuration.IdsPacks}" SelectedItem="{Binding SelectedIds}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="Padding" Value="0"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <UniformGrid Columns="8"></UniformGrid> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Grid dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Drop="OnDropOnIdsPack"> + <Grid.RowDefinitions> + <RowDefinition Height="1*"/> + <RowDefinition Height="30"/> + </Grid.RowDefinitions> + <Grid.Style> + <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> + <Style.Triggers> + + </Style.Triggers> + </Style> + </Grid.Style> + <UniformGrid Columns="1" Rows="2"> + <Grid Margin="2"> + <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" 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="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + </Grid> + + <Grid Margin="2"> + <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"> + <Image.Style> + <Style TargetType="Image"> + <Style.Triggers> + <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + <Rectangle IsHitTestVisible="False" 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="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Rectangle.Fill> + </Rectangle> + + <TextBlock Text="{Binding IdsPackFormula.Name}" TextWrapping="Wrap" Height="30" IsHitTestVisible="False" Width="50" Margin="-20 15 0 0" FontSize="7" TextAlignment="Center" RenderTransformOrigin="0.5,0.5" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"> + <TextBlock.LayoutTransform> + <RotateTransform Angle="90" /> + </TextBlock.LayoutTransform> + </TextBlock> + </Grid> + </UniformGrid> + + <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> + <Grid.Style> + <Style TargetType="Grid"> + <Style.Triggers> + <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}"> + <Setter Property="Opacity" Value="0.2"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush> + <GradientStop Color="#FF252525"/> + <GradientStop Color="#FF838383" Offset="1"/> + </LinearGradientBrush> + </Border.Background> + </Border> + <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> + <Border.Background> + <LinearGradientBrush Opacity="0.7"> + <GradientStop Offset="0" Color="Transparent" /> + <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> + </LinearGradientBrush> + </Border.Background> + </Border> + </Grid> + </Grid> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ListBox> + + <Grid Margin="0 50 0 0"> + <Grid.Style> + <Style TargetType="Grid"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0"> + <Setter Property="Visibility" Value="Visible"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Grid.Style> + <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="Gainsboro">NO IDS PACKS</TextBlock> + </Grid> + + <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="1"> + <Rectangle.Effect> + <DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" /> + </Rectangle.Effect> + </Rectangle> + </Grid> + + <Grid x:Name="gridEmbedded" Style="{StaticResource draggableGrid}" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True" dragAndDrop:DragAndDropService.Drop="OnEmbeddedDrop"> + <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image> + </Grid> + + <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock VerticalAlignment="Center" Padding="1" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock> + </StackPanel> + </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="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock> + <Grid Width="62" Height="29" Canvas.Top="418" Canvas.Left="357"> + <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="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock> + <Grid Width="87" Height="10" Canvas.Top="487" Canvas.Left="332"> + <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> + + <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198" dragAndDrop:DragAndDropService.Drop="OnTabletDrop" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.DraggableBackground="#151515"> + <Grid.Style> + <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> + <Setter Property="Background" Value="#2B2B2B"></Setter> + <Style.Triggers> + <Trigger Property="dragAndDrop:DragAndDropService.IsDraggableOver" Value="True"> + <Setter Property="Background" Value="Black"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </Grid.Style> + <Grid.RowDefinitions> + <RowDefinition Height="1*" /> + <RowDefinition Height="1*" /> + <RowDefinition Height="1*" /> + </Grid.RowDefinitions> + + <StackPanel> + <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Name}"></Run> + <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Version}"></Run> + </TextBlock> + </StackPanel> + + + <StackPanel Grid.Row="1" > + <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Name}"></Run> + <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Version}"></Run> + </TextBlock> + </StackPanel> + + <StackPanel Grid.Row="2" > + <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> + <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> + <Run Text="{Binding Configuration.ApplicationOsVersion.Name}"></Run> + <Run Text="{Binding Configuration.ApplicationOsVersion.Version}"></Run> + </TextBlock> + </StackPanel> + </Grid> + </Canvas> + </Grid> + </Viewbox> + </Grid> + + + <Grid> + <TextBlock Margin="10" FontStyle="Italic" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Gray" FontSize="16">IDS PACKS</TextBlock> + <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> + <ItemsControl ItemsSource="{Binding Configuration.IdsPacks}" FontSize="10" Foreground="DimGray" Margin="10 30 10 10"> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel> + <TextBlock FontWeight="Bold" FontSize="12" Margin="5"> + <Run>PACK: #</Run><Run Text="{Binding PackIndex}"></Run> + </TextBlock> + <StackPanel Margin="20 0 0 0"> + <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> + <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/injection.png" Width="12" VerticalAlignment="Center"></Image> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Dispenser:</Run> <Run FontStyle="Italic" Text="{Binding Dispenser.SerialNumber}"></Run></TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> + <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/tank.png" Width="12" VerticalAlignment="Center"></Image> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Mid Tank:</Run> <Run FontStyle="Italic" Text="{Binding MidTankType.Name}"></Run></TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> + <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/cartridge.png" Width="12" VerticalAlignment="Center"></Image> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Cartridge:</Run> <Run FontStyle="Italic" Text="{Binding CartridgeType.Name}"></Run></TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> + <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/liquid.png" Width="12" VerticalAlignment="Center"></Image> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Liquid:</Run> <Run FontStyle="Italic" Text="{Binding LiquidType.Name}"></Run></TextBlock> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> + <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/formula.png" Width="12" VerticalAlignment="Center"></Image> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Formula:</Run> <Run FontStyle="Italic" Text="{Binding IdsPackFormula.Name}"></Run></TextBlock> + </StackPanel> + </StackPanel> + </StackPanel> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </ScrollViewer> + + <Rectangle HorizontalAlignment="Right" Margin="0 20 0 20" Stroke="Gainsboro" StrokeThickness="1" StrokeDashArray="5 5 5 5"></Rectangle> + </Grid> + </Grid> + + <Grid Grid.Column="1" IsEnabled="{Binding CanWork}"> + <Grid.RowDefinitions> + <RowDefinition/> + <RowDefinition Height="80"/> + </Grid.RowDefinitions> + <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> + <Grid> + <StackPanel> + <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> + <StackPanel> + <Expander HorizontalAlignment="Stretch" Header="Dispensers"> + <StackPanel> + <DockPanel> + <materialDesign:PackIcon Width="24" Height="24" Kind="BarcodeScan" VerticalAlignment="Center" /> + <TextBox Margin="5 0 0 0" materialDesign:HintAssist.Hint="Serial Number" Text="{Binding DispensersFilter,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </DockPanel> + <ListBox Margin="0 10 0 20" ItemsSource="{Binding Adapter.Dispensers}" HorizontalContentAlignment="Stretch" Height="200"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/injection.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding SerialNumber}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </StackPanel> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Mid Tanks"> + <ListBox ItemsSource="{Binding Adapter.MidTankTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tank.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Cartridges"> + <ListBox ItemsSource="{Binding Adapter.CartridgeTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/cartridge.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Liquids"> + <ListBox ItemsSource="{Binding Adapter.LiquidTypesViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/liquid.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + <Rectangle Height="5" Width="170"> + <Rectangle.Fill> + <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> + </Rectangle.Fill> + </Rectangle> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="IDS Pack Formulas"> + <ListBox ItemsSource="{Binding Adapter.IdsPackFormulasViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/formula.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Touch Panels"> + <ListBox ItemsSource="{Binding Adapter.ApplicationDisplayPanelVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tablet.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Operation Systems"> + <ListBox ItemsSource="{Binding Adapter.ApplicationOsVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/android.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Application Firmwares"> + <ListBox ItemsSource="{Binding Adapter.ApplicationFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/application-firmware.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Embedded Firmwares"> + <ListBox ItemsSource="{Binding Adapter.EmbeddedFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> + <Expander HorizontalAlignment="Stretch" Header="Hardware Versions"> + <ListBox ItemsSource="{Binding Adapter.HardwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> + <ListBox.ItemContainerStyle> + <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> + <Setter Property="Padding" Value="1"></Setter> + </Style> + </ListBox.ItemContainerStyle> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> + <StackPanel Orientation="Horizontal" Margin="2 8"> + <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/hardware.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> + <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> + <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> + </StackPanel> + </StackPanel> + + <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Expander> + </StackPanel> + </materialDesign:Card> + </StackPanel> + </Grid> + </ScrollViewer> + + <Grid Grid.Row="1" Margin="10"> + <Grid> + <Button Height="50" Command="{Binding SaveCommand}" Margin="0 0 5 0"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Width="20" Height="20" VerticalAlignment="Center" Kind="ContentSaveSettings"></materialDesign:PackIcon> + <TextBlock FontSize="14" Margin="10 0 0 0" VerticalAlignment="Center">SAVE</TextBlock> + </StackPanel> + </Button> + </Grid> + </Grid> + </Grid> + </Grid> + + <dragAndDrop:DraggingSurface x:Name="dragSufrace" /> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs new file mode 100644 index 000000000..941a2792d --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs @@ -0,0 +1,172 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.BL.Entities; +using Tango.DragAndDrop; +using Tango.MachineStudio.MachineDesigner.ViewModels; + +namespace Tango.MachineStudio.MachineDesigner.Views +{ + /// <summary> + /// Interaction logic for MainView.xaml + /// </summary> + public partial class ConfigurationView : UserControl + { + private MainViewVM _vm; + private Rectangle _highlightRect; + private bool _highlightShown; + private DoubleAnimation _highlightAnimation; + + public ColumnDefinition PanelColumnDefinition { get; set; } + + public ConfigurationView() + { + InitializeComponent(); + + PanelColumnDefinition = panelColumnDefinition; + + DraggingSurface = dragSufrace; + this.Loaded += (x, y) => + { + _vm = DataContext as MainViewVM; + }; + + DragAndDropService.DragStarted += DragAndDropService_DragStarted; + DragAndDropService.DragEnded += DragAndDropService_DragEnded; + + _highlightRect = new Rectangle(); + _highlightRect.IsHitTestVisible = false; + _highlightRect.Stroke = Application.Current.Resources["AccentColorBrush"] as Brush; + _highlightRect.StrokeThickness = 2; + _highlightRect.StrokeDashArray = new DoubleCollection(new double[] { 3, 3, 3, 3 }); + } + + private void DragAndDropService_DragEnded(object sender, FrameworkElement e) + { + canvas.Children.Remove(_highlightRect); + _highlightShown = false; + _highlightRect.BeginAnimation(Rectangle.OpacityProperty, null); + } + + private void DragAndDropService_DragStarted(object sender, FrameworkElement e) + { + if (e.DataContext is HardwareVersion) + { + SetHighlightRegion(hardwareGrid); + } + else if (e.DataContext is ApplicationOsVersion || e.DataContext is ApplicationDisplayPanelVersion || e.DataContext is ApplicationFirmwareVersion) + { + SetHighlightRegion(gridTablet); + } + else if (e.DataContext is EmbeddedFirmwareVersion) + { + SetHighlightRegion(gridEmbedded); + } + else if (e.DataContext is DispenserType || e.DataContext is CartridgeType || e.DataContext is LiquidType || e.DataContext is MidTankType || e.DataContext is IdsPackFormula) + { + SetHighlightRegion(gridIds); + } + } + + public DraggingSurface DraggingSurface + { + get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); } + set { SetValue(DraggingSurfaceProperty, value); } + } + public static readonly DependencyProperty DraggingSurfaceProperty = + DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(MainView), new PropertyMetadata(null)); + + private void OnDropOnIdsPack(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is Dispenser) + { + _vm.DropDispenser(e.Draggable.DataContext as Dispenser, e.Droppable.DataContext as IdsPack); + } + else if (e.Draggable.DataContext is LiquidType) + { + _vm.DropLiquidType(e.Draggable.DataContext as LiquidType, e.Droppable.DataContext as IdsPack); + } + else if (e.Draggable.DataContext is CartridgeType) + { + _vm.DropCartridgeType(e.Draggable.DataContext as CartridgeType, e.Droppable.DataContext as IdsPack); + } + else if (e.Draggable.DataContext is MidTankType) + { + _vm.DropMidTankType(e.Draggable.DataContext as MidTankType, e.Droppable.DataContext as IdsPack); + } + else if (e.Draggable.DataContext is IdsPackFormula) + { + _vm.DropIdsFormula(e.Draggable.DataContext as IdsPackFormula, e.Droppable.DataContext as IdsPack); + } + else if (e.Draggable.DataContext is IdsPack) + { + _vm.DropIdsPack(e.Draggable.DataContext as IdsPack, e.Droppable.DataContext as IdsPack); + } + } + + private void OnTabletDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is ApplicationDisplayPanelVersion) + { + _vm.DropTouchPanel(e.Draggable.DataContext as ApplicationDisplayPanelVersion); + } + else if (e.Draggable.DataContext is ApplicationOsVersion) + { + _vm.DropApplicationOsVersion(e.Draggable.DataContext as ApplicationOsVersion); + } + else if (e.Draggable.DataContext is ApplicationFirmwareVersion) + { + _vm.DropApplicationFirmwareVersion(e.Draggable.DataContext as ApplicationFirmwareVersion); + } + } + + private void OnEmbeddedDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is EmbeddedFirmwareVersion) + { + _vm.DropEmbeddedFirmware(e.Draggable.DataContext as EmbeddedFirmwareVersion); + } + } + + private void MachineDrop(object sender, DropEventArgs e) + { + if (e.Draggable.DataContext is HardwareVersion) + { + _vm.DropHardwareVersion(e.Draggable.DataContext as HardwareVersion); + } + } + + private void SetHighlightRegion(FrameworkElement element) + { + if (!_highlightShown) + { + _highlightRect.Width = element.Width; + _highlightRect.Height = element.Height; + Canvas.SetLeft(_highlightRect, Canvas.GetLeft(element)); + Canvas.SetTop(_highlightRect, Canvas.GetTop(element)); + canvas.Children.Add(_highlightRect); + _highlightShown = true; + _highlightAnimation = new DoubleAnimation(); + _highlightAnimation.From = 0; + _highlightAnimation.To = 1; + _highlightAnimation.Duration = TimeSpan.FromSeconds(0.2); + _highlightAnimation.AutoReverse = true; + _highlightAnimation.RepeatBehavior = RepeatBehavior.Forever; + _highlightRect.BeginAnimation(Rectangle.OpacityProperty, _highlightAnimation); + } + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml new file mode 100644 index 000000000..320ce58aa --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml @@ -0,0 +1,44 @@ +<UserControl x:Class="Tango.MachineStudio.MachineDesigner.Views.MachineDetailsView" + 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.MachineStudio.MachineDesigner.Views" + xmlns:global="clr-namespace:Tango.MachineStudio.MachineDesigner" + xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + <Grid Margin="20"> + <DockPanel> + <Grid DockPanel.Dock="Top"> + <StackPanel Orientation="Horizontal"> + <Button Style="{StaticResource MaterialDesignFlatButton}" Height="Auto" Command="{Binding BackToDispensersCommand}"> + <materialDesign:PackIcon Kind="ArrowLeft" Width="50" Height="50" Foreground="#202020" ToolTip="Back to RML list" /> + </Button> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="34"> + <Run>MACHINE</Run> + <Run Text="{Binding ActiveMachine.SerialNumber}"></Run> + </TextBlock> + </StackPanel> + + <Button HorizontalAlignment="Right" Width="170" Height="45" Margin="0 0 20 0" VerticalAlignment="Center" Command="{Binding SaveCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="ContentSaveAll" Width="24" Height="24" /> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">SAVE</TextBlock> + </StackPanel> + </Button> + </Grid> + + <Grid DockPanel.Dock="Bottom"> + + </Grid> + + <Grid Margin="0 20"> + + </Grid> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml.cs new file mode 100644 index 000000000..07d012966 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.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 MachineDetailsView.xaml + /// </summary> + public partial class MachineDetailsView : UserControl + { + public MachineDetailsView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml index 1ea8d2a74..ded14930a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml @@ -133,7 +133,7 @@ <Image.Style> <Style TargetType="Image"> <Style.Triggers> - <DataTrigger Binding="{Binding DispenserType}" Value="{x:Null}"> + <DataTrigger Binding="{Binding Dispenser}" Value="{x:Null}"> <Setter Property="Opacity" Value="0.2"></Setter> </DataTrigger> </Style.Triggers> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml new file mode 100644 index 000000000..48ce34688 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml @@ -0,0 +1,73 @@ +<UserControl x:Class="Tango.MachineStudio.MachineDesigner.Views.MachinesView" + 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.MachineStudio.MachineDesigner.Views" + xmlns:global="clr-namespace:Tango.MachineStudio.MachineDesigner" + xmlns:observables="clr-namespace:Tango.BL.Entities;assembly=Tango.BL" + xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels" + xmlns:shapes="clr-namespace:Tango.SharedUI.Shapes;assembly=Tango.SharedUI" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + mc:Ignorable="d" + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + <UserControl.Resources> + <converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" /> + </UserControl.Resources> + + <Grid> + <DockPanel Margin="100" MaxWidth="1200"> + <Grid DockPanel.Dock="Top"> + <StackPanel Orientation="Horizontal"> + <Image Source="../Images/machine-full-fx.png" Width="350" RenderOptions.BitmapScalingMode="Fant" Margin="10" /> + + <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 0 0 10"> + <materialDesign:PackIcon VerticalAlignment="Center" Kind="BarcodeScan" Width="32" Height="32" /> + <TextBox Width="400" FontSize="20" Margin="10 0 0 0" materialDesign:HintAssist.Hint="Serial Number" Text="{Binding Filter,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox> + </StackPanel> + </StackPanel> + </Grid> + <Grid DockPanel.Dock="Bottom"> + <StackPanel VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left" Margin="0 0 0 0"> + <Button Margin="0 0 10 0" MinWidth="160" Height="50" Background="#FF7575" BorderBrush="#FF7575" Command="{Binding RemoveMachineCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Delete" Width="20" Height="20" /> + <TextBlock Margin="5 0 0 0" FontSize="16">DELETE</TextBlock> + </StackPanel> + </Button> + <Button Margin="0 0 10 0" MinWidth="160" Height="50" Background="#65C682" BorderBrush="#65C682" Command="{Binding AddMachineCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Plus" Width="20" Height="20" /> + <TextBlock Margin="5 0 0 0" FontSize="16">NEW MACHINE</TextBlock> + </StackPanel> + </Button> + </StackPanel> + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> + <Button Margin="50 0 0 0" MinWidth="200" Height="60" Command="{Binding EditMachineCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Kind="Pencil" Width="24" Height="24" /> + <TextBlock Margin="10 0 0 0" FontSize="18">EDIT</TextBlock> + </StackPanel> + </Button> + </StackPanel> + </Grid> + <Grid> + <DataGrid Margin="0 0 0 10" BorderBrush="Silver" IsReadOnly="True" BorderThickness="1" Background="#93FFFFFF" AlternatingRowBackground="#C9F6F6F6" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Machines}" SelectedItem="{Binding SelectedMachine}"> + <DataGrid.CellStyle> + <Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}"> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="VerticalContentAlignment" Value="Center"></Setter> + </Style> + </DataGrid.CellStyle> + <DataGrid.Columns> + <DataGridTextColumn Header="SERIAL NUMBER" Binding="{Binding SerialNumber}" Width="Auto" /> + <DataGridTextColumn Header="NAME" Binding="{Binding Name}" Width="Auto" /> + <DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> + </DataGrid.Columns> + </DataGrid> + </Grid> + </DockPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml.cs new file mode 100644 index 000000000..776a922ca --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.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 MachinesView.xaml + /// </summary> + public partial class MachinesView : UserControl + { + public MachinesView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml index e25a64c5e..0ffcf400a 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml @@ -3,812 +3,17 @@ 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:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views" xmlns:global="clr-namespace:Tango.MachineStudio.MachineDesigner" - xmlns:fa="http://schemas.fontawesome.io/icons/" - xmlns:providers="clr-namespace:Tango.MachineStudio.MachineDesigner.AutoComplete" - xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" - xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" - xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels" - xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" mc:Ignorable="d" - d:DesignHeight="720" d:DesignWidth="1280" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> - - <UserControl.Resources> - <sharedConverters:ColorToIntegerConverter x:Key="ColorToIntegerConverter" /> - - <Style x:Key="draggableGrid" TargetType="Grid"> - <Setter Property="RenderTransform"> - <Setter.Value> - <ScaleTransform ScaleX="1" ScaleY="1"></ScaleTransform> - </Setter.Value> - </Setter> - <Setter Property="RenderTransformOrigin" Value="0.5,0.5"></Setter> - <Setter Property="Background" Value="Transparent"></Setter> - <Setter Property="dragAndDrop:DragAndDropService.Draggable" Value="True"></Setter> - <Setter Property="dragAndDrop:DragAndDropService.Droppable" Value="True"></Setter> - <Setter Property="dragAndDrop:DragAndDropService.DraggingSurface" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"></Setter> - <Style.Triggers> - <Trigger Property="dragAndDrop:DragAndDropService.IsDraggableOver" Value="True"> - <Setter Property="Opacity" Value="0.5"></Setter> - <Trigger.EnterActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation To="0.95" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleX"></DoubleAnimation> - <DoubleAnimation To="0.95" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleY"></DoubleAnimation> - </Storyboard> - </BeginStoryboard> - </Trigger.EnterActions> - <Trigger.ExitActions> - <BeginStoryboard> - <Storyboard> - <DoubleAnimation To="1" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleX"></DoubleAnimation> - <DoubleAnimation To="1" Duration="00:00:0.2" Storyboard.TargetProperty="RenderTransform.ScaleY"></DoubleAnimation> - </Storyboard> - </BeginStoryboard> - </Trigger.ExitActions> - </Trigger> - </Style.Triggers> - </Style> - - <Style TargetType="Expander" BasedOn="{StaticResource {x:Type Expander}}"> - <Setter Property="HeaderTemplate"> - <Setter.Value> - <DataTemplate> - <TextBlock Text="{Binding}" FontSize="13"></TextBlock> - </DataTemplate> - </Setter.Value> - </Setter> - </Style> - </UserControl.Resources> - + d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> <Grid> - <Grid> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="477*"/> - <ColumnDefinition Width="310" x:FieldModifier="public" x:Name="panelColumnDefinition" /> - </Grid.ColumnDefinitions> - - <Grid> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="200"/> - <ColumnDefinition Width="1*"/> - </Grid.ColumnDefinitions> - - <Grid Grid.Column="1"> - <Grid.RowDefinitions> - <RowDefinition Height="90"/> - <RowDefinition Height="631*"/> - </Grid.RowDefinitions> - - <Grid ClipToBounds="False"> - <StackPanel> - <StackPanel Orientation="Horizontal" x:Name="stackHeader" x:FieldModifier="public"> - <TextBlock FontSize="30" FontStyle="Italic" VerticalAlignment="Center" Margin="50 10 10 0" Foreground="Silver" FontWeight="Bold">MACHINE DESIGNER</TextBlock> - <StackPanel Orientation="Horizontal" Margin="20 10 0 0" VerticalAlignment="Center"> - <materialDesign:PackIcon Kind="BarcodeScan" VerticalAlignment="Bottom" Width="24" Height="24" Foreground="Silver"></materialDesign:PackIcon> - <autoComplete:AutoCompleteTextBox FontSize="16" FontWeight="Bold" FontStyle="Italic" Width="300" Margin="5 0 0 0" materialDesign:HintAssist.Hint="Enter serial number" DisplayMember="SerialNumber" Provider="{Binding MachinesProvider}" SelectedItem="{Binding SelectedMachine,Mode=TwoWay}"> - <autoComplete:AutoCompleteTextBox.ItemTemplate> - <DataTemplate> - <TextBlock Text="{Binding SerialNumber}"></TextBlock> - </DataTemplate> - </autoComplete:AutoCompleteTextBox.ItemTemplate> - <autoComplete:AutoCompleteTextBox.LoadingContent> - <TextBlock Text="Loading..." Margin="5" FontSize="14" /> - </autoComplete:AutoCompleteTextBox.LoadingContent> - </autoComplete:AutoCompleteTextBox> - - <Button Style="{StaticResource MaterialDesignFlatButton}" Margin="10 0 0 0" Padding="0" Foreground="Gray" Width="40" Command="{Binding ResetCommand}" ToolTip="Reset the designer"> - <materialDesign:PackIcon Kind="Refresh" Width="24" Height="24" /> - </Button> - </StackPanel> - </StackPanel> - </StackPanel> - <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 50 0"> - - </StackPanel> - </Grid> - - <Viewbox MaxWidth="1200" Grid.Row="1" > - <Grid VerticalAlignment="Top"> - - <Image IsHitTestVisible="False" 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 ClipToBounds="False" x:Name="canvas"> - - <Grid x:Name="hardwareGrid" Style="{StaticResource draggableGrid}" Width="118" Height="27" Canvas.Left="342" Canvas.Top="80" Background="#6B303030" IsHitTestVisible="True" dragAndDrop:DragAndDropService.Drop="MachineDrop"> - <Border BorderBrush="#6C6C6C" BorderThickness="1" IsHitTestVisible="False"> - <StackPanel Orientation="Horizontal"> - <Image Source="../Images/hardware.png" Width="10" VerticalAlignment="Center" Margin="5" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" VerticalAlignment="Center" TextAlignment="Center" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextWrapping="Wrap"> - <Run Text="{Binding Configuration.HardwareVersion.Name}"></Run> - <Run Text="{Binding Configuration.HardwareVersion.Version}"></Run> - </TextBlock> - </StackPanel> - </Border> - </Grid> - - <TextBlock Canvas.Left="532" FontStyle="Italic" Foreground="Gray" Canvas.Top="-22">Hardware Version</TextBlock> - <Grid Width="97" Height="90" Canvas.Left="431" Canvas.Top="-13"> - <Rectangle Stroke="Gray" VerticalAlignment="Top" 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="222" Canvas.Left="446" FontStyle="Italic" Foreground="Gray">Add IDS</TextBlock> - <Grid Width="23" Height="20" Canvas.Top="231" Canvas.Left="414"> - <Rectangle Stroke="Gray" VerticalAlignment="Top" 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="255" Canvas.Left="500" FontStyle="Italic" Foreground="Gray">Remove IDS</TextBlock> - <Grid Width="35" Height="8" Canvas.Top="264" Canvas.Left="460"> - <Rectangle Stroke="Gray" VerticalAlignment="Top" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> - </Grid> - - <Button Command="{Binding AddIdsCommand}" Style="{StaticResource MaterialDesignFlatButton}" Height="24" Width="24" Padding="0" Canvas.Left="402" Canvas.Top="253"> - <materialDesign:PackIcon Kind="Plus" Width="24" Height="24"></materialDesign:PackIcon> - </Button> - - <Button Command="{Binding RemoveIdsCommand}" Style="{StaticResource MaterialDesignFlatButton}" Height="24" Width="24" Padding="0" Canvas.Left="430" Canvas.Top="252"> - <materialDesign:PackIcon Kind="Minus" Width="24" Height="24"></materialDesign:PackIcon> - </Button> - - <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" Rows="1" Columns="8" TextElement.FontSize="9"> - <TextBlock HorizontalAlignment="Center">1</TextBlock> - <TextBlock HorizontalAlignment="Center">2</TextBlock> - <TextBlock HorizontalAlignment="Center">3</TextBlock> - <TextBlock HorizontalAlignment="Center">4</TextBlock> - <TextBlock HorizontalAlignment="Center">5</TextBlock> - <TextBlock HorizontalAlignment="Center">6</TextBlock> - <TextBlock HorizontalAlignment="Center">7</TextBlock> - <TextBlock HorizontalAlignment="Center">8</TextBlock> - </UniformGrid> - <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> - <ListBox ItemsSource="{Binding Configuration.IdsPacks}" SelectedItem="{Binding SelectedIds}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="Padding" Value="0"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <UniformGrid Columns="8"></UniformGrid> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <Grid dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Drop="OnDropOnIdsPack"> - <Grid.RowDefinitions> - <RowDefinition Height="1*"/> - <RowDefinition Height="30"/> - </Grid.RowDefinitions> - <Grid.Style> - <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> - <Style.Triggers> - - </Style.Triggers> - </Style> - </Grid.Style> - <UniformGrid Columns="1" Rows="2"> - <Grid Margin="2"> - <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> - <Image.Style> - <Style TargetType="Image"> - <Style.Triggers> - <DataTrigger Binding="{Binding DispenserType}" Value="{x:Null}"> - <Setter Property="Opacity" Value="0.2"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Image.Style> - </Image> - <Rectangle IsHitTestVisible="False" 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="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Rectangle.Fill> - </Rectangle> - </Grid> - - <Grid Margin="2"> - <Image IsHitTestVisible="False" Stretch="Fill" Source="../Images/mid-tank.png" RenderOptions.BitmapScalingMode="Fant"> - <Image.Style> - <Style TargetType="Image"> - <Style.Triggers> - <DataTrigger Binding="{Binding MidTankType}" Value="{x:Null}"> - <Setter Property="Opacity" Value="0.2"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Image.Style> - </Image> - <Rectangle IsHitTestVisible="False" 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="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Rectangle.Fill> - </Rectangle> - - <TextBlock Text="{Binding IdsPackFormula.Name}" TextWrapping="Wrap" Height="30" IsHitTestVisible="False" Width="50" Margin="-20 15 0 0" FontSize="7" TextAlignment="Center" RenderTransformOrigin="0.5,0.5" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"> - <TextBlock.LayoutTransform> - <RotateTransform Angle="90" /> - </TextBlock.LayoutTransform> - </TextBlock> - </Grid> - </UniformGrid> - - <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> - <Grid.Style> - <Style TargetType="Grid"> - <Style.Triggers> - <DataTrigger Binding="{Binding CartridgeType}" Value="{x:Null}"> - <Setter Property="Opacity" Value="0.2"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Grid.Style> - <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> - <Border.Background> - <LinearGradientBrush> - <GradientStop Color="#FF252525"/> - <GradientStop Color="#FF838383" Offset="1"/> - </LinearGradientBrush> - </Border.Background> - </Border> - <Border BorderBrush="#252525" BorderThickness="1" CornerRadius="3"> - <Border.Background> - <LinearGradientBrush Opacity="0.7"> - <GradientStop Offset="0" Color="Transparent" /> - <GradientStop Offset="1" Color="{Binding LiquidType.Color,Converter={StaticResource ColorToIntegerConverter}}"/> - </LinearGradientBrush> - </Border.Background> - </Border> - </Grid> - </Grid> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ListBox> - - <Grid Margin="0 50 0 0"> - <Grid.Style> - <Style TargetType="Grid"> - <Setter Property="Visibility" Value="Hidden"></Setter> - <Style.Triggers> - <DataTrigger Binding="{Binding Configuration.IdsPacks.Count}" Value="0"> - <Setter Property="Visibility" Value="Visible"></Setter> - </DataTrigger> - </Style.Triggers> - </Style> - </Grid.Style> - <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="Gainsboro">NO IDS PACKS</TextBlock> - </Grid> - - <Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="1"> - <Rectangle.Effect> - <DropShadowEffect ShadowDepth="1" Opacity="1" Color="Black" /> - </Rectangle.Effect> - </Rectangle> - </Grid> - - <Grid x:Name="gridEmbedded" Style="{StaticResource draggableGrid}" Width="70" Height="100" Canvas.Left="80" Canvas.Top="331" IsHitTestVisible="True" SnapsToDevicePixels="True" dragAndDrop:DragAndDropService.Drop="OnEmbeddedDrop"> - <Image Source="../Images/ti-tm4c129x.png" RenderOptions.BitmapScalingMode="Fant"></Image> - </Grid> - - <Grid Width="61" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="42" Canvas.Left="85" Canvas.Top="385"> - <StackPanel Orientation="Horizontal"> - <Image Source="../Images/embedded.png" Width="10" VerticalAlignment="Center" Margin="1" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock VerticalAlignment="Center" Padding="1" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="5" TextAlignment="Center" TextWrapping="Wrap" Height="15" Margin="0,6,0,0" Width="47"><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Name}"/><Run Text=" "/><Run Text="{Binding Configuration.EmbeddedFirmwareVersion.Version}"/></TextBlock> - </StackPanel> - </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="395" Canvas.Left="331" FontStyle="Italic" Foreground="Gray">Mid Tanks</TextBlock> - <Grid Width="62" Height="29" Canvas.Top="418" Canvas.Left="357"> - <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="469" Canvas.Left="304" FontStyle="Italic" Foreground="Gray">Cartridges</TextBlock> - <Grid Width="87" Height="10" Canvas.Top="487" Canvas.Left="332"> - <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> - - <Grid x:Name="gridTablet" Width="67" IsHitTestVisible="True" SnapsToDevicePixels="True" ClipToBounds="True" Height="90" Canvas.Left="188" Canvas.Top="198" dragAndDrop:DragAndDropService.Drop="OnTabletDrop" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.DraggableBackground="#151515"> - <Grid.Style> - <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}"> - <Setter Property="Background" Value="#2B2B2B"></Setter> - <Style.Triggers> - <Trigger Property="dragAndDrop:DragAndDropService.IsDraggableOver" Value="True"> - <Setter Property="Background" Value="Black"></Setter> - </Trigger> - </Style.Triggers> - </Style> - </Grid.Style> - <Grid.RowDefinitions> - <RowDefinition Height="1*" /> - <RowDefinition Height="1*" /> - <RowDefinition Height="1*" /> - </Grid.RowDefinitions> - - <StackPanel> - <Image Source="../Images/tablet.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" Foreground="Gainsboro" IsHitTestVisible="False" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> - <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Name}"></Run> - <Run Text="{Binding Configuration.ApplicationDisplayPanelVersion.Version}"></Run> - </TextBlock> - </StackPanel> - - - <StackPanel Grid.Row="1" > - <Image Source="../Images/application-firmware.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> - <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Name}"></Run> - <Run Text="{Binding Configuration.ApplicationFirmwareVersion.Version}"></Run> - </TextBlock> - </StackPanel> - - <StackPanel Grid.Row="2" > - <Image Source="../Images/android.png" Width="10" Margin="2" RenderOptions.BitmapScalingMode="Fant"></Image> - <TextBlock Padding="2 0 2 0" IsHitTestVisible="False" Foreground="Gainsboro" FontSize="6" TextAlignment="Center" TextWrapping="Wrap"> - <Run Text="{Binding Configuration.ApplicationOsVersion.Name}"></Run> - <Run Text="{Binding Configuration.ApplicationOsVersion.Version}"></Run> - </TextBlock> - </StackPanel> - </Grid> - </Canvas> - </Grid> - </Viewbox> - </Grid> - - - <Grid> - <TextBlock Margin="10" FontStyle="Italic" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Gray" FontSize="16">IDS PACKS</TextBlock> - <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> - <ItemsControl ItemsSource="{Binding Configuration.IdsPacks}" FontSize="10" Foreground="DimGray" Margin="10 30 10 10"> - <ItemsControl.ItemTemplate> - <DataTemplate> - <StackPanel> - <TextBox materialDesign:HintAssist.Hint="IDS Pack Name..." Text="{Binding Name,UpdateSourceTrigger=PropertyChanged}" FontWeight="Bold" FontSize="12" Margin="5"></TextBox> - <StackPanel Margin="20 0 0 0"> - <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/injection.png" Width="12" VerticalAlignment="Center"></Image> - <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Dispenser:</Run> <Run FontStyle="Italic" Text="{Binding DispenserType.Name}"></Run></TextBlock> - </StackPanel> - <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/tank.png" Width="12" VerticalAlignment="Center"></Image> - <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Mid Tank:</Run> <Run FontStyle="Italic" Text="{Binding MidTankType.Name}"></Run></TextBlock> - </StackPanel> - <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/cartridge.png" Width="12" VerticalAlignment="Center"></Image> - <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Cartridge:</Run> <Run FontStyle="Italic" Text="{Binding CartridgeType.Name}"></Run></TextBlock> - </StackPanel> - <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/liquid.png" Width="12" VerticalAlignment="Center"></Image> - <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Liquid:</Run> <Run FontStyle="Italic" Text="{Binding LiquidType.Name}"></Run></TextBlock> - </StackPanel> - <StackPanel Orientation="Horizontal" Margin="0 3 0 3"> - <Image RenderOptions.BitmapScalingMode="Fant" Source="../Images/formula.png" Width="12" VerticalAlignment="Center"></Image> - <TextBlock Margin="5 0 0 0" VerticalAlignment="Center"><Run FontWeight="Bold">Formula:</Run> <Run FontStyle="Italic" Text="{Binding IdsPackFormula.Name}"></Run></TextBlock> - </StackPanel> - </StackPanel> - </StackPanel> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> - </ScrollViewer> - - <Rectangle HorizontalAlignment="Right" Margin="0 20 0 20" Stroke="Gainsboro" StrokeThickness="1" StrokeDashArray="5 5 5 5"></Rectangle> - </Grid> - </Grid> - - <Grid Grid.Column="1" IsEnabled="{Binding CanWork}"> - <Grid.RowDefinitions> - <RowDefinition/> - <RowDefinition Height="60"/> - </Grid.RowDefinitions> - <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> - <Grid> - <StackPanel> - <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}" Padding="20 10"> - <StackPanel> - <TextBlock Text="MACHINE CONFIGURATION" Foreground="Gray" FontWeight="Bold" FontStyle="Italic" FontSize="16"></TextBlock> - - <TextBlock Margin="0 10 0 0" FontSize="10" Foreground="Gray">Serial Number</TextBlock> - <TextBox Text="{Binding Machine.SerialNumber,UpdateSourceTrigger=PropertyChanged}"></TextBox> - - <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Machine Name</TextBlock> - <TextBox Text="{Binding Machine.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox> - - <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Machine Version</TextBlock> - <Grid> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="1*"></ColumnDefinition> - <ColumnDefinition Width="80"></ColumnDefinition> - </Grid.ColumnDefinitions> - <ComboBox ItemsSource="{Binding Adapter.MachineVersions}" SelectedItem="{Binding Machine.MachineVersion}" DisplayMemberPath="Name"></ComboBox> - <Button Grid.Column="1" Command="{Binding SetVersionConfigurationCommand}" Height="25" Margin="10 2 2 2" ToolTip="Sets the current configuration to the selected machine version default configuration">SET</Button> - </Grid> - - <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Organization</TextBlock> - <ComboBox ItemsSource="{Binding Adapter.Organizations}" SelectedItem="{Binding Machine.Organization}" DisplayMemberPath="Name"></ComboBox> - - <UniformGrid Columns="2" Margin="0 15 0 0"> - <TextBlock FontSize="10" Foreground="Gray" VerticalAlignment="Center">Enable Synchronization</TextBlock> - <ToggleButton HorizontalAlignment="Right" IsChecked="{Binding Machine.Synched}"></ToggleButton> - </UniformGrid> - - <TextBlock Margin="0 15 0 0" FontSize="10" Foreground="Gray">Configuration Name</TextBlock> - <TextBox Text="{Binding Configuration.Name,UpdateSourceTrigger=PropertyChanged}"></TextBox> - </StackPanel> - </materialDesign:Card> - - <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> - <StackPanel> - <Expander HorizontalAlignment="Stretch" Header="Configuration History"> - <ListBox ItemsSource="{Binding History}" HorizontalContentAlignment="Stretch" SelectedItem="{Binding SelectedHistoryConfiguration}"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <materialDesign:PackIcon Kind="Clock" Width="24" Height="24" VerticalAlignment="Center"></materialDesign:PackIcon> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray" Margin="0 2 0 0"><Run Text="{Binding CreationDate}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - </StackPanel> - </materialDesign:Card> - - <materialDesign:Card Margin="5,10,5,0" Padding="10" Background="{DynamicResource MaterialDesignBackground}"> - <DockPanel> - <materialDesign:PackIcon Kind="Magnify" Width="28" Height="28"></materialDesign:PackIcon> - <TextBox Margin="5 0 0 0" materialDesign:HintAssist.Hint="Search Component..." Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged}"></TextBox> - </DockPanel> - </materialDesign:Card> - <materialDesign:Card Margin="5,10,5,0" Background="{DynamicResource MaterialDesignBackground}"> - <StackPanel> - <Expander HorizontalAlignment="Stretch" Header="Dispensers"> - <ListBox ItemsSource="{Binding Adapter.DispenserTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/injection.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Mid Tanks"> - <ListBox ItemsSource="{Binding Adapter.MidTankTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tank.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Cartridges"> - <ListBox ItemsSource="{Binding Adapter.CartridgeTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/cartridge.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Liquids"> - <ListBox ItemsSource="{Binding Adapter.LiquidTypesViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/liquid.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - <Rectangle Height="5" Width="170"> - <Rectangle.Fill> - <SolidColorBrush Color="{Binding Color,Converter={StaticResource ColorToIntegerConverter}}"></SolidColorBrush> - </Rectangle.Fill> - </Rectangle> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="IDS Pack Formulas"> - <ListBox ItemsSource="{Binding Adapter.IdsPackFormulasViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/formula.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Touch Panels"> - <ListBox ItemsSource="{Binding Adapter.ApplicationDisplayPanelVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/tablet.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Operation Systems"> - <ListBox ItemsSource="{Binding Adapter.ApplicationOsVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/android.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Application Firmwares"> - <ListBox ItemsSource="{Binding Adapter.ApplicationFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/application-firmware.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Embedded Firmwares"> - <ListBox ItemsSource="{Binding Adapter.EmbeddedFirmwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/embedded.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - <Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" /> - <Expander HorizontalAlignment="Stretch" Header="Hardware Versions"> - <ListBox ItemsSource="{Binding Adapter.HardwareVersionsViewSource}" HorizontalContentAlignment="Stretch"> - <ListBox.ItemContainerStyle> - <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> - <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> - <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter> - <Setter Property="Padding" Value="1"></Setter> - </Style> - </ListBox.ItemContainerStyle> - <ListBox.ItemTemplate> - <DataTemplate> - <Grid Background="Transparent" IsHitTestVisible="True" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Draggable="True" dragAndDrop:DragAndDropService.DraggingSurface="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DraggingSurface}"> - <StackPanel Orientation="Horizontal" Margin="2 8"> - <Image IsHitTestVisible="False" Width="24" Height="24" Source="../Images/hardware.png" Stretch="Fill" RenderOptions.BitmapScalingMode="Fant"></Image> - <StackPanel Margin="5 0 0 0" IsHitTestVisible="False"> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run Text="{Binding Name}"></Run></TextBlock> - <TextBlock IsHitTestVisible="False" FontSize="10" Foreground="DimGray"><Run>v</Run><Run Text="{Binding Version}"></Run></TextBlock> - </StackPanel> - </StackPanel> - - <Rectangle Margin="0 10 0 0" VerticalAlignment="Bottom" Stroke="Gainsboro" StrokeThickness="1"></Rectangle> - </Grid> - </DataTemplate> - </ListBox.ItemTemplate> - </ListBox> - </Expander> - </StackPanel> - </materialDesign:Card> - </StackPanel> - </Grid> - </ScrollViewer> - - <Grid Grid.Row="1" Margin="10"> - <Grid> - <Grid.ColumnDefinitions> - <ColumnDefinition Width="61*"/> - <ColumnDefinition Width="84*"/> - </Grid.ColumnDefinitions> - <Button Height="Auto" Command="{Binding SaveCommand}" Margin="0 0 5 0"> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Width="20" Height="20" VerticalAlignment="Center" Kind="ContentSaveSettings"></materialDesign:PackIcon> - <TextBlock FontSize="14" Margin="10 0 0 0" VerticalAlignment="Center">SAVE</TextBlock> - </StackPanel> - </Button> - <Button ToolTip="Set this configuration as a default machine configuration" Height="Auto" Background="#FF5C5C" BorderBrush="#FF5C5C" Command="{Binding SetAsDefaultCommand}" Margin="0 0 15 0" Grid.Column="1"> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Width="20" Height="20" VerticalAlignment="Center" Kind="Verified"></materialDesign:PackIcon> - <TextBlock FontSize="14" Margin="10 0 0 0" VerticalAlignment="Center">SET DEFAULT</TextBlock> - </StackPanel> - </Button> - </Grid> - </Grid> - </Grid> - </Grid> - - <dragAndDrop:DraggingSurface x:Name="dragSufrace" /> + <controls:NavigationControl x:Name="navigationControl" TransitionType="Slide"> + <local:MachinesView /> + <local:MachineDetailsView/> + <local:ConfigurationView/> + </controls:NavigationControl> </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 index 9c7496484..7e1b60a28 100644 --- 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 @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; @@ -10,163 +9,28 @@ using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; -using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; -using Tango.BL.Entities; -using Tango.DragAndDrop; -using Tango.MachineStudio.MachineDesigner.ViewModels; +using Tango.Core.DI; +using Tango.MachineStudio.MachineDesigner.Contracts; namespace Tango.MachineStudio.MachineDesigner.Views { /// <summary> /// Interaction logic for MainView.xaml /// </summary> - public partial class MainView : UserControl + public partial class MainView : UserControl , IMainView { - private MainViewVM _vm; - private Rectangle _highlightRect; - private bool _highlightShown; - private DoubleAnimation _highlightAnimation; - - public ColumnDefinition PanelColumnDefinition { get; set; } - public MainView() { InitializeComponent(); - - PanelColumnDefinition = panelColumnDefinition; - - DraggingSurface = dragSufrace; - this.Loaded += (x, y) => - { - _vm = DataContext as MainViewVM; - }; - - DragAndDropService.DragStarted += DragAndDropService_DragStarted; - DragAndDropService.DragEnded += DragAndDropService_DragEnded; - - _highlightRect = new Rectangle(); - _highlightRect.IsHitTestVisible = false; - _highlightRect.Stroke = Application.Current.Resources["AccentColorBrush"] as Brush; - _highlightRect.StrokeThickness = 2; - _highlightRect.StrokeDashArray = new DoubleCollection(new double[] { 3, 3, 3, 3 }); - } - - private void DragAndDropService_DragEnded(object sender, FrameworkElement e) - { - canvas.Children.Remove(_highlightRect); - _highlightShown = false; - _highlightRect.BeginAnimation(Rectangle.OpacityProperty, null); - } - - private void DragAndDropService_DragStarted(object sender, FrameworkElement e) - { - if (e.DataContext is HardwareVersion) - { - SetHighlightRegion(hardwareGrid); - } - else if (e.DataContext is ApplicationOsVersion || e.DataContext is ApplicationDisplayPanelVersion || e.DataContext is ApplicationFirmwareVersion) - { - SetHighlightRegion(gridTablet); - } - else if (e.DataContext is EmbeddedFirmwareVersion) - { - SetHighlightRegion(gridEmbedded); - } - else if (e.DataContext is DispenserType || e.DataContext is CartridgeType || e.DataContext is LiquidType || e.DataContext is MidTankType || e.DataContext is IdsPackFormula) - { - SetHighlightRegion(gridIds); - } - } - - public DraggingSurface DraggingSurface - { - get { return (DraggingSurface)GetValue(DraggingSurfaceProperty); } - set { SetValue(DraggingSurfaceProperty, value); } - } - public static readonly DependencyProperty DraggingSurfaceProperty = - DependencyProperty.Register("DraggingSurface", typeof(DraggingSurface), typeof(MainView), new PropertyMetadata(null)); - - private void OnDropOnIdsPack(object sender, DropEventArgs e) - { - if (e.Draggable.DataContext is DispenserType) - { - _vm.DropDispenserType(e.Draggable.DataContext as DispenserType, e.Droppable.DataContext as IdsPack); - } - else if (e.Draggable.DataContext is LiquidType) - { - _vm.DropLiquidType(e.Draggable.DataContext as LiquidType, e.Droppable.DataContext as IdsPack); - } - else if (e.Draggable.DataContext is CartridgeType) - { - _vm.DropCartridgeType(e.Draggable.DataContext as CartridgeType, e.Droppable.DataContext as IdsPack); - } - else if (e.Draggable.DataContext is MidTankType) - { - _vm.DropMidTankType(e.Draggable.DataContext as MidTankType, e.Droppable.DataContext as IdsPack); - } - else if (e.Draggable.DataContext is IdsPackFormula) - { - _vm.DropIdsFormula(e.Draggable.DataContext as IdsPackFormula, e.Droppable.DataContext as IdsPack); - } - else if (e.Draggable.DataContext is IdsPack) - { - _vm.DropIdsPack(e.Draggable.DataContext as IdsPack, e.Droppable.DataContext as IdsPack); - } - } - - private void OnTabletDrop(object sender, DropEventArgs e) - { - if (e.Draggable.DataContext is ApplicationDisplayPanelVersion) - { - _vm.DropTouchPanel(e.Draggable.DataContext as ApplicationDisplayPanelVersion); - } - else if (e.Draggable.DataContext is ApplicationOsVersion) - { - _vm.DropApplicationOsVersion(e.Draggable.DataContext as ApplicationOsVersion); - } - else if (e.Draggable.DataContext is ApplicationFirmwareVersion) - { - _vm.DropApplicationFirmwareVersion(e.Draggable.DataContext as ApplicationFirmwareVersion); - } - } - - private void OnEmbeddedDrop(object sender, DropEventArgs e) - { - if (e.Draggable.DataContext is EmbeddedFirmwareVersion) - { - _vm.DropEmbeddedFirmware(e.Draggable.DataContext as EmbeddedFirmwareVersion); - } - } - - private void MachineDrop(object sender, DropEventArgs e) - { - if (e.Draggable.DataContext is HardwareVersion) - { - _vm.DropHardwareVersion(e.Draggable.DataContext as HardwareVersion); - } + TangoIOC.Default.Register<IMainView>(this); } - private void SetHighlightRegion(FrameworkElement element) + public void NavigateTo(MachineDesignerNavigationView view) { - if (!_highlightShown) - { - _highlightRect.Width = element.Width; - _highlightRect.Height = element.Height; - Canvas.SetLeft(_highlightRect, Canvas.GetLeft(element)); - Canvas.SetTop(_highlightRect, Canvas.GetTop(element)); - canvas.Children.Add(_highlightRect); - _highlightShown = true; - _highlightAnimation = new DoubleAnimation(); - _highlightAnimation.From = 0; - _highlightAnimation.To = 1; - _highlightAnimation.Duration = TimeSpan.FromSeconds(0.2); - _highlightAnimation.AutoReverse = true; - _highlightAnimation.RepeatBehavior = RepeatBehavior.Forever; - _highlightRect.BeginAnimation(Rectangle.OpacityProperty, _highlightAnimation); - } + navigationControl.NavigateTo(view.ToString()); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index cbaeb9d2e..5674d00fc 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -118,7 +118,7 @@ namespace Tango.MachineStudio.Common LoggingCategories = new List<LogCategory>(); DefaultIssueReportTags = new List<string>(); StudioModulesBounds = new List<StudioModuleBounds>(); - Environment = WorkingEnvironment.Remote; + Environment = WorkingEnvironment.Local; DeploymentSlot = DeploymentSlots.Development; } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs index edce9d3c1..2192483c9 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs @@ -226,30 +226,7 @@ namespace Tango.MachineStudio.UI.TFS sysModel.Machine = machine; sysModel.EmbeddedVersion = app.ConnectedMachine.DeviceInformation.Version; - MachineDesigner.Views.MainView machineView = new MachineDesigner.Views.MainView(); - machineView.Width = 1280; - machineView.Height = 1100; - machineView.PanelColumnDefinition.Width = new GridLength(0); - machineView.stackHeader.Visibility = Visibility.Collapsed; - machineView.Background = System.Windows.Media.Brushes.White; - - - var machineDesignerVM = new MachineDesigner.ViewModels.MainViewVM(); - machineDesignerVM.SetSelectedMachine(machine); - machineDesignerVM.Configuration = machine.Configuration; - machineView.DataContext = machineDesignerVM; - - var configImageFile = _tempFolder.CreateImaginaryFile(); - machineView.RenderToFile(configImageFile.Path, System.Drawing.Imaging.ImageFormat.Jpeg, new Size(machineView.Width, machineView.Height), 100); - - item.Attachments.Add(new Attachment() - { - Description = "Machine Configuration", - FilePath = configImageFile.Path, - Name = "Machine Configuration.jpg" - }); - - sysModel.ConfigurationString = machine.Configuration.Clone().ToJsonString(nameof(Configuration.MachinesConfigurations), nameof(Configuration.MachineVersions)); + sysModel.ConfigurationString = machine.Configuration.Clone().ToJsonString(nameof(Configuration.MachineVersions)); if (app.ConnectedMachine.CurrentProcessParameters != null) { 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 d3c22341d..d162f3dd6 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 @@ -423,6 +423,10 @@ <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project> <Name>Tango.Transport</Name> </ProjectReference> + <ProjectReference Include="..\Modules\MachineStudio.Dispensers\Tango.MachineStudio.Dispensers.csproj"> + <Project>{f69da3a8-f823-461e-87cf-a9275abc0b15}</Project> + <Name>Tango.MachineStudio.Dispensers</Name> + </ProjectReference> <ProjectReference Include="..\Modules\Tango.MachineStudio.ColorLab\Tango.MachineStudio.ColorLab.csproj"> <Project>{4d183aca-552b-4135-ae81-7c5a8e5fc3b1}</Project> <Name>Tango.MachineStudio.ColorLab</Name> @@ -610,7 +614,7 @@ copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(Ta </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_UpdateFileVersion="True" BuildVersion_DetectChanges="True" BuildVersion_UseGlobalSettings="False" /> + <UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.BL/Builders/ConfigurationBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/ConfigurationBuilder.cs index f0d59320e..5b15f13cc 100644 --- a/Software/Visual_Studio/Tango.BL/Builders/ConfigurationBuilder.cs +++ b/Software/Visual_Studio/Tango.BL/Builders/ConfigurationBuilder.cs @@ -26,9 +26,10 @@ namespace Tango.BL.Builders { Context.IdsPacks.Where(x => x.ConfigurationGuid == Entity.Guid) .Include(x => x.LiquidType) - .Include(x => x.DispenserType) + .Include(x => x.MidTankType) .Include(x => x.CartridgeType) - .Include(x => x.DispenserType) + .Include(x => x.Dispenser) + .Include(x => x.Dispenser.DispenserType) .Include(x => x.IdsPackFormula).OrderBy(x => x.PackIndex).ToList(); }); } diff --git a/Software/Visual_Studio/Tango.BL/Entities/Configuration.cs b/Software/Visual_Studio/Tango.BL/Entities/Configuration.cs index 5098c267a..e124bba4f 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Configuration.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Configuration.cs @@ -45,8 +45,6 @@ namespace Tango.BL.Entities public event EventHandler<SynchronizedObservableCollection<Machine>> MachinesChanged; - public event EventHandler<SynchronizedObservableCollection<MachinesConfiguration>> MachinesConfigurationsChanged; - protected String _name; /// <summary> @@ -436,31 +434,6 @@ namespace Tango.BL.Entities } } - protected SynchronizedObservableCollection<MachinesConfiguration> _machinesconfigurations; - - /// <summary> - /// Gets or sets the configuration machines configurations. - /// </summary> - - public virtual SynchronizedObservableCollection<MachinesConfiguration> MachinesConfigurations - { - get - { - return _machinesconfigurations; - } - - set - { - if (_machinesconfigurations != value) - { - _machinesconfigurations = value; - - OnMachinesConfigurationsChanged(value); - - } - } - } - /// <summary> /// Called when the Name has changed. /// </summary> @@ -552,15 +525,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the MachinesConfigurations has changed. - /// </summary> - protected virtual void OnMachinesConfigurationsChanged(SynchronizedObservableCollection<MachinesConfiguration> machinesconfigurations) - { - MachinesConfigurationsChanged?.Invoke(this, machinesconfigurations); - RaisePropertyChanged(nameof(MachinesConfigurations)); - } - - /// <summary> /// Initializes a new instance of the <see cref="Configuration" /> class. /// </summary> public Configuration() : base() @@ -572,8 +536,6 @@ namespace Tango.BL.Entities Machines = new SynchronizedObservableCollection<Machine>(); - MachinesConfigurations = new SynchronizedObservableCollection<MachinesConfiguration>(); - } } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/Dispenser.cs b/Software/Visual_Studio/Tango.BL/Entities/Dispenser.cs index 9a6da3adf..e45b064df 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Dispenser.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Dispenser.cs @@ -33,6 +33,8 @@ namespace Tango.BL.Entities public event EventHandler<DispenserType> DispenserTypeChanged; + public event EventHandler<SynchronizedObservableCollection<IdsPack>> IdsPacksChanged; + protected String _serialnumber; /// <summary> @@ -166,6 +168,31 @@ namespace Tango.BL.Entities } } + protected SynchronizedObservableCollection<IdsPack> _idspacks; + + /// <summary> + /// Gets or sets the dispenser ids packs. + /// </summary> + + public virtual SynchronizedObservableCollection<IdsPack> IdsPacks + { + get + { + return _idspacks; + } + + set + { + if (_idspacks != value) + { + _idspacks = value; + + OnIdsPacksChanged(value); + + } + } + } + /// <summary> /// Called when the SerialNumber has changed. /// </summary> @@ -203,10 +230,22 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the IdsPacks has changed. + /// </summary> + protected virtual void OnIdsPacksChanged(SynchronizedObservableCollection<IdsPack> idspacks) + { + IdsPacksChanged?.Invoke(this, idspacks); + RaisePropertyChanged(nameof(IdsPacks)); + } + + /// <summary> /// Initializes a new instance of the <see cref="Dispenser" /> class. /// </summary> public Dispenser() : base() { + + IdsPacks = new SynchronizedObservableCollection<IdsPack>(); + } } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/DispenserType.cs b/Software/Visual_Studio/Tango.BL/Entities/DispenserType.cs index fe97ceb50..a1351d0d1 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/DispenserType.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/DispenserType.cs @@ -29,14 +29,10 @@ namespace Tango.BL.Entities public event EventHandler<String> NameChanged; - public event EventHandler<Double> NlPerPulseChanged; - public event EventHandler<Double> CapacityChanged; public event EventHandler<SynchronizedObservableCollection<Dispenser>> DispensersChanged; - public event EventHandler<SynchronizedObservableCollection<IdsPack>> IdsPacksChanged; - protected Int32 _code; /// <summary> @@ -91,33 +87,6 @@ namespace Tango.BL.Entities } } - protected Double _nlperpulse; - - /// <summary> - /// Gets or sets the dispensertype nl per pulse. - /// </summary> - - [Column("NL_PER_PULSE")] - - public Double NlPerPulse - { - get - { - return _nlperpulse; - } - - set - { - if (_nlperpulse != value) - { - _nlperpulse = value; - - OnNlPerPulseChanged(value); - - } - } - } - protected Double _capacity; /// <summary> @@ -170,31 +139,6 @@ namespace Tango.BL.Entities } } - protected SynchronizedObservableCollection<IdsPack> _idspacks; - - /// <summary> - /// Gets or sets the dispensertype ids packs. - /// </summary> - - public virtual SynchronizedObservableCollection<IdsPack> IdsPacks - { - get - { - return _idspacks; - } - - set - { - if (_idspacks != value) - { - _idspacks = value; - - OnIdsPacksChanged(value); - - } - } - } - /// <summary> /// Called when the Code has changed. /// </summary> @@ -214,15 +158,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the NlPerPulse has changed. - /// </summary> - protected virtual void OnNlPerPulseChanged(Double nlperpulse) - { - NlPerPulseChanged?.Invoke(this, nlperpulse); - RaisePropertyChanged(nameof(NlPerPulse)); - } - - /// <summary> /// Called when the Capacity has changed. /// </summary> protected virtual void OnCapacityChanged(Double capacity) @@ -241,15 +176,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the IdsPacks has changed. - /// </summary> - protected virtual void OnIdsPacksChanged(SynchronizedObservableCollection<IdsPack> idspacks) - { - IdsPacksChanged?.Invoke(this, idspacks); - RaisePropertyChanged(nameof(IdsPacks)); - } - - /// <summary> /// Initializes a new instance of the <see cref="DispenserType" /> class. /// </summary> public DispenserType() : base() @@ -257,8 +183,6 @@ namespace Tango.BL.Entities Dispensers = new SynchronizedObservableCollection<Dispenser>(); - IdsPacks = new SynchronizedObservableCollection<IdsPack>(); - } } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/IdsPack.cs b/Software/Visual_Studio/Tango.BL/Entities/IdsPack.cs index e6461e473..f4a5bb213 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/IdsPack.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/IdsPack.cs @@ -25,8 +25,6 @@ namespace Tango.BL.Entities public partial class IdsPack : ObservableEntity<IdsPack> { - public event EventHandler<String> NameChanged; - public event EventHandler<Int32> PackIndexChanged; public event EventHandler<Boolean> IsEmptyChanged; @@ -35,7 +33,7 @@ namespace Tango.BL.Entities public event EventHandler<Configuration> ConfigurationChanged; - public event EventHandler<DispenserType> DispenserTypeChanged; + public event EventHandler<Dispenser> DispenserChanged; public event EventHandler<IdsPackFormula> IdsPackFormulaChanged; @@ -68,27 +66,27 @@ namespace Tango.BL.Entities } } - protected String _dispensertypeguid; + protected String _dispenserguid; /// <summary> - /// Gets or sets the idspack dispenser type guid. + /// Gets or sets the idspack dispenser guid. /// </summary> - [Column("DISPENSER_TYPE_GUID")] - [ForeignKey("DispenserType")] + [Column("DISPENSER_GUID")] + [ForeignKey("Dispenser")] - public String DispenserTypeGuid + public String DispenserGuid { get { - return _dispensertypeguid; + return _dispenserguid; } set { - if (_dispensertypeguid != value) + if (_dispenserguid != value) { - _dispensertypeguid = value; + _dispenserguid = value; } } } @@ -193,33 +191,6 @@ namespace Tango.BL.Entities } } - protected String _name; - - /// <summary> - /// Gets or sets the idspack name. - /// </summary> - - [Column("NAME")] - - public String Name - { - get - { - return _name; - } - - set - { - if (_name != value) - { - _name = value; - - OnNameChanged(value); - - } - } - } - protected Int32 _packindex; /// <summary> @@ -328,28 +299,28 @@ namespace Tango.BL.Entities } } - protected DispenserType _dispensertype; + protected Dispenser _dispenser; /// <summary> - /// Gets or sets the idspack dispenser types. + /// Gets or sets the idspack dispenser. /// </summary> [XmlIgnore] [JsonIgnore] - public virtual DispenserType DispenserType + public virtual Dispenser Dispenser { get { - return _dispensertype; + return _dispenser; } set { - if (_dispensertype != value) + if (_dispenser != value) { - _dispensertype = value; + _dispenser = value; - OnDispenserTypeChanged(value); + OnDispenserChanged(value); } } @@ -437,15 +408,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the Name has changed. - /// </summary> - protected virtual void OnNameChanged(String name) - { - NameChanged?.Invoke(this, name); - RaisePropertyChanged(nameof(Name)); - } - - /// <summary> /// Called when the PackIndex has changed. /// </summary> protected virtual void OnPackIndexChanged(Int32 packindex) @@ -482,12 +444,12 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the DispenserType has changed. + /// Called when the Dispenser has changed. /// </summary> - protected virtual void OnDispenserTypeChanged(DispenserType dispensertype) + protected virtual void OnDispenserChanged(Dispenser dispenser) { - DispenserTypeChanged?.Invoke(this, dispensertype); - RaisePropertyChanged(nameof(DispenserType)); + DispenserChanged?.Invoke(this, dispenser); + RaisePropertyChanged(nameof(Dispenser)); } /// <summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs index b862b87b3..c4c1d24fd 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/Machine.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/Machine.cs @@ -67,8 +67,6 @@ namespace Tango.BL.Entities public event EventHandler<MachineVersion> MachineVersionChanged; - public event EventHandler<SynchronizedObservableCollection<MachinesConfiguration>> MachinesConfigurationsChanged; - public event EventHandler<SynchronizedObservableCollection<MachinesEvent>> MachinesEventsChanged; public event EventHandler<Organization> OrganizationChanged; @@ -814,31 +812,6 @@ namespace Tango.BL.Entities } } - protected SynchronizedObservableCollection<MachinesConfiguration> _machinesconfigurations; - - /// <summary> - /// Gets or sets the machine machines configurations. - /// </summary> - - public virtual SynchronizedObservableCollection<MachinesConfiguration> MachinesConfigurations - { - get - { - return _machinesconfigurations; - } - - set - { - if (_machinesconfigurations != value) - { - _machinesconfigurations = value; - - OnMachinesConfigurationsChanged(value); - - } - } - } - protected SynchronizedObservableCollection<MachinesEvent> _machinesevents; /// <summary> @@ -1135,15 +1108,6 @@ namespace Tango.BL.Entities } /// <summary> - /// Called when the MachinesConfigurations has changed. - /// </summary> - protected virtual void OnMachinesConfigurationsChanged(SynchronizedObservableCollection<MachinesConfiguration> machinesconfigurations) - { - MachinesConfigurationsChanged?.Invoke(this, machinesconfigurations); - RaisePropertyChanged(nameof(MachinesConfigurations)); - } - - /// <summary> /// Called when the MachinesEvents has changed. /// </summary> protected virtual void OnMachinesEventsChanged(SynchronizedObservableCollection<MachinesEvent> machinesevents) @@ -1189,8 +1153,6 @@ namespace Tango.BL.Entities Jobs = new SynchronizedObservableCollection<Job>(); - MachinesConfigurations = new SynchronizedObservableCollection<MachinesConfiguration>(); - MachinesEvents = new SynchronizedObservableCollection<MachinesEvent>(); } diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachinesConfiguration.cs b/Software/Visual_Studio/Tango.BL/Entities/MachinesConfiguration.cs deleted file mode 100644 index 4feacdbae..000000000 --- a/Software/Visual_Studio/Tango.BL/Entities/MachinesConfiguration.cs +++ /dev/null @@ -1,161 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated by a tool. -// Tango Observables Generator -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. Do not modify! -// </auto-generated> -//------------------------------------------------------------------------------ - -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Xml.Serialization; -using Newtonsoft.Json; -using System.Linq; -using Tango.DAL.Remote.DB; -using Tango.Core; - -namespace Tango.BL.Entities -{ - [Table("MACHINES_CONFIGURATIONS")] - public partial class MachinesConfiguration : ObservableEntity<MachinesConfiguration> - { - - public event EventHandler<Configuration> ConfigurationChanged; - - public event EventHandler<Machine> MachineChanged; - - protected String _machineguid; - - /// <summary> - /// Gets or sets the machinesconfiguration machine guid. - /// </summary> - - [Column("MACHINE_GUID")] - [ForeignKey("Machine")] - - public String MachineGuid - { - get - { - return _machineguid; - } - - set - { - if (_machineguid != value) - { - _machineguid = value; - } - } - } - - protected String _configurationguid; - - /// <summary> - /// Gets or sets the machinesconfiguration configuration guid. - /// </summary> - - [Column("CONFIGURATION_GUID")] - [ForeignKey("Configuration")] - - public String ConfigurationGuid - { - get - { - return _configurationguid; - } - - set - { - if (_configurationguid != value) - { - _configurationguid = value; - } - } - } - - protected Configuration _configuration; - - /// <summary> - /// Gets or sets the machinesconfiguration configuration. - /// </summary> - - [XmlIgnore] - [JsonIgnore] - public virtual Configuration Configuration - { - get - { - return _configuration; - } - - set - { - if (_configuration != value) - { - _configuration = value; - - OnConfigurationChanged(value); - - } - } - } - - protected Machine _machine; - - /// <summary> - /// Gets or sets the machinesconfiguration machine. - /// </summary> - - [XmlIgnore] - [JsonIgnore] - public virtual Machine Machine - { - get - { - return _machine; - } - - set - { - if (_machine != value) - { - _machine = value; - - OnMachineChanged(value); - - } - } - } - - /// <summary> - /// Called when the Configuration has changed. - /// </summary> - protected virtual void OnConfigurationChanged(Configuration configuration) - { - ConfigurationChanged?.Invoke(this, configuration); - RaisePropertyChanged(nameof(Configuration)); - } - - /// <summary> - /// Called when the Machine has changed. - /// </summary> - protected virtual void OnMachineChanged(Machine machine) - { - MachineChanged?.Invoke(this, machine); - RaisePropertyChanged(nameof(Machine)); - } - - /// <summary> - /// Initializes a new instance of the <see cref="MachinesConfiguration" /> class. - /// </summary> - public MachinesConfiguration() : base() - { - } - } -} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs index 81add0eae..848d14c1d 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs @@ -32,8 +32,6 @@ namespace Tango.BL.Entities public override void DefferedDelete(ObservablesContext context) { IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); - var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); - MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); base.DefferedDelete(context); IdsPacks.Clear(); } @@ -41,8 +39,6 @@ namespace Tango.BL.Entities public override void Delete(ObservablesContext context) { IdsPacks.ToList().ForEach(x => x.DefferedDelete(context)); - var machine_configurations = context.MachinesConfigurations.Where(x => x.Configuration == this); - MachinesConfigurations.ToList().ForEach(x => x.DefferedDelete(context)); base.Delete(context); IdsPacks.Clear(); } @@ -57,7 +53,7 @@ namespace Tango.BL.Entities { IdsPack clonedPack = idsPack.Clone(); clonedPack.Configuration = cloned; - clonedPack.DispenserType = idsPack.DispenserType; + clonedPack.Dispenser = idsPack.Dispenser; clonedPack.CartridgeType = idsPack.CartridgeType; clonedPack.MidTankType = idsPack.MidTankType; clonedPack.IdsPackFormula = idsPack.IdsPackFormula; diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Dispenser.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Dispenser.cs new file mode 100644 index 000000000..84cdade77 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Dispenser.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.BL.Entities +{ + public partial class Dispenser + { + + } +} diff --git a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs index 96edacde6..9117bc5a1 100644 --- a/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs +++ b/Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs @@ -95,20 +95,6 @@ namespace Tango.BL.Entities } } - /// <summary> - /// Deletes this entity from the database - /// </summary> - public override void Delete(ObservablesContext context) - { - foreach (var machine_config in MachinesConfigurations) - { - machine_config.Delete(context); - machine_config.Configuration.Delete(context); - } - - base.Delete(context); - } - public override void Save(ObservablesContext context) { foreach (var job in Jobs) diff --git a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs index 31120a695..69142979e 100644 --- a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs +++ b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs @@ -182,7 +182,7 @@ namespace Tango.BL { get { - return (IdsPack.DispenserType.NlPerPulse / ((double)(DispenserStepDivision != DispenserStepDivisions.Auto ? DispenserStepDivision : DispenserStepDivisions.D8) / 8d)); + return (IdsPack.Dispenser.NlPerPulse / ((double)(DispenserStepDivision != DispenserStepDivisions.Auto ? DispenserStepDivision : DispenserStepDivisions.D8) / 8d)); } } diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs index 08892d274..917755d09 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs @@ -423,14 +423,6 @@ namespace Tango.BL } /// <summary> - /// Gets or sets the MachinesConfigurations. - /// </summary> - public DbSet<MachinesConfiguration> MachinesConfigurations - { - get; set; - } - - /// <summary> /// Gets or sets the MachinesEvents. /// </summary> public DbSet<MachinesEvent> MachinesEvents diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContextAdapter.cs b/Software/Visual_Studio/Tango.BL/ObservablesContextAdapter.cs index 03e4f3c47..ef44c2db6 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContextAdapter.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContextAdapter.cs @@ -54,9 +54,10 @@ namespace Tango.BL var l = _db.IdsPacks.Where(x => x.ConfigurationGuid == config.Guid) .Include(x => x.LiquidType) - .Include(x => x.DispenserType) + .Include(x => x.MidTankType) .Include(x => x.CartridgeType) - .Include(x => x.DispenserType) + .Include(x => x.Dispenser) + .Include(x => x.Dispenser.DispenserType) .Include(x => x.IdsPackFormula).OrderBy(x => x.PackIndex).ToList(); return config; diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs index 827e8f96f..9c787cd0b 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs @@ -126,8 +126,6 @@ namespace Tango.BL Machines = Context.Machines.ToObservableCollection(); - MachinesConfigurations = Context.MachinesConfigurations.ToObservableCollection(); - MachineVersions = Context.MachineVersions.ToList().OrderBy(x => x.Version).ToObservableCollection(); Addresses = Context.Addresses.Where(x => !x.Deleted).ToList().OrderBy(x => x.AddressString).ToObservableCollection(); diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs index 20d6252b0..6eea6ee9a 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs @@ -1817,42 +1817,6 @@ namespace Tango.BL } - private ObservableCollection<MachinesConfiguration> _machinesconfigurations; - /// <summary> - /// Gets or sets the MachinesConfigurations. - /// </summary> - public ObservableCollection<MachinesConfiguration> MachinesConfigurations - { - get - { - return _machinesconfigurations; - } - - set - { - _machinesconfigurations = value; RaisePropertyChanged(nameof(MachinesConfigurations)); - } - - } - - private ICollectionView _machinesconfigurationsViewSource; - /// <summary> - /// Gets or sets the MachinesConfigurations View Source. - ///</summary> - public ICollectionView MachinesConfigurationsViewSource - { - get - { - return _machinesconfigurationsViewSource; - } - - set - { - _machinesconfigurationsViewSource = value; RaisePropertyChanged(nameof(MachinesConfigurationsViewSource)); - } - - } - private ObservableCollection<MachinesEvent> _machinesevents; /// <summary> /// Gets or sets the MachinesEvents. @@ -2931,8 +2895,6 @@ namespace Tango.BL MachinesViewSource = CreateCollectionView(Machines); - MachinesConfigurationsViewSource = CreateCollectionView(MachinesConfigurations); - MachinesEventsViewSource = CreateCollectionView(MachinesEvents); MediaColorsViewSource = CreateCollectionView(MediaColors); diff --git a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs index 55ea29159..4de477ebb 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs @@ -1817,42 +1817,6 @@ namespace Tango.BL } - private ObservableCollection<MachinesConfiguration> _machinesconfigurations; - /// <summary> - /// Gets or sets the MachinesConfigurations. - /// </summary> - public ObservableCollection<MachinesConfiguration> MachinesConfigurations - { - get - { - return _machinesconfigurations; - } - - set - { - _machinesconfigurations = value; RaisePropertyChanged(nameof(MachinesConfigurations)); - } - - } - - private ICollectionView _machinesconfigurationsViewSource; - /// <summary> - /// Gets or sets the MachinesConfigurations View Source. - ///</summary> - public ICollectionView MachinesConfigurationsViewSource - { - get - { - return _machinesconfigurationsViewSource; - } - - set - { - _machinesconfigurationsViewSource = value; RaisePropertyChanged(nameof(MachinesConfigurationsViewSource)); - } - - } - private ObservableCollection<MachinesEvent> _machinesevents; /// <summary> /// Gets or sets the MachinesEvents. @@ -2931,8 +2895,6 @@ namespace Tango.BL MachinesViewSource = CreateCollectionView(Machines); - MachinesConfigurationsViewSource = CreateCollectionView(MachinesConfigurations); - MachinesEventsViewSource = CreateCollectionView(MachinesEvents); MediaColorsViewSource = CreateCollectionView(MediaColors); diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 862c23b51..286afd85a 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -112,6 +112,7 @@ <Compile Include="Dispensing\TransparentLiquidDispensingCalc.cs" /> <Compile Include="EntitiesExtensions\ColorCatalog.cs" /> <Compile Include="EntitiesExtensions\Contact.cs" /> + <Compile Include="EntitiesExtensions\Dispenser.cs" /> <Compile Include="EntitiesExtensions\EventType.cs" /> <Compile Include="EntitiesExtensions\JobRun.cs" /> <Compile Include="EntitiesExtensions\LiquidType.cs" /> @@ -213,7 +214,6 @@ <Compile Include="Entities\LiquidType.cs" /> <Compile Include="Entities\LiquidTypesRml.cs" /> <Compile Include="Entities\Machine.cs" /> - <Compile Include="Entities\MachinesConfiguration.cs" /> <Compile Include="Entities\MachinesEvent.cs" /> <Compile Include="Entities\MachineStudioVersion.cs" /> <Compile Include="Entities\MachineVersion.cs" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/CONFIGURATION.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/CONFIGURATION.cs index 0a2bada95..24f01f909 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/CONFIGURATION.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/CONFIGURATION.cs @@ -20,7 +20,6 @@ namespace Tango.DAL.Remote.DB this.IDS_PACKS = new HashSet<IDS_PACKS>(); this.MACHINE_VERSIONS = new HashSet<MACHINE_VERSIONS>(); this.MACHINES = new HashSet<MACHINE>(); - this.MACHINES_CONFIGURATIONS = new HashSet<MACHINES_CONFIGURATIONS>(); } public int ID { get; set; } @@ -45,7 +44,5 @@ namespace Tango.DAL.Remote.DB public virtual ICollection<MACHINE_VERSIONS> MACHINE_VERSIONS { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<MACHINE> MACHINES { get; set; } - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] - public virtual ICollection<MACHINES_CONFIGURATIONS> MACHINES_CONFIGURATIONS { get; set; } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER.cs index e6427b03c..769657e6f 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER.cs @@ -14,6 +14,12 @@ namespace Tango.DAL.Remote.DB public partial class DISPENSER { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public DISPENSER() + { + this.IDS_PACKS = new HashSet<IDS_PACKS>(); + } + public int ID { get; set; } public string GUID { get; set; } public System.DateTime LAST_UPDATED { get; set; } @@ -23,5 +29,7 @@ namespace Tango.DAL.Remote.DB public byte[] DATA { get; set; } public virtual DISPENSER_TYPES DISPENSER_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/DISPENSER_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER_TYPES.cs index 0985d838f..91d950bb4 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER_TYPES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER_TYPES.cs @@ -18,7 +18,6 @@ namespace Tango.DAL.Remote.DB public DISPENSER_TYPES() { this.DISPENSERS = new HashSet<DISPENSER>(); - this.IDS_PACKS = new HashSet<IDS_PACKS>(); } public int ID { get; set; } @@ -26,12 +25,9 @@ namespace Tango.DAL.Remote.DB public System.DateTime LAST_UPDATED { get; set; } public int CODE { get; set; } public string NAME { get; set; } - public double NL_PER_PULSE { get; set; } public double CAPACITY { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<DISPENSER> DISPENSERS { 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 c6f44d5a4..e1a2b25ec 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs @@ -18,18 +18,17 @@ namespace Tango.DAL.Remote.DB public string GUID { get; set; } public System.DateTime LAST_UPDATED { get; set; } public string CONFIGURATION_GUID { get; set; } - public string DISPENSER_TYPE_GUID { get; set; } + public string DISPENSER_GUID { get; set; } public string LIQUID_TYPE_GUID { get; set; } public string CARTRIDGE_TYPE_GUID { get; set; } public string MID_TANK_TYPE_GUID { get; set; } public string IDS_PACK_FORMULA_GUID { get; set; } - public string NAME { get; set; } public int PACK_INDEX { get; set; } public bool IS_EMPTY { get; set; } public virtual CARTRIDGE_TYPES CARTRIDGE_TYPES { get; set; } public virtual CONFIGURATION CONFIGURATION { get; set; } - public virtual DISPENSER_TYPES DISPENSER_TYPES { get; set; } + public virtual DISPENSER DISPENSER { get; set; } public virtual IDS_PACK_FORMULAS IDS_PACK_FORMULAS { 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/MACHINE.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs index 00f8277e9..f64c372e2 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs @@ -19,7 +19,6 @@ namespace Tango.DAL.Remote.DB { this.CATS = new HashSet<CAT>(); this.JOBS = new HashSet<JOB>(); - this.MACHINES_CONFIGURATIONS = new HashSet<MACHINES_CONFIGURATIONS>(); this.MACHINES_EVENTS = new HashSet<MACHINES_EVENTS>(); } @@ -58,8 +57,6 @@ namespace Tango.DAL.Remote.DB public virtual ICollection<JOB> JOBS { get; set; } public virtual MACHINE_VERSIONS MACHINE_VERSIONS { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] - public virtual ICollection<MACHINES_CONFIGURATIONS> MACHINES_CONFIGURATIONS { get; set; } - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<MACHINES_EVENTS> MACHINES_EVENTS { get; set; } public virtual ORGANIZATION ORGANIZATION { get; set; } public virtual RML RML { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINES_CONFIGURATIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINES_CONFIGURATIONS.cs deleted file mode 100644 index 2efe07680..000000000 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINES_CONFIGURATIONS.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// <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 MACHINES_CONFIGURATIONS - { - public int ID { get; set; } - public string GUID { get; set; } - public System.DateTime LAST_UPDATED { get; set; } - public string MACHINE_GUID { get; set; } - public string CONFIGURATION_GUID { get; set; } - - public virtual CONFIGURATION CONFIGURATION { get; set; } - public virtual MACHINE MACHINE { 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 20b252f96..a266b618d 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs @@ -75,7 +75,6 @@ namespace Tango.DAL.Remote.DB public virtual DbSet<MACHINE_STUDIO_VERSIONS> MACHINE_STUDIO_VERSIONS { get; set; } public virtual DbSet<MACHINE_VERSIONS> MACHINE_VERSIONS { get; set; } public virtual DbSet<MACHINE> MACHINES { get; set; } - public virtual DbSet<MACHINES_CONFIGURATIONS> MACHINES_CONFIGURATIONS { get; set; } public virtual DbSet<MACHINES_EVENTS> MACHINES_EVENTS { get; set; } public virtual DbSet<MEDIA_COLORS> MEDIA_COLORS { get; set; } public virtual DbSet<MEDIA_CONDITIONS> MEDIA_CONDITIONS { 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 00e034831..5c4150f43 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -227,7 +227,6 @@ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> <Property Name="CODE" Type="int" Nullable="false" /> <Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" /> - <Property Name="NL_PER_PULSE" Type="float" Nullable="false" /> <Property Name="CAPACITY" Type="float" Nullable="false" /> </EntityType> <EntityType Name="DISPENSERS"> @@ -578,12 +577,11 @@ <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" /> <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" /> <Property Name="CONFIGURATION_GUID" Type="varchar" MaxLength="36" Nullable="false" /> - <Property Name="DISPENSER_TYPE_GUID" Type="varchar" MaxLength="36" /> + <Property Name="DISPENSER_GUID" Type="varchar" MaxLength="36" /> <Property Name="LIQUID_TYPE_GUID" Type="varchar" MaxLength="36" /> <Property Name="CARTRIDGE_TYPE_GUID" Type="varchar" MaxLength="36" /> <Property Name="MID_TANK_TYPE_GUID" Type="varchar" MaxLength="36" /> <Property Name="IDS_PACK_FORMULA_GUID" Type="varchar" MaxLength="36" /> - <Property Name="NAME" Type="nvarchar" MaxLength="50" Nullable="false" /> <Property Name="PACK_INDEX" Type="int" Nullable="false" /> <Property Name="IS_EMPTY" Type="bit" Nullable="false" /> </EntityType> @@ -731,16 +729,6 @@ <Property Name="SETUP_FPGA" Type="bit" Nullable="false" /> <Property Name="IS_DEMO" Type="bit" Nullable="false" /> </EntityType> - <EntityType Name="MACHINES_CONFIGURATIONS"> - <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="MACHINE_GUID" Type="varchar" MaxLength="36" Nullable="false" /> - <Property Name="CONFIGURATION_GUID" Type="varchar" MaxLength="36" Nullable="false" /> - </EntityType> <EntityType Name="MACHINES_EVENTS"> <Key> <PropertyRef Name="GUID" /> @@ -1599,15 +1587,15 @@ </Dependent> </ReferentialConstraint> </Association> - <Association Name="FK_IDS_PACKS_DISPENSER_TYPES"> - <End Role="DISPENSER_TYPES" Type="Self.DISPENSER_TYPES" Multiplicity="0..1" /> + <Association Name="FK_IDS_PACKS_DISPENSERS"> + <End Role="DISPENSERS" Type="Self.DISPENSERS" Multiplicity="0..1" /> <End Role="IDS_PACKS" Type="Self.IDS_PACKS" Multiplicity="*" /> <ReferentialConstraint> - <Principal Role="DISPENSER_TYPES"> + <Principal Role="DISPENSERS"> <PropertyRef Name="GUID" /> </Principal> <Dependent Role="IDS_PACKS"> - <PropertyRef Name="DISPENSER_TYPE_GUID" /> + <PropertyRef Name="DISPENSER_GUID" /> </Dependent> </ReferentialConstraint> </Association> @@ -1813,32 +1801,6 @@ </Dependent> </ReferentialConstraint> </Association> - <Association Name="FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS"> - <End Role="CONFIGURATIONS" Type="Self.CONFIGURATIONS" Multiplicity="1" /> - <End Role="MACHINES_CONFIGURATIONS" Type="Self.MACHINES_CONFIGURATIONS" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="CONFIGURATIONS"> - <PropertyRef Name="GUID" /> - </Principal> - <Dependent Role="MACHINES_CONFIGURATIONS"> - <PropertyRef Name="CONFIGURATION_GUID" /> - </Dependent> - </ReferentialConstraint> - </Association> - <Association Name="FK_MACHINES_CONFIGURATIONS_MACHINES"> - <End Role="MACHINES" Type="Self.MACHINES" Multiplicity="1"> - <OnDelete Action="Cascade" /> - </End> - <End Role="MACHINES_CONFIGURATIONS" Type="Self.MACHINES_CONFIGURATIONS" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="MACHINES"> - <PropertyRef Name="GUID" /> - </Principal> - <Dependent Role="MACHINES_CONFIGURATIONS"> - <PropertyRef Name="MACHINE_GUID" /> - </Dependent> - </ReferentialConstraint> - </Association> <Association Name="FK_MACHINES_EVENTS_EVENTS"> <End Role="EVENT_TYPES" Type="Self.EVENT_TYPES" Multiplicity="1"> <OnDelete Action="Cascade" /> @@ -2251,7 +2213,6 @@ <EntitySet Name="MACHINE_STUDIO_VERSIONS" EntityType="Self.MACHINE_STUDIO_VERSIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="MACHINE_VERSIONS" EntityType="Self.MACHINE_VERSIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="MACHINES" EntityType="Self.MACHINES" Schema="dbo" store:Type="Tables" /> - <EntitySet Name="MACHINES_CONFIGURATIONS" EntityType="Self.MACHINES_CONFIGURATIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="MACHINES_EVENTS" EntityType="Self.MACHINES_EVENTS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="MEDIA_COLORS" EntityType="Self.MEDIA_COLORS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="MEDIA_CONDITIONS" EntityType="Self.MEDIA_CONDITIONS" Schema="dbo" store:Type="Tables" /> @@ -2428,8 +2389,8 @@ <End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" /> <End Role="IDS_PACKS" EntitySet="IDS_PACKS" /> </AssociationSet> - <AssociationSet Name="FK_IDS_PACKS_DISPENSER_TYPES" Association="Self.FK_IDS_PACKS_DISPENSER_TYPES"> - <End Role="DISPENSER_TYPES" EntitySet="DISPENSER_TYPES" /> + <AssociationSet Name="FK_IDS_PACKS_DISPENSERS" Association="Self.FK_IDS_PACKS_DISPENSERS"> + <End Role="DISPENSERS" EntitySet="DISPENSERS" /> <End Role="IDS_PACKS" EntitySet="IDS_PACKS" /> </AssociationSet> <AssociationSet Name="FK_IDS_PACKS_IDS_PACK_FORMULAS" Association="Self.FK_IDS_PACKS_IDS_PACK_FORMULAS"> @@ -2496,14 +2457,6 @@ <End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" /> <End Role="MACHINES" EntitySet="MACHINES" /> </AssociationSet> - <AssociationSet Name="FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS" Association="Self.FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS"> - <End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" /> - <End Role="MACHINES_CONFIGURATIONS" EntitySet="MACHINES_CONFIGURATIONS" /> - </AssociationSet> - <AssociationSet Name="FK_MACHINES_CONFIGURATIONS_MACHINES" Association="Self.FK_MACHINES_CONFIGURATIONS_MACHINES"> - <End Role="MACHINES" EntitySet="MACHINES" /> - <End Role="MACHINES_CONFIGURATIONS" EntitySet="MACHINES_CONFIGURATIONS" /> - </AssociationSet> <AssociationSet Name="FK_MACHINES_EVENTS_EVENTS" Association="Self.FK_MACHINES_EVENTS_EVENTS"> <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> <End Role="MACHINES_EVENTS" EntitySet="MACHINES_EVENTS" /> @@ -2672,7 +2625,6 @@ <EntitySet Name="MACHINE_STUDIO_VERSIONS" EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" /> <EntitySet Name="MACHINE_VERSIONS" EntityType="RemoteModel.MACHINE_VERSIONS" /> <EntitySet Name="MACHINES" EntityType="RemoteModel.MACHINE" /> - <EntitySet Name="MACHINES_CONFIGURATIONS" EntityType="RemoteModel.MACHINES_CONFIGURATIONS" /> <EntitySet Name="MACHINES_EVENTS" EntityType="RemoteModel.MACHINES_EVENTS" /> <EntitySet Name="MEDIA_COLORS" EntityType="RemoteModel.MEDIA_COLORS" /> <EntitySet Name="MEDIA_CONDITIONS" EntityType="RemoteModel.MEDIA_CONDITIONS" /> @@ -2788,10 +2740,6 @@ <End Role="CONFIGURATION" EntitySet="CONFIGURATIONS" /> <End Role="MACHINE" EntitySet="MACHINES" /> </AssociationSet> - <AssociationSet Name="FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS" Association="RemoteModel.FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS"> - <End Role="CONFIGURATION" EntitySet="CONFIGURATIONS" /> - <End Role="MACHINES_CONFIGURATIONS" EntitySet="MACHINES_CONFIGURATIONS" /> - </AssociationSet> <AssociationSet Name="FK_ORGANIZATIONS_CONTACTS" Association="RemoteModel.FK_ORGANIZATIONS_CONTACTS"> <End Role="CONTACT" EntitySet="CONTACTS" /> <End Role="ORGANIZATION" EntitySet="ORGANIZATIONS" /> @@ -2812,8 +2760,8 @@ <End Role="DISPENSER_TYPES" EntitySet="DISPENSER_TYPES" /> <End Role="DISPENSER" EntitySet="DISPENSERS" /> </AssociationSet> - <AssociationSet Name="FK_IDS_PACKS_DISPENSER_TYPES" Association="RemoteModel.FK_IDS_PACKS_DISPENSER_TYPES"> - <End Role="DISPENSER_TYPES" EntitySet="DISPENSER_TYPES" /> + <AssociationSet Name="FK_IDS_PACKS_DISPENSERS" Association="RemoteModel.FK_IDS_PACKS_DISPENSERS"> + <End Role="DISPENSER" EntitySet="DISPENSERS" /> <End Role="IDS_PACKS" EntitySet="IDS_PACKS" /> </AssociationSet> <AssociationSet Name="FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES" Association="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES"> @@ -2964,10 +2912,6 @@ <End Role="MACHINE_VERSIONS" EntitySet="MACHINE_VERSIONS" /> <End Role="TANGO_VERSIONS" EntitySet="TANGO_VERSIONS" /> </AssociationSet> - <AssociationSet Name="FK_MACHINES_CONFIGURATIONS_MACHINES" Association="RemoteModel.FK_MACHINES_CONFIGURATIONS_MACHINES"> - <End Role="MACHINE" EntitySet="MACHINES" /> - <End Role="MACHINES_CONFIGURATIONS" EntitySet="MACHINES_CONFIGURATIONS" /> - </AssociationSet> <AssociationSet Name="FK_MACHINES_EVENTS_MACHINES" Association="RemoteModel.FK_MACHINES_EVENTS_MACHINES"> <End Role="MACHINE" EntitySet="MACHINES" /> <End Role="MACHINES_EVENTS" EntitySet="MACHINES_EVENTS" /> @@ -3260,7 +3204,6 @@ <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_IDS_PACKS_CONFIGURATIONS" FromRole="CONFIGURATION" ToRole="IDS_PACKS" /> <NavigationProperty Name="MACHINE_VERSIONS" Relationship="RemoteModel.FK_MACHINE_VERSIONS_CONFIGURATIONS" FromRole="CONFIGURATION" ToRole="MACHINE_VERSIONS" /> <NavigationProperty Name="MACHINES" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS" FromRole="CONFIGURATION" ToRole="MACHINE" /> - <NavigationProperty Name="MACHINES_CONFIGURATIONS" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS" FromRole="CONFIGURATION" ToRole="MACHINES_CONFIGURATIONS" /> </EntityType> <EntityType Name="CONTACT"> <Key> @@ -3300,10 +3243,8 @@ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" /> <Property Name="CODE" Type="Int32" Nullable="false" /> <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" /> - <Property Name="NL_PER_PULSE" Type="Double" Nullable="false" /> <Property Name="CAPACITY" Type="Double" Nullable="false" /> <NavigationProperty Name="DISPENSERS" Relationship="RemoteModel.FK_DISPENSERS_DISPENSER_TYPES" FromRole="DISPENSER_TYPES" ToRole="DISPENSER" /> - <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_IDS_PACKS_DISPENSER_TYPES" FromRole="DISPENSER_TYPES" ToRole="IDS_PACKS" /> </EntityType> <EntityType Name="DISPENSER"> <Key> @@ -3317,6 +3258,7 @@ <Property Name="NL_PER_PULSE" Type="Double" Nullable="false" /> <Property Name="DATA" Type="Binary" MaxLength="Max" FixedLength="false" /> <NavigationProperty Name="DISPENSER_TYPES" Relationship="RemoteModel.FK_DISPENSERS_DISPENSER_TYPES" FromRole="DISPENSER" ToRole="DISPENSER_TYPES" /> + <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_IDS_PACKS_DISPENSERS" FromRole="DISPENSER" ToRole="IDS_PACKS" /> </EntityType> <EntityType Name="EMBEDDED_FIRMWARE_VERSIONS"> <Key> @@ -3697,17 +3639,16 @@ <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="CONFIGURATION_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> - <Property Name="DISPENSER_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> + <Property Name="DISPENSER_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="LIQUID_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="CARTRIDGE_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="MID_TANK_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="IDS_PACK_FORMULA_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> - <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" /> <Property Name="PACK_INDEX" Type="Int32" Nullable="false" /> <Property Name="IS_EMPTY" Type="Boolean" Nullable="false" /> <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_TYPES" Relationship="RemoteModel.FK_IDS_PACKS_DISPENSER_TYPES" FromRole="IDS_PACKS" ToRole="DISPENSER_TYPES" /> + <NavigationProperty Name="DISPENSER" Relationship="RemoteModel.FK_IDS_PACKS_DISPENSERS" FromRole="IDS_PACKS" ToRole="DISPENSER" /> <NavigationProperty Name="IDS_PACK_FORMULAS" Relationship="RemoteModel.FK_IDS_PACKS_IDS_PACK_FORMULAS" FromRole="IDS_PACKS" ToRole="IDS_PACK_FORMULAS" /> <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" /> @@ -3880,24 +3821,11 @@ <NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS" FromRole="MACHINE" ToRole="CONFIGURATION" /> <NavigationProperty Name="JOBS" Relationship="RemoteModel.FK_JOBS_MACHINES" FromRole="MACHINE" ToRole="JOB" /> <NavigationProperty Name="MACHINE_VERSIONS" Relationship="RemoteModel.FK_MACHINES_MACHINE_VERSIONS" FromRole="MACHINE" ToRole="MACHINE_VERSIONS" /> - <NavigationProperty Name="MACHINES_CONFIGURATIONS" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS_MACHINES" FromRole="MACHINE" ToRole="MACHINES_CONFIGURATIONS" /> <NavigationProperty Name="MACHINES_EVENTS" Relationship="RemoteModel.FK_MACHINES_EVENTS_MACHINES" FromRole="MACHINE" ToRole="MACHINES_EVENTS" /> <NavigationProperty Name="ORGANIZATION" Relationship="RemoteModel.FK_MACHINES_ORGANIZATIONS" FromRole="MACHINE" ToRole="ORGANIZATION" /> <NavigationProperty Name="RML" Relationship="RemoteModel.FK_MACHINES_RMLS2" FromRole="MACHINE" ToRole="RML" /> <NavigationProperty Name="SPOOL_TYPES" Relationship="RemoteModel.FK_MACHINES_SPOOL_TYPES" FromRole="MACHINE" ToRole="SPOOL_TYPES" /> </EntityType> - <EntityType Name="MACHINES_CONFIGURATIONS"> - <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="MACHINE_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> - <Property Name="CONFIGURATION_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> - <NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS" FromRole="MACHINES_CONFIGURATIONS" ToRole="CONFIGURATION" /> - <NavigationProperty Name="MACHINE" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS_MACHINES" FromRole="MACHINES_CONFIGURATIONS" ToRole="MACHINE" /> - </EntityType> <EntityType Name="MACHINES_EVENTS"> <Key> <PropertyRef Name="GUID" /> @@ -4599,18 +4527,6 @@ </Dependent> </ReferentialConstraint> </Association> - <Association Name="FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS"> - <End Type="RemoteModel.CONFIGURATION" Role="CONFIGURATION" Multiplicity="1" /> - <End Type="RemoteModel.MACHINES_CONFIGURATIONS" Role="MACHINES_CONFIGURATIONS" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="CONFIGURATION"> - <PropertyRef Name="GUID" /> - </Principal> - <Dependent Role="MACHINES_CONFIGURATIONS"> - <PropertyRef Name="CONFIGURATION_GUID" /> - </Dependent> - </ReferentialConstraint> - </Association> <Association Name="FK_ORGANIZATIONS_CONTACTS"> <End Type="RemoteModel.CONTACT" Role="CONTACT" Multiplicity="1"> <OnDelete Action="Cascade" /> @@ -4677,15 +4593,15 @@ </Dependent> </ReferentialConstraint> </Association> - <Association Name="FK_IDS_PACKS_DISPENSER_TYPES"> - <End Type="RemoteModel.DISPENSER_TYPES" Role="DISPENSER_TYPES" Multiplicity="0..1" /> + <Association Name="FK_IDS_PACKS_DISPENSERS"> + <End Type="RemoteModel.DISPENSER" Role="DISPENSER" Multiplicity="0..1" /> <End Type="RemoteModel.IDS_PACKS" Role="IDS_PACKS" Multiplicity="*" /> <ReferentialConstraint> - <Principal Role="DISPENSER_TYPES"> + <Principal Role="DISPENSER"> <PropertyRef Name="GUID" /> </Principal> <Dependent Role="IDS_PACKS"> - <PropertyRef Name="DISPENSER_TYPE_GUID" /> + <PropertyRef Name="DISPENSER_GUID" /> </Dependent> </ReferentialConstraint> </Association> @@ -5169,20 +5085,6 @@ </Dependent> </ReferentialConstraint> </Association> - <Association Name="FK_MACHINES_CONFIGURATIONS_MACHINES"> - <End Type="RemoteModel.MACHINE" Role="MACHINE" Multiplicity="1"> - <OnDelete Action="Cascade" /> - </End> - <End Type="RemoteModel.MACHINES_CONFIGURATIONS" Role="MACHINES_CONFIGURATIONS" Multiplicity="*" /> - <ReferentialConstraint> - <Principal Role="MACHINE"> - <PropertyRef Name="GUID" /> - </Principal> - <Dependent Role="MACHINES_CONFIGURATIONS"> - <PropertyRef Name="MACHINE_GUID" /> - </Dependent> - </ReferentialConstraint> - </Association> <Association Name="FK_MACHINES_EVENTS_MACHINES"> <End Type="RemoteModel.MACHINE" Role="MACHINE" Multiplicity="0..1" /> <End Type="RemoteModel.MACHINES_EVENTS" Role="MACHINES_EVENTS" Multiplicity="*" /> @@ -5647,7 +5549,6 @@ <EntityTypeMapping TypeName="RemoteModel.DISPENSER_TYPES"> <MappingFragment StoreEntitySet="DISPENSER_TYPES"> <ScalarProperty Name="CAPACITY" ColumnName="CAPACITY" /> - <ScalarProperty Name="NL_PER_PULSE" ColumnName="NL_PER_PULSE" /> <ScalarProperty Name="NAME" ColumnName="NAME" /> <ScalarProperty Name="CODE" ColumnName="CODE" /> <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> @@ -6026,12 +5927,11 @@ <MappingFragment StoreEntitySet="IDS_PACKS"> <ScalarProperty Name="IS_EMPTY" ColumnName="IS_EMPTY" /> <ScalarProperty Name="PACK_INDEX" ColumnName="PACK_INDEX" /> - <ScalarProperty Name="NAME" ColumnName="NAME" /> <ScalarProperty Name="IDS_PACK_FORMULA_GUID" ColumnName="IDS_PACK_FORMULA_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_TYPE_GUID" ColumnName="DISPENSER_TYPE_GUID" /> + <ScalarProperty Name="DISPENSER_GUID" ColumnName="DISPENSER_GUID" /> <ScalarProperty Name="CONFIGURATION_GUID" ColumnName="CONFIGURATION_GUID" /> <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> <ScalarProperty Name="GUID" ColumnName="GUID" /> @@ -6191,17 +6091,6 @@ </MappingFragment> </EntityTypeMapping> </EntitySetMapping> - <EntitySetMapping Name="MACHINES_CONFIGURATIONS"> - <EntityTypeMapping TypeName="RemoteModel.MACHINES_CONFIGURATIONS"> - <MappingFragment StoreEntitySet="MACHINES_CONFIGURATIONS"> - <ScalarProperty Name="CONFIGURATION_GUID" ColumnName="CONFIGURATION_GUID" /> - <ScalarProperty Name="MACHINE_GUID" ColumnName="MACHINE_GUID" /> - <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> - <ScalarProperty Name="GUID" ColumnName="GUID" /> - <ScalarProperty Name="ID" ColumnName="ID" /> - </MappingFragment> - </EntityTypeMapping> - </EntitySetMapping> <EntitySetMapping Name="MACHINES_EVENTS"> <EntityTypeMapping TypeName="RemoteModel.MACHINES_EVENTS"> <MappingFragment StoreEntitySet="MACHINES_EVENTS"> 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 03bc9bf5e..d12bfe870 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,83 +5,82 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1"> - <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="12.25" PointY="48.75" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="0.75" PointY="54.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="0.75" PointY="44.125" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="38.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="0.75" PointY="51.25" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="12" PointY="27.5" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="12" PointY="60.75" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="10.5" PointY="22.375" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="45.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="9.75" PointY="34.375" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="3" PointY="9.5" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3" PointY="43.5" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="0.75" PointY="58.5" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="5.25" PointY="16.625" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="12" PointY="3.875" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="14.25" PointY="3" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="41.25" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="10.25" PointY="7.875" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="14.5" PointY="6.75" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="8" PointY="8.875" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="8" PointY="12" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="15.375" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="29.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="0.75" PointY="66.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3" PointY="49.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="3.75" PointY="60.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6" PointY="41.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="0.75" PointY="62.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3" PointY="37.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.75" PointY="61.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="10" PointY="49.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="9.75" PointY="57.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="12" PointY="41.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="5.75" PointY="56.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="8" PointY="45.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="0.75" PointY="47" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="6.75" PointY="37.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="9" PointY="41.375" /> - <EntityTypeShape EntityType="RemoteModel.HTML_PAGES" Width="1.5" PointX="8" PointY="5.5" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="12" PointY="57.375" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="14.25" PointY="29.625" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="9.75" PointY="26.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="7.5" PointY="19.25" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="35.375" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="8" PointY="15.5" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="10.25" PointY="18.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="7.5" PointY="29.5" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3" PointY="6" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="5.25" PointY="20" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="13.5" PointY="22.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="12.5" PointY="18.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="26.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="32.375" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="22.875" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="18.25" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="12" PointY="36.75" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3" PointY="56.5" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="10.25" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="49.25" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="50.875" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.75" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="5.25" PointY="12.625" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="12.5" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="9.75" PointY="30.375" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="3" PointY="13.625" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="0.75" PointY="2.375" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="2.75" PointY="2.375" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="10.5" PointY="14.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="4.75" PointY="2.375" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="6.75" PointY="2.375" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="12.75" PointY="14.375" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="14.75" PointY="10.375" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="14.75" PointY="15.375" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="16.75" PointY="2.375" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="5.25" PointY="28.75" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="7.5" PointY="33.625" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="5.25" PointY="33.875" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="8.25" PointY="61.5" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="3.75" PointY="60.125" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="3.75" PointY="5.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="9.375" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="3.75" PointY="32.375" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="10.75" PointY="26.25" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="11.25" PointY="8" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="13.5" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="51.5" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="8.5" PointY="33.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="6" PointY="36.875" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6" PointY="4.125" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="3.75" PointY="56" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="3" PointY="35.5" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="9" PointY="52.5" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="11.25" PointY="52.375" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="29.5" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="8.25" PointY="64.625" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="10.5" PointY="65.5" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="6" PointY="68.75" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="6" PointY="65.625" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="34.875" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="15.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="6.75" PointY="72.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="9" PointY="11.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="10.75" PointY="46.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="13" PointY="17.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="9.75" PointY="42.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="12" PointY="11.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="6.75" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9" PointY="3.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="12.75" PointY="42.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="15" PointY="9.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="13.75" PointY="0.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="16" PointY="5.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="3.75" PointY="12.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="13.75" PointY="26.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="16" PointY="17.625" /> + <EntityTypeShape EntityType="RemoteModel.HTML_PAGES" Width="1.5" PointX="6" PointY="62.375" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="11.25" PointY="39" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="13.5" PointY="4.125" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="15.5" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="19" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="32" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="11.25" PointY="4" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="11.25" PointY="22.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="42.625" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6" PointY="33.375" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="8.25" PointY="19.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="10.5" PointY="18" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="22.375" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="29.125" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="18.25" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="26.125" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="11.25" PointY="35.875" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="6" PointY="58.25" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="11" PointY="60.625" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="44.75" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="46.375" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.5" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="11" PointY="56.5" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="13.25" PointY="56.625" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="29.125" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="10.75" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="0.75" PointY="6.25" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="0.75" PointY="9.25" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="8.25" PointY="38.75" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="17.75" PointY="10.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="0.75" PointY="12.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="15.75" PointY="2.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="2.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="14.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="19.25" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="38.625" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="13.25" PointY="32.5" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="2.375" /> <AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_ACTIONS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> @@ -104,13 +103,12 @@ <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_CONFIGURATIONS" /> <AssociationConnector Association="RemoteModel.FK_MACHINE_VERSIONS_CONFIGURATIONS" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_CONFIGURATIONS" /> - <AssociationConnector Association="RemoteModel.FK_MACHINES_CONFIGURATIONS_CONFIGURATIONS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_CONTACTS" /> <AssociationConnector Association="RemoteModel.FK_USERS_CONTACTS" /> <AssociationConnector Association="RemoteModel.FK_CUSTOMERS_ORGANIZATIONS" /> <AssociationConnector Association="RemoteModel.FK_JOBS_CUSTOMERS" /> <AssociationConnector Association="RemoteModel.FK_DISPENSERS_DISPENSER_TYPES" /> - <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_DISPENSER_TYPES" /> + <AssociationConnector Association="RemoteModel.FK_IDS_PACKS_DISPENSERS" /> <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES" /> <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES1" /> <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_HTML_PAGES" /> @@ -148,7 +146,6 @@ <AssociationConnector Association="RemoteModel.FK_MACHINE_STUDIO_VERSIONS_USERS" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_MACHINE_VERSIONS" /> <AssociationConnector Association="RemoteModel.FK_TANGO_VERSIONS_MACHINE_VERSIONS" /> - <AssociationConnector Association="RemoteModel.FK_MACHINES_CONFIGURATIONS_MACHINES" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_EVENTS_MACHINES" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_ORGANIZATIONS" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_RMLS2" /> 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 d3ed5f49a..d958046d0 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj +++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj @@ -207,9 +207,6 @@ <Compile Include="DB\MACHINE.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> - <Compile Include="DB\MACHINES_CONFIGURATIONS.cs"> - <DependentUpon>RemoteADO.tt</DependentUpon> - </Compile> <Compile Include="DB\MACHINES_EVENTS.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 2efd2fc9b..aa5f93b11 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -922,7 +922,7 @@ namespace Tango.Integration.Operation } else { - dispenser.NanoliterPerPulse = liquidVolume.IdsPack.DispenserType.NlPerPulse; + dispenser.NanoliterPerPulse = liquidVolume.IdsPack.Dispenser.NlPerPulse; } dispenser.LiquidMaxNanoliterPerCentimeter = liquidVolume.LiquidMaxNanoliterPerCentimeter; @@ -1432,7 +1432,7 @@ namespace Tango.Integration.Operation dispenser.DispenserLiquidType = (DispenserLiquidType)liquidVolume.IdsPack.LiquidType.Code; dispenser.DispenserStepDivision = (DispenserStepDivision)liquidVolume.DispenserStepDivision; - dispenser.NanoliterPerPulse = liquidVolume.IdsPack.DispenserType.NlPerPulse; + dispenser.NanoliterPerPulse = liquidVolume.IdsPack.Dispenser.NlPerPulse; dispenser.LiquidMaxNanoliterPerCentimeter = liquidVolume.LiquidMaxNanoliterPerCentimeter; dispenser.NanoliterPerCentimeter = liquidVolume.NanoliterPerCentimeter; @@ -1611,9 +1611,10 @@ namespace Tango.Integration.Operation foreach (var idsPack in configuration.NoneEmptyIdsPacks.OrderBy(x => x.PackIndex)) { PMR.Hardware.HardwareDispenser item = new PMR.Hardware.HardwareDispenser(); - idsPack.DispenserType.MapPrimitivesTo(item); - item.HardwareDispenserType = (PMR.Hardware.HardwareDispenserType)idsPack.DispenserType.Code; + item.Capacity = idsPack.Dispenser.DispenserType.Capacity; + item.HardwareDispenserType = (PMR.Hardware.HardwareDispenserType)idsPack.Dispenser.DispenserType.Code; item.Index = idsPack.PackIndex; + item.NlPerPulse = idsPack.Dispenser.NlPerPulse; hardwareConfiguration.Dispensers.Add(item); } diff --git a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs index 42c97a70b..aaf4706a3 100644 --- a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs +++ b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs @@ -103,8 +103,8 @@ namespace Tango.Synchronization.Remote OnProgress(LogManager.Log("Querying all remote machines configurations...")); guids = remote_machines.Select(x => x.GUID).ToList(); - var remote_machines_configurations = _remoteDB.MACHINES_CONFIGURATIONS.Where(x => guids.Contains(x.MACHINE_GUID)).ToList(); - var remote_configurations = remote_machines_configurations.Select(x => x.CONFIGURATION).ToList(); + //var remote_machines_configurations = _remoteDB.MACHINES_CONFIGURATIONS.Where(x => guids.Contains(x.MACHINE_GUID)).ToList(); + //var remote_configurations = remote_machines_configurations.Select(x => x.CONFIGURATION).ToList(); OnProgress(LogManager.Log("Querying all remote machines events...")); var remote_machines_events = _remoteDB.MACHINES_EVENTS.Where(x => guids.Contains(x.MACHINE_GUID)).ToList(); @@ -128,11 +128,11 @@ namespace Tango.Synchronization.Remote remote_contacts = remote_contacts.Distinct().ToList(); OnProgress(LogManager.Log("Querying all remote IDS Packs...")); - guids = remote_configurations.Select(x => x.GUID).ToList(); + //guids = remote_configurations.Select(x => x.GUID).ToList(); var remote_ids_packs = _remoteDB.IDS_PACKS.Where(x => guids.Contains(x.CONFIGURATION_GUID)).ToList(); OnProgress(LogManager.Log("Querying all remote dispenser types...")); - guids = remote_ids_packs.Select(x => x.DISPENSER_TYPE_GUID).ToList(); + //guids = remote_ids_packs.Select(x => x.DISPENSER_TYPE_GUID).ToList(); var remote_dispensers_types = _remoteDB.DISPENSER_TYPES.Where(x => guids.Contains(x.GUID)).ToList(); OnProgress(LogManager.Log("Querying all remote cartridge types...")); @@ -166,7 +166,7 @@ namespace Tango.Synchronization.Remote CompareCollections(remote_addresses, local_addresses, _remoteDB.ADDRESSES, _localDB.ADDRESSES); OnProgress(LogManager.Log("Comparing configurations")); - CompareCollections(remote_configurations, local_configurations, _remoteDB.CONFIGURATIONS, _localDB.CONFIGURATIONS); + //CompareCollections(remote_configurations, local_configurations, _remoteDB.CONFIGURATIONS, _localDB.CONFIGURATIONS); OnProgress(LogManager.Log("Comparing configurations dispensers")); CompareCollections(remote_ids_packs, local_ids_packs, _remoteDB.IDS_PACKS, _localDB.IDS_PACKS); @@ -178,7 +178,7 @@ namespace Tango.Synchronization.Remote CompareCollections(remote_machines, local_machines, _remoteDB.MACHINES, _localDB.MACHINES); OnProgress(LogManager.Log("Comparing machines configuration")); - CompareCollections(remote_machines_configurations, local_machines_configurations, _remoteDB.MACHINES_CONFIGURATIONS, _localDB.MACHINES_CONFIGURATIONS); + //CompareCollections(remote_machines_configurations, local_machines_configurations, _remoteDB.MACHINES_CONFIGURATIONS, _localDB.MACHINES_CONFIGURATIONS); OnProgress(LogManager.Log("Comparing machines events")); CompareCollections(remote_machines_events, local_machines_events, _remoteDB.MACHINES_EVENTS, _localDB.MACHINES_EVENTS); diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 8325fd18b..a7a6fb27d 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -246,6 +246,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Logging", "PPC\Mo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Web", "Tango.Web\Tango.Web.csproj", "{5001990F-977B-48FF-B217-0236A5022AD8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Dispensers", "MachineStudio\Modules\MachineStudio.Dispensers\Tango.MachineStudio.Dispensers.csproj", "{F69DA3A8-F823-461E-87CF-A9275ABC0B15}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution AppVeyor|Any CPU = AppVeyor|Any CPU @@ -4409,6 +4411,46 @@ Global {5001990F-977B-48FF-B217-0236A5022AD8}.Release|x64.Build.0 = Release|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Release|x86.ActiveCfg = Release|Any CPU {5001990F-977B-48FF-B217-0236A5022AD8}.Release|x86.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|Any CPU.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|ARM.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|ARM.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|ARM64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|ARM64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|x64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|x64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|x86.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.AppVeyor|x86.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|ARM.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|ARM64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Debug|x86.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|Any CPU.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|ARM.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|ARM.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|ARM64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|ARM64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|x64.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|x64.Build.0 = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|x86.ActiveCfg = Release|Any CPU + {F69DA3A8-F823-461E-87CF-A9275ABC0B15}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4485,14 +4527,15 @@ Global {43135FB9-41DB-4F87-9771-CF2C762027C0} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} {7E5E4BED-538C-4566-A005-DCC070AF8715} = {C81ED1A3-D18C-4D80-A8F5-061994A14A60} {D2EE865B-B006-487A-9487-60A663636AC3} = {0048447D-1D94-4E60-9DAD-7349C777CB4E} + {F69DA3A8-F823-461E-87CF-A9275ABC0B15} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal |
