aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs174
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml5
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml11
-rw-r--r--Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs8
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/Rml.cs15
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs38
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram194
-rw-r--r--Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs51
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xmlbin97788 -> 98058 bytes
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs54
-rw-r--r--Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs40
14 files changed, 374 insertions, 222 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
index dce3432e2..c2245bcb2 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Models/RmlModel.cs
@@ -45,6 +45,8 @@ namespace Tango.MachineStudio.RML.Models
public List<LiquidTypeColorValue> LiquidTypesR { get; set; }
+ public MachineTypes? MachineType { get; set; }
+
public RmlModel()
{
DyeingSpeed = "-";
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
index 2e39f9e12..c0318e17b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
@@ -239,7 +239,15 @@ namespace Tango.MachineStudio.RML.ViewModels
get { return _RMLFilter; }
set { _RMLFilter = value; RaisePropertyChangedAuto(); OnRMLFilterChanged(); }
}
-
+
+ private bool _loadingRmls;
+ public bool LoadingRmls
+ {
+ get { return _loadingRmls; }
+ set { _loadingRmls = value; RaisePropertyChangedAuto(); }
+ }
+
+
#endregion
#region Commands
@@ -348,105 +356,120 @@ namespace Tango.MachineStudio.RML.ViewModels
BatchConversionCommand = new RelayCommand(BatchConversion);
}
- public override async void OnApplicationReady()
+ public override void OnApplicationReady()
{
}
private async Task LoadRmls()
{
- var filter = RMLFilter.ToStringOrEmpty().ToLower();
-
- using (ObservablesContext db = ObservablesContext.CreateDefault())
+ try
{
-
- var rmls = await db.Rmls.Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter))
- .Include(x => x.Cct.FileName)
- .Include(x => x.LiquidTypesRmls)
- .Include(x => x.LiquidTypesRmls.Select(y => y.LiquidType))
- .Include(x => x.BtsrApplicationType.Name)
- .Include(x => x.BtsrYarnType.Name)
- .Include(x => x.ProcessParametersTablesGroups)
- .Select(x => new
- {
- x.Name,
- x.Guid,
- x.DisplayName,
- x.Cct.FileName,
- x.ColorConversionVersion,
- x.UseColorLibGradients,
- x.UseLightInks,
- x.HeadType,
- x.LastUpdated,
- BtsrApplicationType = x.BtsrApplicationType != null ? x.BtsrApplicationType.Name : String.Empty,
- BtsrYarnType = x.BtsrYarnType != null ? x.BtsrYarnType.Name : String.Empty,
- LiquidTypesRmls = x.LiquidTypesRmls,
- LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType),
- ProcessParametersTables = x.ProcessParametersTablesGroups
- }).ToListAsync();
-
-
- List<RmlModel> models = new List<RmlModel>();
+ LoadingRmls = true;
- //var tables = ActiveRML.GetActiveProcessGroup().ProcessParametersTables;
+ var filter = RMLFilter.ToStringOrEmpty().ToLower();
- foreach (var rml in rmls.OrderBy(x => x.Name).ToList())
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- ProcessParametersTable tableZone1 = null;
- ProcessParametersTable tableZone2 = null;
- if (rml.ProcessParametersTables != null)
+
+ var rmls = await db.Rmls.Where(x => x.Name.ToLower().Contains(filter) || x.DisplayName.ToLower().Contains(filter))
+ .Include(x => x.Cct.FileName)
+ .Include(x => x.LiquidTypesRmls)
+ .Include(x => x.LiquidTypesRmls.Select(y => y.LiquidType))
+ .Include(x => x.BtsrApplicationType.Name)
+ .Include(x => x.BtsrYarnType.Name)
+ .Include(x => x.ProcessParametersTablesGroups)
+ .Select(x => new
+ {
+ x.Name,
+ x.Guid,
+ x.DisplayName,
+ x.Cct.FileName,
+ x.ColorConversionVersion,
+ x.UseColorLibGradients,
+ x.UseLightInks,
+ x.HeadType,
+ x.LastUpdated,
+ x.MachineType,
+ BtsrApplicationType = x.BtsrApplicationType != null ? x.BtsrApplicationType.Name : String.Empty,
+ BtsrYarnType = x.BtsrYarnType != null ? x.BtsrYarnType.Name : String.Empty,
+ //LiquidTypesRmls = x.LiquidTypesRmls,
+ //LiquidTypes = x.LiquidTypesRmls.Select(y => y.LiquidType),
+ ProcessParametersTables = x.ProcessParametersTablesGroups
+ }).ToListAsync();
+
+
+ List<RmlModel> models = new List<RmlModel>();
+
+ //var tables = ActiveRML.GetActiveProcessGroup().ProcessParametersTables;
+
+ foreach (var rml in rmls.OrderBy(x => x.Name).ToList())
{
- var activeTablesGroup = rml.ProcessParametersTables.Where(x=>x.Active).FirstOrDefault();
- if ( activeTablesGroup != null)
- {
- try
+ ProcessParametersTable tableZone1 = null;
+ ProcessParametersTable tableZone2 = null;
+ if (rml.ProcessParametersTables != null)
+ {
+ var activeTablesGroup = rml.ProcessParametersTables.Where(x => x.Active).FirstOrDefault();
+ if (activeTablesGroup != null)
{
- var tables = await db.ProcessParametersTables.Where(x => x.ProcessParametersTablesGroupGuid == activeTablesGroup.Guid).OrderBy(x => x.TableIndex).ToListAsync();
- if (tables.Count > 0)
+ try
{
- tableZone1 = tables[0];
+ var tables = await db.ProcessParametersTables.Where(x => x.ProcessParametersTablesGroupGuid == activeTablesGroup.Guid).OrderBy(x => x.TableIndex).ToListAsync();
+ if (tables.Count > 0)
+ {
+ tableZone1 = tables[0];
+ }
+ if (tables.Count > 1)
+ {
+ tableZone2 = tables[1];
+ }
}
- if (tables.Count > 1)
+ catch (Exception ex)
{
- tableZone2 = tables[1];
+ LogManager.Log($"Error loading ProcessParametersTables {ex.Message}");
}
- }
- catch (Exception ex)
- {
- LogManager.Log($"Error loading ProcessParametersTables {ex.Message}");
- }
- };
- }
-
- RmlModel model = new RmlModel();
- model.Guid = rml.Guid;
- model.Name = rml.Name;
- model.LastUpdated = rml.LastUpdated;
- model.DisplayName = rml.DisplayName;
- model.CCT = rml.FileName + " v" + rml.ColorConversionVersion;
- model.UseGradients = rml.UseColorLibGradients;
- model.UseLightInks = rml.UseLightInks;
- model.HeadType = (HeadTypes)rml.HeadType;
- model.Btsr = (String.IsNullOrEmpty(rml.BtsrApplicationType) ? "N/A" : rml.BtsrApplicationType) + ", " + (String.IsNullOrEmpty(rml.BtsrYarnType) ? "N/A" : rml.BtsrYarnType);
-
- if( tableZone1 != null)
+ };
+ }
+
+ RmlModel model = new RmlModel();
+ model.Guid = rml.Guid;
+ model.Name = rml.Name;
+ model.LastUpdated = rml.LastUpdated;
+ model.DisplayName = rml.DisplayName;
+ model.CCT = rml.FileName + " v" + rml.ColorConversionVersion;
+ model.UseGradients = rml.UseColorLibGradients;
+ model.UseLightInks = rml.UseLightInks;
+ model.HeadType = (HeadTypes)rml.HeadType;
+ model.Btsr = (String.IsNullOrEmpty(rml.BtsrApplicationType) ? "N/A" : rml.BtsrApplicationType) + ", " + (String.IsNullOrEmpty(rml.BtsrYarnType) ? "N/A" : rml.BtsrYarnType);
+ model.MachineType = (MachineTypes?)rml.MachineType;
+
+ if (tableZone1 != null)
{
- model.Zone1InkUptake = String.Format($"{tableZone1.MinInkUptake}-{tableZone1.MaxInkUptake}");
+ model.Zone1InkUptake = String.Format($"{tableZone1.MinInkUptake}-{tableZone1.MaxInkUptake}");
model.DyeingSpeed = tableZone1.DyeingSpeed.ToString();
}
- if(tableZone2 != null)
+ if (tableZone2 != null)
{
model.DyeingSpeed += String.Format($"-{tableZone2.DyeingSpeed}");
model.Zone2InkUptake = tableZone2 == null ? "-" : String.Format($"{tableZone2.MinInkUptake}-{tableZone2.MaxInkUptake}");
+ }
+
+ //model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList();
+ //model.LiquidTypesR = rml.LiquidTypesRmls.OrderBy(x => x.LiquidType.Code).ToList().Select((n) => new RmlModel.LiquidTypeColorValue(){ Color = n.LiquidType.Color, LiquidTypeValue = n.MaxNlPerCm }).ToList();
+
+ models.Add(model);
}
- model.LiquidTypes = rml.LiquidTypes.OrderBy(x => x.Code).Select(x => x.Color).ToList();
- model.LiquidTypesR = rml.LiquidTypesRmls.OrderBy(x => x.LiquidType.Code).ToList().Select((n) => new RmlModel.LiquidTypeColorValue(){ Color = n.LiquidType.Color, LiquidTypeValue = n.MaxNlPerCm }).ToList();
-
- models.Add(model);
+ Rmls = models;
}
-
- Rmls = models;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error filtering rmls on RML module.");
+ }
+ finally
+ {
+ LoadingRmls = false;
}
}
@@ -730,6 +753,7 @@ namespace Tango.MachineStudio.RML.ViewModels
rml.DisplayName = name;
rml.QualificationDate = DateTime.UtcNow;
rml.Manufacturer = "Twine";
+ rml.DefaultLiquidFactor = 140;
using (ObservablesContext db = ObservablesContext.CreateDefault())
{
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
index 8447a3899..acd83cee2 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlView.xaml
@@ -125,6 +125,11 @@
<TextBlock Text="Count (den):" ></TextBlock>
<TextBlock Text="{Binding ActiveRML.DencityCount}" Foreground="Blue" ></TextBlock>
+ <TextBlock Text="Default Liquid Factor:" ></TextBlock>
+ <mahapps:NumericUpDown Minimum="1" Maximum="1000" Value="{Binding ActiveRML.DefaultLiquidFactor}" Foreground="Blue" ></mahapps:NumericUpDown>
+
+ <TextBlock Text="Machine Type:" ></TextBlock>
+ <ComboBox ItemsSource="{Binding Source={x:Type enumerations:MachineTypes},Converter={StaticResource EnumToItemsSourceConverter}}" SelectedValue="{Binding ActiveRML.ForMachineType}" SelectedValuePath="Value" DisplayMemberPath="DisplayName" Foreground="Blue" ></ComboBox>
<!--<TextBlock Text="Fiber Shape:" ></TextBlock>
<ComboBox ItemsSource="{Binding FiberShapes}" SelectedItem="{Binding ActiveRML.FiberShape,Mode=TwoWay}" DisplayMemberPath="Name"></ComboBox>-->
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
index 2c0f77937..eee16a2df 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/Views/RmlsView.xaml
@@ -9,6 +9,7 @@
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"
+ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:local="clr-namespace:Tango.MachineStudio.RML.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}">
@@ -19,6 +20,7 @@
<converters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter" />
<converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
<converters:IsNullToVisibilityConverter x:Key="IsNullToVisibilityConverter" />
+ <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</UserControl.Resources>
<Grid IsEnabled="{Binding IsFree}">
@@ -130,7 +132,8 @@
<!--<DataGridTextColumn Header="CL GR" Binding="{Binding UseGradients,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />-->
<!--<DataGridTextColumn Header="LIGHT INKS" Binding="{Binding UseLightInks,Converter={StaticResource BooleanToYesNoConverter}}" Width="Auto" />-->
<DataGridTextColumn Header="LAST UPDATED" Binding="{Binding LastUpdated,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" />
- <DataGridTemplateColumn Header="LIQUID FACTORS" Width="1*">
+ <DataGridTextColumn Header="MACHINE TYPE" Binding="{Binding MachineType,Converter={StaticResource EnumToDescriptionConverter}}" Width="Auto" />
+ <!--<DataGridTemplateColumn Header="LIQUID FACTORS" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding LiquidTypesR}" Margin="0 -5 0 0">
@@ -157,9 +160,13 @@
</ItemsControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
+ </DataGridTemplateColumn>-->
</DataGrid.Columns>
</DataGrid>
+
+ <Grid Background="#19000000" Visibility="{Binding LoadingRmls,Converter={StaticResource BooleanToVisibilityConverter}}">
+ <mahapps:ProgressRing HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100"></mahapps:ProgressRing>
+ </Grid>
</Grid>
</DockPanel>
</Grid>
diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
index 460d1f193..03bd6b656 100644
--- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
+++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs
@@ -445,5 +445,13 @@ namespace Tango.BL.DTO
get; set;
}
+ /// <summary>
+ /// machine type
+ /// </summary>
+ public Nullable<Int32> MachineType
+ {
+ get; set;
+ }
+
}
}
diff --git a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
index fdeb8f05e..3f35ed11f 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/Rml.cs
@@ -106,6 +106,21 @@ namespace Tango.BL.Entities
}
}
+ [NotMapped]
+ [JsonIgnore]
+ public MachineTypes? ForMachineType
+ {
+ get
+ {
+ return MachineType != null ? (MachineTypes?)MachineType : null;
+ }
+ set
+ {
+ MachineType = (int?)value;
+ RaisePropertyChanged(nameof(ForMachineType));
+ }
+ }
+
protected override void OnNameChanged(string name)
{
base.OnNameChanged(name);
diff --git a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
index 357be1666..59881f3d5 100644
--- a/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
+++ b/Software/Visual_Studio/Tango.BL/Entities/RmlBase.cs
@@ -111,6 +111,8 @@ namespace Tango.BL.Entities
public event EventHandler<Double> DefaultLiquidFactorChanged;
+ public event EventHandler<Nullable<Int32>> MachineTypeChanged;
+
public event EventHandler<BtsrApplicationType> BtsrApplicationTypeChanged;
public event EventHandler<BtsrYarnType> BtsrYarnTypeChanged;
@@ -1569,6 +1571,33 @@ namespace Tango.BL.Entities
}
}
+ protected Nullable<Int32> _machinetype;
+
+ /// <summary>
+ /// Gets or sets the rmlbase machine type.
+ /// </summary>
+
+ [Column("MACHINE_TYPE")]
+
+ public Nullable<Int32> MachineType
+ {
+ get
+ {
+ return _machinetype;
+ }
+
+ set
+ {
+ if (_machinetype != value)
+ {
+ _machinetype = value;
+
+ OnMachineTypeChanged(value);
+
+ }
+ }
+ }
+
protected BtsrApplicationType _btsrapplicationtype;
/// <summary>
@@ -2500,6 +2529,15 @@ namespace Tango.BL.Entities
}
/// <summary>
+ /// Called when the MachineType has changed.
+ /// </summary>
+ protected virtual void OnMachineTypeChanged(Nullable<Int32> machinetype)
+ {
+ MachineTypeChanged?.Invoke(this, machinetype);
+ RaisePropertyChanged(nameof(MachineType));
+ }
+
+ /// <summary>
/// Called when the BtsrApplicationType has changed.
/// </summary>
protected virtual void OnBtsrApplicationTypeChanged(BtsrApplicationType btsrapplicationtype)
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
index f6f747893..7f73b5575 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RML.cs
@@ -83,6 +83,7 @@ namespace Tango.DAL.Remote.DB
public string BTSR_YARN_TYPE_GUID { get; set; }
public double BTSR_TENSION_ERROR { get; set; }
public double DEFAULT_LIQUID_FACTOR { get; set; }
+ public Nullable<int> MACHINE_TYPE { get; set; }
public virtual BTSR_APPLICATION_TYPES BTSR_APPLICATION_TYPES { get; set; }
public virtual BTSR_YARN_TYPES BTSR_YARN_TYPES { 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 8ed5c4fed..93ca57214 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -1459,6 +1459,7 @@
<Property Name="BTSR_YARN_TYPE_GUID" Type="varchar" MaxLength="36" />
<Property Name="BTSR_TENSION_ERROR" Type="float" Nullable="false" />
<Property Name="DEFAULT_LIQUID_FACTOR" Type="float" Nullable="false" />
+ <Property Name="MACHINE_TYPE" Type="int" />
</EntityType>
<EntityType Name="RMLS_EXTENSIONS">
<Key>
@@ -7109,6 +7110,7 @@
<Property Name="BTSR_YARN_TYPE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" />
<Property Name="BTSR_TENSION_ERROR" Type="Double" Nullable="false" />
<Property Name="DEFAULT_LIQUID_FACTOR" Type="Double" Nullable="false" />
+ <Property Name="MACHINE_TYPE" Type="Int32" />
<NavigationProperty Name="BTSR_APPLICATION_TYPES" Relationship="RemoteModel.FK_RMLS_BTSR_APPLICATION_TYPES" FromRole="RML" ToRole="BTSR_APPLICATION_TYPES" />
<NavigationProperty Name="BTSR_YARN_TYPES" Relationship="RemoteModel.FK_RMLS_BTSR_YARN_TYPES" FromRole="RML" ToRole="BTSR_YARN_TYPES" />
<NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_RMLS" FromRole="RML" ToRole="CAT" />
@@ -10593,6 +10595,7 @@
<EntitySetMapping Name="RMLS">
<EntityTypeMapping TypeName="RemoteModel.RML">
<MappingFragment StoreEntitySet="RMLS">
+ <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" />
<ScalarProperty Name="DEFAULT_LIQUID_FACTOR" ColumnName="DEFAULT_LIQUID_FACTOR" />
<ScalarProperty Name="BTSR_TENSION_ERROR" ColumnName="BTSR_TENSION_ERROR" />
<ScalarProperty Name="BTSR_YARN_TYPE_GUID" ColumnName="BTSR_YARN_TYPE_GUID" />
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 99c611661..b032b64d6 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,103 +5,103 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="58">
- <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="16.5" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="89.75" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="72.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="75.125" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="52.375" />
- <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="8.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="21.25" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="42" />
- <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="29.875" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="9" PointY="66.5" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="26" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="12.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="6" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="21.875" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="14.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="13.75" PointY="13.25" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="42" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="58.125" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="93.75" />
- <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="35.75" />
- <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="69.25" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="6.75" PointY="7.875" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="9" PointY="7.25" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="69.25" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="69.5" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="15.5" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="26.375" />
- <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="12.875" />
- <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="45.25" />
- <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="2.75" PointY="16.25" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="97.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="74.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="105.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="82.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="90.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="82.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="10.5" PointY="84.75" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="12.75" PointY="75.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="7.5" PointY="74.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="9.75" PointY="76.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="86.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="78.5" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="78.125" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="101.875" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="78.625" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="9" PointY="12" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="11.25" PointY="37" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="18.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22.25" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="36.125" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="16.125" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="22.125" />
- <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="21.5" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="15.75" PointY="13.25" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="9.375" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="49.125" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="57" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="42.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="33.125" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="18.5" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="39" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="9" PointY="45.625" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="84.625" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="1.75" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.25" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.5" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="13.75" PointY="9.5" />
- <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="16" PointY="9.625" />
- <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="6" PointY="1.5" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.75" />
- <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="25.625" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="5.625" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="5.75" />
- <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="13.75" PointY="20.25" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="26" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26.25" />
- <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="36" />
- <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="12.625" />
- <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="30.375" />
- <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="36.5" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="30.25" />
- <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="47.5" />
- <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="20.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="20.75" PointY="4.25" />
- <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="31.625" />
- <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="20.75" PointY="9.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="20.75" PointY="13.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="16.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="19.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="22.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="22.75" PointY="6.25" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="15.25" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="16.75" />
- <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="3.75" PointY="2" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="38.875" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="54.875" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="89.25" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="76" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="48.5" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="79" />
+ <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="10.75" PointY="9" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="21" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="38.75" />
+ <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="12" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="43.125" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="21.75" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="45" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="1.5" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="2" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="25.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="2.75" PointY="13" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="4.75" PointY="13" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="33.625" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="54.25" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="93.25" />
+ <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="30.5" />
+ <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="68.75" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="98.125" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="97.5" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="68.5" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="83.125" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="35.875" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="21.5" />
+ <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="34.625" />
+ <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="15.25" />
+ <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="12.75" PointY="9" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="102.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="72.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="8.5" PointY="89.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="10.75" PointY="68.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="5.5" PointY="85.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="7.75" PointY="67.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="93.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="72.75" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="1.5" PointY="106.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="3.75" PointY="77.25" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="93.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="6.75" PointY="76.875" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="71.375" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="89.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="73" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="39.875" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="34.625" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="14.75" PointY="1" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="26.25" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="7.125" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="25.875" />
+ <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="29.5" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="11.75" PointY="13" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="44.375" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="64.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="56.5" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="50.5" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="18.625" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="32.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="42.125" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="36.25" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="84.125" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="63.5" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="50.125" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56.375" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="8.75" PointY="5.25" />
+ <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="11" PointY="5.5" />
+ <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="11" PointY="1.25" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.5" />
+ <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="29.375" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="59.5" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="59.5" />
+ <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="16.75" PointY="1" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.75" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26" />
+ <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="6" PointY="17.75" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="8.25" PointY="10" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="8.25" PointY="22.125" />
+ <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="11.25" PointY="17.25" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="16.125" />
+ <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="40.125" />
+ <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="5.75" PointY="7" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="16.75" PointY="5" />
+ <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="50.375" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="16.75" PointY="10" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="14" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="17" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="18.75" PointY="1" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="6" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="11" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="37.125" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="38.5" />
+ <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="8.75" PointY="1.75" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="43.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.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
index e128a5949..4f442152d 100644
--- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
+++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs
@@ -15,6 +15,7 @@ using Tango.BL.Enumerations;
using Tango.Core;
using Tango.Core.ExtensionMethods;
using Tango.Integration.Operation;
+using Tango.Logging;
using Tango.PMR.MachineStatus;
using Tango.PMR.Printing;
@@ -399,44 +400,32 @@ namespace Tango.Integration.JobRuns
}
}
- private void SetJobRunLiquidQuantities(JobRun run, List<BL.ValueObjects.JobRunLiquidQuantity> quantities, bool update = false)
+
+ public void SetJobRunLiquidQuantities(JobRun run, IEnumerable<BL.ValueObjects.JobRunLiquidQuantity> quantities, bool update = false)
{
- if (run == null || quantities == null)
- return;
+ if (run == null || quantities == null) return;
- // Map each LiquidType to the corresponding JobRun property updater
- var setters = new Dictionary<LiquidTypes, Action<long>>
- {
- { LiquidTypes.Cyan, q => run.CyanQuantity = update ? run.CyanQuantity + q : q },
- { LiquidTypes.Magenta, q => run.MagentaQuantity = update ? run.MagentaQuantity + q : q },
- { LiquidTypes.Yellow, q => run.YellowQuantity = update ? run.YellowQuantity + q : q },
- { LiquidTypes.Black, q => run.BlackQuantity = update ? run.BlackQuantity + q : q },
- { LiquidTypes.Transparent, q => run.TransparentQuantity = update ? run.TransparentQuantity + q : q },
- { LiquidTypes.Lubricant, q => run.LubricantQuantity = update ? run.LubricantQuantity + q : q },
- { LiquidTypes.Cleaner, q => run.CleanerQuantity = update ? run.CleanerQuantity + q : q },
- { LiquidTypes.LightCyan, q => run.LightCyanQuantity = update ? run.LightCyanQuantity + q : q },
- { LiquidTypes.LightMagenta, q => run.LightMagentaQuantity = update ? run.LightMagentaQuantity + q : q },
- { LiquidTypes.LightYellow, q => run.LightYellowQuantity = update ? run.LightYellowQuantity + q : q },
- { LiquidTypes.Blue, q => run.BlueQuantity = update ? run.BlueQuantity + q : q },
- { LiquidTypes.LightBlue, q => run.LightBlueQuantity = update ? run.LightBlueQuantity + q : q },
- { LiquidTypes.Orange, q => run.OrangeQuantity = update ? run.OrangeQuantity + q : q },
- { LiquidTypes.LightOrange, q => run.LightOrangeQuantity = update ? run.LightOrangeQuantity + q : q },
- { LiquidTypes.Rubine, q => run.RubineQuantity = update ? run.RubineQuantity + q : q },
- { LiquidTypes.LightRubine, q => run.LightRubineQuantity = update ? run.LightRubineQuantity + q : q },
- { LiquidTypes.Navy, q => run.NavyQuantity = update ? run.NavyQuantity + q : q },
- { LiquidTypes.Violet, q => run.VioletQuantity = update ? run.VioletQuantity + q : q },
- { LiquidTypes.TWCyan, q => run.TwCyanQuantity = update ? run.VioletQuantity + q : q }
- };
+ var props = run.GetType()
+ .GetProperties(BindingFlags.Instance | BindingFlags.Public)
+ .Where(p => p.CanRead && p.CanWrite && p.PropertyType == typeof(long))
+ .Where(p => p.Name.EndsWith("Quantity", StringComparison.OrdinalIgnoreCase))
+ .ToDictionary(p => p.Name.ToLower(), p => p);
- foreach (var liquidType in setters.Keys)
+ foreach (var q in quantities)
{
- var quantityObj = quantities.SingleOrDefault(x => x.LiquidType == liquidType);
- var quantity = quantityObj?.Quantity ?? 0;
- setters[liquidType](quantity);
+ var key = (q.LiquidType.ToString() + "Quantity").ToLower();
+ if (!props.TryGetValue(key, out var prop))
+ {
+ LogManager.Log($"Could not locate liquid quantity field for {q.LiquidType} on JobRun object.", LogCategory.Error);
+ continue;
+ }
+
+ var currentVal = (long)(prop.GetValue(run) ?? 0L);
+ var newVal = update ? currentVal + q.Quantity : q.Quantity;
+ prop.SetValue(run, newVal);
}
}
-
#endregion
#region Public Methods
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
index a5b64e7d9..0e232786a 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs b/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
index 8d8023c95..81bff1eb4 100644
--- a/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
+++ b/Software/Visual_Studio/Tango.Telemetry/Mappers/JobRunMapper.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Data.Entity;
using System.IO;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
@@ -63,6 +64,8 @@ namespace Tango.Telemetry.Mappers
}
}
+
+
public static TelemetryJobRun MapJobRun(JobRun run)
{
Init();
@@ -106,23 +109,7 @@ namespace Tango.Telemetry.Mappers
tRun.Status = run.JobRunStatus.ToString();
- tRun.OutputCyan = run.CyanQuantity;
- tRun.OutputMagenta = run.MagentaQuantity;
- tRun.OutputYellow = run.YellowQuantity;
- tRun.OutputBlack = run.BlackQuantity;
- tRun.OutputLightCyan = run.LightCyanQuantity;
- tRun.OutputLightMagenta = run.LightMagentaQuantity;
- tRun.OutputLightYellow = run.LightYellowQuantity;
- tRun.OutputBlue = run.BlueQuantity;
- tRun.OutputLightBlue = run.LightBlueQuantity;
- tRun.OutputOrange = run.OrangeQuantity;
- tRun.OutputLightOrange = run.LightOrangeQuantity;
- tRun.OutputRubine = run.RubineQuantity;
- tRun.OutputLightRubine = run.LightRubineQuantity;
- tRun.OutputNavy = run.NavyQuantity;
- tRun.OutputViolet = run.VioletQuantity;
- tRun.OutputTransparent = run.TransparentQuantity;
- tRun.OutputLubricant = run.LubricantQuantity;
+ MapToOutputs(run, tRun);
tRun.FailureReason = run.FailedMessage;
@@ -319,5 +306,38 @@ namespace Tango.Telemetry.Mappers
return tRun;
}
+
+ public static void MapToOutputs(JobRun run, TelemetryJobRun tRun)
+ {
+ if (run == null || tRun == null) return;
+
+ var runProps = run.GetType()
+ .GetProperties(BindingFlags.Instance | BindingFlags.Public)
+ .Where(p => p.CanRead && p.PropertyType == typeof(long))
+ .Where(p => p.Name.EndsWith("Quantity", StringComparison.OrdinalIgnoreCase))
+ .ToDictionary(p => p.Name.ToLower(), p => p);
+
+ var tRunProps = tRun.GetType()
+ .GetProperties(BindingFlags.Instance | BindingFlags.Public)
+ .Where(p => p.CanWrite && p.PropertyType == typeof(long))
+ .Where(p => p.Name.StartsWith("Output", StringComparison.OrdinalIgnoreCase))
+ .ToDictionary(p => p.Name.ToLower(), p => p);
+
+ foreach (var tProp in tRunProps.Values)
+ {
+ // "OutputCyan" -> "CyanQuantity"
+ var baseName = tProp.Name.Substring("Output".Length);
+ var runKey = (baseName + "Quantity").ToLower();
+
+ if (!runProps.TryGetValue(runKey, out var runProp))
+ {
+ LogManager.Default.Log($"Could not locate liquid quantity field {runKey} for JobRun Telemetry object.", LogCategory.Warning);
+ continue;
+ }
+
+ var value = (long)(runProp.GetValue(run) ?? 0L);
+ tProp.SetValue(tRun, value);
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
index c5f4da8ea..1c52fb2c4 100644
--- a/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
+++ b/Software/Visual_Studio/Tango.Telemetry/Telemetries/TelemetryJobRun.cs
@@ -122,6 +122,46 @@ namespace Tango.Telemetry.Telemetries
public long OutputTransparent { get; set; }
public long OutputLubricant { get; set; }
+ public long OutputTwTransparentInk { get; set; }
+ public long OutputC1Ti { get; set; }
+ public long OutputTwCyan { get; set; }
+ public long OutputTwLightCyan { get; set; }
+ public long OutputTwMagenta { get; set; }
+ public long OutputTwLightMagenta { get; set; }
+ public long OutputTwYellow { get; set; }
+ public long OutputTwLightYellow { get; set; }
+ public long OutputC1Yellow { get; set; }
+ public long OutputC1LightYellow { get; set; }
+ public long OutputTwBlack { get; set; }
+ public long OutputTwViolet { get; set; }
+ public long OutputTwLightViolet { get; set; }
+ public long OutputCtBlue { get; set; }
+ public long OutputCtLightBlue { get; set; }
+ public long OutputCtRubine { get; set; }
+ public long OutputCtLightRubine { get; set; }
+ public long OutputCtOrange { get; set; }
+ public long OutputCtLightOrange { get; set; }
+ public long OutputCtNavy { get; set; }
+ public long OutputHdBlue { get; set; }
+ public long OutputHdLightBlue { get; set; }
+ public long OutputHdRubine { get; set; }
+ public long OutputHdLightRubine { get; set; }
+ public long OutputHdOrange { get; set; }
+ public long OutputHdLightOrange { get; set; }
+ public long OutputHdNavy { get; set; }
+ public long OutputHdLightNavy { get; set; }
+ public long OutputAmBlue { get; set; }
+ public long OutputAmLightBlue { get; set; }
+ public long OutputAmRed { get; set; }
+ public long OutputAmLightRed { get; set; }
+ public long OutputAmOrange { get; set; }
+ public long OutputAmLightOrange { get; set; }
+ public long OutputAmYellow { get; set; }
+ public long OutputAmLightYellow { get; set; }
+ public long OutputAmBlack { get; set; }
+
+
+
//The error that has occurred when Status = "Failed"
public String FailureReason { get; set; }