aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-11-18 06:10:56 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-11-18 06:10:56 +0200
commit3d0ea1389f4ac2024e4b3cbad7a2d579cd291fdb (patch)
treede8e3334c90f224a627d9f53a6bbdeea6301dd68 /Software/Visual_Studio
parentdb1876bf3310a672176588329033ab4efc955175 (diff)
downloadTango-3d0ea1389f4ac2024e4b3cbad7a2d579cd291fdb.tar.gz
Tango-3d0ea1389f4ac2024e4b3cbad7a2d579cd291fdb.zip
Added DISABLED for TANGO_VERSIONS.
Added ACTIVATION_KEY for MACHINE. Added activation key generation for ms designer.
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs6
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/TangoVersionDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/TangoVersionBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.Core/Cryptography/PasswordGenerator.cs79
-rw-r--r--Software/Visual_Studio/Tango.Core/Tango.Core.csproj3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx6
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram168
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/TANGO_VERSIONS.cs1
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs8
12 files changed, 275 insertions, 89 deletions
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 9c4c2281d..7f558c0c9 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
@@ -28,6 +28,7 @@ using Tango.MachineStudio.RML.Models;
using Tango.BL.ActionLogs;
using Tango.MachineStudio.Common.Authentication;
using Tango.BL.DTO;
+using Tango.Core.Cryptography;
namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
@@ -642,6 +643,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
ActiveMachine.Configuration.HardwareVersionChanged += Configuration_HardwareVersionChanged;
+ if (ActiveMachine.ActivationKey == null)
+ {
+ ActiveMachine.ActivationKey = PasswordGenerator.Generate(8, PasswordGenerator.PasswordType.Alpha,PasswordGenerator.PasswordCasing.Upper);
+ }
+
View.NavigateTo(MachineDesignerNavigationView.MachineDetailsView);
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
index fe8aa35d3..f88f164cd 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/MachineDTOBase.cs
@@ -269,5 +269,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// activation key
+ /// </summary>
+ public String ActivationKey
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/DTO/TangoVersionDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/TangoVersionDTOBase.cs
index 3b77ba537..eea184e2e 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/TangoVersionDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/TangoVersionDTOBase.cs
@@ -77,5 +77,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// disabled
+ /// </summary>
+ public Boolean Disabled
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
index 214d70b20..cbfd43789 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/MachineBase.cs
@@ -73,6 +73,8 @@ namespace Tango.BL.Entities
public event EventHandler<Int32> HeadTypeChanged;
+ public event EventHandler<String> ActivationKeyChanged;
+
public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged;
public event EventHandler<Configuration> ConfigurationChanged;
@@ -913,6 +915,33 @@ namespace Tango.BL.Entities
}
}
+ protected String _activationkey;
+
+ /// <summary>
+ /// Gets or sets the machinebase activation key.
+ /// </summary>
+
+ [Column("ACTIVATION_KEY")]
+
+ public String ActivationKey
+ {
+ get
+ {
+ return _activationkey;
+ }
+
+ set
+ {
+ if (_activationkey != value)
+ {
+ _activationkey = value;
+
+ OnActivationKeyChanged(value);
+
+ }
+ }
+ }
+
protected SynchronizedObservableCollection<Cat> _cats;
/// <summary>
@@ -1342,6 +1371,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the ActivationKey has changed.
+ /// </summary>
+ protected virtual void OnActivationKeyChanged(String activationkey)
+ {
+ ActivationKeyChanged?.Invoke(this, activationkey);
+ RaisePropertyChanged(nameof(ActivationKey));
+ }
+
+ /// <summary>
/// Called when the Cats has changed.
/// </summary>
protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats)
diff --git a/Software/Visual_Studio/Tango.BL/Entities/TangoVersionBase.cs b/Software/Visual_Studio/Tango.BL/Entities/TangoVersionBase.cs
index f39df936a..2fece7fdb 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/TangoVersionBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/TangoVersionBase.cs
@@ -37,6 +37,8 @@ namespace Tango.BL.Entities
public event EventHandler<String> CommentsChanged;
+ public event EventHandler<Boolean> DisabledChanged;
+
public event EventHandler<MachineVersion> MachineVersionChanged;
public event EventHandler<User> UserChanged;
@@ -228,6 +230,33 @@ namespace Tango.BL.Entities
}
}
+ protected Boolean _disabled;
+
+ /// <summary>
+ /// Gets or sets the tangoversionbase disabled.
+ /// </summary>
+
+ [Column("DISABLED")]
+
+ public Boolean Disabled
+ {
+ get
+ {
+ return _disabled;
+ }
+
+ set
+ {
+ if (_disabled != value)
+ {
+ _disabled = value;
+
+ OnDisabledChanged(value);
+
+ }
+ }
+ }
+
protected MachineVersion _machineversion;
/// <summary>
@@ -338,6 +367,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the Disabled has changed.
+ /// </summary>
+ protected virtual void OnDisabledChanged(Boolean disabled)
+ {
+ DisabledChanged?.Invoke(this, disabled);
+ RaisePropertyChanged(nameof(Disabled));
+ }
+
+ /// <summary>
/// Called when the MachineVersion has changed.
/// </summary>
protected virtual void OnMachineVersionChanged(MachineVersion machineversion)
diff --git a/Software/Visual_Studio/Tango.Core/Cryptography/PasswordGenerator.cs b/Software/Visual_Studio/Tango.Core/Cryptography/PasswordGenerator.cs
new file mode 100644
index 000000000..50f59b744
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Core/Cryptography/PasswordGenerator.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.Core.Cryptography
+{
+ public static class PasswordGenerator
+ {
+ internal static readonly String alphaNumeric = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ internal static readonly String numeric = "1234567890";
+ internal static readonly String alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ public enum PasswordType
+ {
+ Alphaumeric,
+ Numeric,
+ Alpha,
+ }
+
+ public enum PasswordCasing
+ {
+ Any,
+ Upper,
+ Lower
+ }
+
+ public static String Generate(int length, PasswordType type = PasswordType.Alphaumeric, PasswordCasing casing = PasswordCasing.Any)
+ {
+ String chars = String.Empty;
+
+ switch (type)
+ {
+ case PasswordType.Alphaumeric:
+ chars = alphaNumeric;
+ break;
+ case PasswordType.Numeric:
+ chars = numeric;
+ break;
+ case PasswordType.Alpha:
+ chars = alpha;
+ break;
+ }
+
+ switch (casing)
+ {
+ case PasswordCasing.Upper:
+ chars = chars.ToUpper();
+ break;
+ case PasswordCasing.Lower:
+ chars = chars.ToLower();
+ break;
+ }
+
+ return GetUniqueKey(chars.ToCharArray(), length);
+ }
+
+ private static string GetUniqueKey(char[] chars, int size)
+ {
+ byte[] data = new byte[4 * size];
+ using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
+ {
+ crypto.GetBytes(data);
+ }
+ StringBuilder result = new StringBuilder(size);
+ for (int i = 0; i < size; i++)
+ {
+ var rnd = BitConverter.ToUInt32(data, i * 4);
+ var idx = rnd % chars.Length;
+
+ result.Append(chars[idx]);
+ }
+
+ return result.ToString();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
index 813a31443..9a55a25f9 100644
--- a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
+++ b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
@@ -99,6 +99,7 @@
<Compile Include="Bson\BsonUtcSerializer.cs" />
<Compile Include="Components\CmdCommand.cs" />
<Compile Include="Cryptography\MachineLevelCryptographer.cs" />
+ <Compile Include="Cryptography\PasswordGenerator.cs" />
<Compile Include="CustomAttributes\PropertyIndexAttribute.cs" />
<Compile Include="CustomAttributes\StringFormatAttribute.cs" />
<Compile Include="ExtensionMethods\BooleanExtensions.cs" />
@@ -220,7 +221,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>
<Import Project="..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
index 2db20bbba..14fe4f04e 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE.cs
@@ -58,6 +58,7 @@ namespace Tango.DAL.Remote.DB
public string DEVICE_ID { get; set; }
public string DEVICE_NAME { get; set; }
public int HEAD_TYPE { get; set; }
+ public string ACTIVATION_KEY { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CAT> CATS { 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 13b409e05..af3179379 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -815,6 +815,7 @@
<Property Name="DEVICE_ID" Type="nvarchar(max)" />
<Property Name="DEVICE_NAME" Type="nvarchar" MaxLength="200" />
<Property Name="HEAD_TYPE" Type="int" Nullable="false" />
+ <Property Name="ACTIVATION_KEY" Type="varchar" MaxLength="8" />
</EntityType>
<EntityType Name="MACHINES_EVENTS">
<Key>
@@ -1186,6 +1187,7 @@
<Property Name="COMMENTS" Type="nvarchar(max)" Nullable="false" />
<Property Name="USER_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="MACHINE_VERSION_GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ <Property Name="DISABLED" Type="bit" Nullable="false" />
</EntityType>
<EntityType Name="TECH_CONTROLLERS">
<Key>
@@ -4284,6 +4286,7 @@
<Property Name="DEVICE_ID" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" />
<Property Name="DEVICE_NAME" Type="String" MaxLength="200" FixedLength="false" Unicode="true" />
<Property Name="HEAD_TYPE" Type="Int32" Nullable="false" />
+ <Property Name="ACTIVATION_KEY" Type="String" MaxLength="8" FixedLength="false" Unicode="false" />
<NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_MACHINES" FromRole="MACHINE" ToRole="CAT" />
<NavigationProperty Name="CONFIGURATION" Relationship="RemoteModel.FK_MACHINES_CONFIGURATIONS" FromRole="MACHINE" ToRole="CONFIGURATION" />
<NavigationProperty Name="DATA_STORE_ITEMS" Relationship="RemoteModel.FK_DATA_STORES_MACHINES" FromRole="MACHINE" ToRole="DATA_STORE_ITEMS" />
@@ -4708,6 +4711,7 @@
<Property Name="COMMENTS" Type="String" Nullable="false" MaxLength="Max" FixedLength="false" Unicode="true" />
<Property Name="USER_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="MACHINE_VERSION_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <Property Name="DISABLED" Type="Boolean" Nullable="false" />
<NavigationProperty Name="MACHINE_VERSIONS" Relationship="RemoteModel.FK_TANGO_VERSIONS_MACHINE_VERSIONS" FromRole="TANGO_VERSIONS" ToRole="MACHINE_VERSIONS" />
<NavigationProperty Name="USER" Relationship="RemoteModel.FK_TANGO_VERSIONS_USERS" FromRole="TANGO_VERSIONS" ToRole="USER" />
</EntityType>
@@ -6851,6 +6855,7 @@
<EntitySetMapping Name="MACHINES">
<EntityTypeMapping TypeName="RemoteModel.MACHINE">
<MappingFragment StoreEntitySet="MACHINES">
+ <ScalarProperty Name="ACTIVATION_KEY" ColumnName="ACTIVATION_KEY" />
<ScalarProperty Name="HEAD_TYPE" ColumnName="HEAD_TYPE" />
<ScalarProperty Name="DEVICE_NAME" ColumnName="DEVICE_NAME" />
<ScalarProperty Name="DEVICE_ID" ColumnName="DEVICE_ID" />
@@ -7262,6 +7267,7 @@
<EntitySetMapping Name="TANGO_VERSIONS">
<EntityTypeMapping TypeName="RemoteModel.TANGO_VERSIONS">
<MappingFragment StoreEntitySet="TANGO_VERSIONS">
+ <ScalarProperty Name="DISABLED" ColumnName="DISABLED" />
<ScalarProperty Name="MACHINE_VERSION_GUID" ColumnName="MACHINE_VERSION_GUID" />
<ScalarProperty Name="USER_GUID" ColumnName="USER_GUID" />
<ScalarProperty Name="COMMENTS" ColumnName="COMMENTS" />
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 7f4f28dc0..476e859b4 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,90 +5,90 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87">
- <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="4" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="59.875" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="64" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="74.875" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="77.75" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="17.375" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="36.875" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="16.25" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="27" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="89" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="89.5" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="88.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.125" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="37.375" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="69.5" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="56" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="12.375" />
- <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="56.75" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="9.5" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="8.875" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="80.75" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="11" PointY="41.375" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="20.75" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="16.125" />
- <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="9.5" />
- <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="5.75" PointY="5.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="7.5" PointY="70.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="9.75" PointY="77.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="6.5" PointY="98.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="8.75" PointY="89.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="94.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="78.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="4.5" PointY="74.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="6.75" PointY="73.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="94.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="82.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="98.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="83.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="83.625" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="94.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="84" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="33.625" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="35.875" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="1.125" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.75" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="30.25" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="2.375" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="20.375" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="13" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="36.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="45.375" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="13.25" PointY="28.75" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="13.25" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="24" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="33.25" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="39.75" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="41.875" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="34.125" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="25.25" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="28" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="1.375" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15.375" />
- <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="16.25" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="0.875" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="20.375" />
- <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="29.375" />
- <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="60.75" />
- <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="24.625" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="10.625" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="10.25" PointY="29.875" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="13.75" PointY="4.125" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="13.75" PointY="11.125" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="16.25" PointY="27.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="15.75" PointY="11.125" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="17.75" PointY="9.125" />
- <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="17.75" PointY="12.125" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="17.75" PointY="15.125" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="1.125" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="19.75" PointY="6.125" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="6.5" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="7.875" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="34.25" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="38.25" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="59" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="63.125" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="84.125" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="74" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="15.75" PointY="17" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="39.75" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="19.875" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="20.125" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="7.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="8.125" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="6.875" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="15.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="24.5" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="68.625" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="55.125" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="28" />
+ <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="56.125" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="90.25" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="89.625" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="41" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="29.75" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="32.625" />
+ <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="47.125" />
+ <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="8.75" PointY="4.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="102.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="85.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="98.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="84.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="98.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="79.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="1.5" PointY="94.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="3.75" PointY="69.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="72.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="78.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="65.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="76.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="79.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="94.5" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="80.25" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="36.375" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="35.5" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="10.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="16.375" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="23.875" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="2.625" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="16" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="34.75" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="51.125" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="44.75" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="42.375" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="15.875" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="26.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="13" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="33.25" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="38.125" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="55.625" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="46.625" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="49.25" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="5.75" PointY="1" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="8" PointY="1.125" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15" />
+ <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="19.875" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="51.5" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="51.625" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="13.5" PointY="20" />
+ <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="29" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="12.5" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="24.25" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="10.5" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="30.625" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="11.75" PointY="8.75" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="12.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="42.125" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="13.75" PointY="5.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="5.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="13.75" PointY="9.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="14.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="13.75" PointY="12.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="15.75" PointY="5.75" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="34.25" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="35.625" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="31.125" />
<AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/TANGO_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/TANGO_VERSIONS.cs
index 4c46e8170..ba1dbb55b 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/TANGO_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/TANGO_VERSIONS.cs
@@ -24,6 +24,7 @@ namespace Tango.DAL.Remote.DB
public string COMMENTS { get; set; }
public string USER_GUID { get; set; }
public string MACHINE_VERSION_GUID { get; set; }
+ public bool DISABLED { get; set; }
public virtual MACHINE_VERSIONS MACHINE_VERSIONS { get; set; }
public virtual USER USER { get; set; }
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
index 0e96c14c8..161caaf23 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
@@ -105,7 +105,7 @@ namespace Tango.MachineService.Controllers
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
response.Version = latest_machine_version.Version;
response.FirmwareVersion = latest_machine_version.FirmwareVersion;
@@ -227,7 +227,7 @@ namespace Tango.MachineService.Controllers
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
response.Version = latest_machine_version.Version;
response.FirmwareVersion = latest_machine_version.FirmwareVersion;
@@ -346,9 +346,9 @@ namespace Tango.MachineService.Controllers
{
var machine_version = db.MachineVersions.SingleOrDefault(x => x.Guid == machine.MachineVersionGuid);
- var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var latest_machine_version = db.TangoVersions.Where(x => x.MachineVersionGuid == machine_version.Guid && !x.Disabled).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
- if (Version.Parse(latest_machine_version.Version) != Version.Parse(request.Version))
+ if (Version.Parse(latest_machine_version.Version) > Version.Parse(request.Version))
{
response.IsUpdateAvailable = true;
}