aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2018-12-30 01:27:53 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2018-12-30 01:27:53 +0200
commitcc3480d4aac4175b1072060dd2d6d398d3451ae8 (patch)
tree0c416705eca9d499a3118d83d84b5143f3cee262 /Software
parent7b69f9a96ab82e3a6e2345092600edf5854f5f4f (diff)
downloadTango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.tar.gz
Tango-cc3480d4aac4175b1072060dd2d6d398d3451ae8.zip
Working on dispenserssssssss
Diffstat (limited to 'Software')
-rw-r--r--Software/DB/Tango.mdfbin75497472 -> 75497472 bytes
-rw-r--r--Software/DB/Tango_log.ldfbin22675456 -> 22675456 bytes
-rw-r--r--Software/Graphics/Machine Studio Modules/dispensers.pngbin0 -> 205567 bytes
-rw-r--r--Software/Graphics/dispensers-title.pngbin0 -> 89550 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/App.config55
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Contracts/IMainView.cs20
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/DispensersModule.cs63
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers-title.pngbin0 -> 89550 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.pngbin0 -> 205567 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Models/DispenserModel.cs25
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/AssemblyInfo.cs19
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Resources.Designer.cs63
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Settings.Designer.cs26
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Tango.MachineStudio.Dispensers.csproj167
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModelLocator.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/ViewModels/MainViewVM.cs107
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml46
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispenserView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml76
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/DispensersView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml22
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Views/MainView.xaml.cs36
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/packages.config9
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Contracts/IMainView.cs21
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj26
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs769
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml718
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml.cs172
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml44
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml73
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachinesView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml811
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml.cs148
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/TFS/TeamFoundationServiceExtendedClient.cs25
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj6
-rw-r--r--Software/Visual_Studio/Tango.BL/Builders/ConfigurationBuilder.cs5
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Configuration.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Dispenser.cs39
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/DispenserType.cs76
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/IdsPack.cs78
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Machine.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachinesConfiguration.cs161
-rw-r--r--Software/Visual_Studio/Tango.BL/EntitiesExtensions/Configuration.cs6
-rw-r--r--Software/Visual_Studio/Tango.BL/EntitiesExtensions/Dispenser.cs13
-rw-r--r--Software/Visual_Studio/Tango.BL/EntitiesExtensions/Machine.cs14
-rw-r--r--Software/Visual_Studio/Tango.BL/LiquidVolume.cs2
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesContext.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesContextAdapter.cs5
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapter.cs2
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/ObservablesStaticCollectionsExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Tango.BL.csproj2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/CONFIGURATION.cs3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER.cs8
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/DISPENSER_TYPES.cs4
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/IDS_PACKS.cs5
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINES_CONFIGURATIONS.cs26
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx145
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram157
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj3
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs9
-rw-r--r--Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBComparer.cs12
-rw-r--r--Software/Visual_Studio/Tango.sln55
70 files changed, 2634 insertions, 2175 deletions
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf
index 601408e2e..967eddb23 100644
--- a/Software/DB/Tango.mdf
+++ b/Software/DB/Tango.mdf
Binary files differ
diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf
index a0788fd6d..65b2bce77 100644
--- a/Software/DB/Tango_log.ldf
+++ b/Software/DB/Tango_log.ldf
Binary files differ
diff --git a/Software/Graphics/Machine Studio Modules/dispensers.png b/Software/Graphics/Machine Studio Modules/dispensers.png
new file mode 100644
index 000000000..2f9e1ca8b
--- /dev/null
+++ b/Software/Graphics/Machine Studio Modules/dispensers.png
Binary files differ
diff --git a/Software/Graphics/dispensers-title.png b/Software/Graphics/dispensers-title.png
new file mode 100644
index 000000000..b5c594aa7
--- /dev/null
+++ b/Software/Graphics/dispensers-title.png
Binary files differ
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
new file mode 100644
index 000000000..b5c594aa7
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers-title.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png
new file mode 100644
index 000000000..2f9e1ca8b
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/MachineStudio.Dispensers/Images/dispensers.png
Binary files differ
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