diff --git a/Step.Config/Config/toolManagerConfig.xml b/Step.Config/Config/toolManagerConfig.xml
new file mode 100644
index 00000000..6ffb67a7
--- /dev/null
+++ b/Step.Config/Config/toolManagerConfig.xml
@@ -0,0 +1,15 @@
+
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
\ No newline at end of file
diff --git a/Step.Config/Config/toolManagerConfigValidator.xsd b/Step.Config/Config/toolManagerConfigValidator.xsd
new file mode 100644
index 00000000..eca1defd
--- /dev/null
+++ b/Step.Config/Config/toolManagerConfigValidator.xsd
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Step.Config/ServerConfig.cs b/Step.Config/ServerConfig.cs
index 866f3fd4..59c1cc79 100644
--- a/Step.Config/ServerConfig.cs
+++ b/Step.Config/ServerConfig.cs
@@ -23,6 +23,7 @@ namespace Step.Config
public static List NcSoftKeysConfig;
public static List InitialAlarmsConfig;
public static List HeadsConfig;
+ public static ToolManagerConfigModel ToolManagerConfig;
public static AreasConfigModel ProductionConfig;
public static AreasConfigModel ToolingConfig;
diff --git a/Step.Config/ServerConfigController.cs b/Step.Config/ServerConfigController.cs
index 42f0cddb..62d64571 100644
--- a/Step.Config/ServerConfigController.cs
+++ b/Step.Config/ServerConfigController.cs
@@ -24,6 +24,7 @@ namespace Step.Config
ReadUserSoftKeysConfig();
ReadAlarmsConfig();
ReadHeadsConfig();
+ ReadToolManagerConfig();
}
catch (System.Xml.XmlException ex)
{
@@ -305,6 +306,30 @@ namespace Step.Config
})
.ToList();
}
+ private static void ReadToolManagerConfig()
+ {
+ XDocument xmlConfigFile = GetXmlHandlerWithValidator(TOOL_MANAGER_CONFIG_SCHEMA_PATH, TOOL_MANAGER_CONFIG_PATH);
+
+ // Read config from XML file
+ ToolManagerConfig = xmlConfigFile
+ .Elements()
+ .Select(x => new ToolManagerConfigModel()
+ {
+ FamilyOptIsActive = Convert.ToBoolean(x.Element("familyOptIsActive").Value),
+ ShankOptIsActive = Convert.ToBoolean(x.Element("shankOptIsActive").Value),
+ MagPositionIsActive = Convert.ToBoolean(x.Element("magPositionOptIsActive").Value),
+ OffsetOptIsActive = Convert.ToBoolean(x.Element("offsetOptIsActive").Value),
+ ReviveOptIsActive = Convert.ToBoolean(x.Element("reviveOptIsActive").Value),
+ GammaOptIsActive = Convert.ToBoolean(x.Element("gammaOptIsActive").Value),
+ LifeOptIsActive = Convert.ToBoolean(x.Element("lifeOptIsActive").Value),
+ TcpOptIsActive = Convert.ToBoolean(x.Element("tcpOptIsActive").Value),
+ CoolingOptIsActive = Convert.ToBoolean(x.Element("coolingOptIsActive").Value),
+ MultidimensionalShankOptIsActive = Convert.ToBoolean(x.Element("multidimensionalShankOptIsActive").Value),
+ SelfAdaptivePathOptIsActive = Convert.ToBoolean(x.Element("selfAdaptivePathOptIsActive").Value),
+ DynamicCompensationOptIsActive = Convert.ToBoolean(x.Element("dynamicCompensationOptIsActive").Value),
+ })
+ .FirstOrDefault();
+ }
#endregion Read config from file from configuration
}
diff --git a/Step.Config/Step.Config.csproj b/Step.Config/Step.Config.csproj
index 4c735507..f3fe896a 100644
--- a/Step.Config/Step.Config.csproj
+++ b/Step.Config/Step.Config.csproj
@@ -47,6 +47,9 @@
+
+ PreserveNewest
+
PreserveNewest
Designer
@@ -93,6 +96,10 @@
Designer
Always
+
+ Designer
+ Always
+
diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs
index 551a35d7..4139b3c7 100644
--- a/Step.Database/Controllers/NcToolManagerController.cs
+++ b/Step.Database/Controllers/NcToolManagerController.cs
@@ -58,7 +58,7 @@ namespace Step.Database.Controllers
.FirstOrDefault();
}
- public List GetTools()
+ public List GetToolsWithDependencies()
{
List tools = dbCtx
.Tools
@@ -69,13 +69,43 @@ namespace Step.Database.Controllers
return tools;
}
- public List GetShanks()
+ public List FindTools()
+ {
+ List tools = dbCtx
+ .Tools
+ .ToList();
+
+ return tools;
+ }
+
+ public List FindShanks()
{
List shanks = dbCtx.Shanks.Include("MagazinePosition").ToList();
return shanks;
}
+ public List GetShanks()
+ {
+ // Get shank from database
+ List dbShanks = dbCtx
+ .Shanks
+ .Include("Tools")
+ .ToList();
+
+ // Populate db shanks
+ List dtoShanks = new List();
+ foreach (var shank in dbShanks)
+ {
+ //dbCtx.Shanks.Attach(shank);
+ DTONcShankModel dtoShank = (DTONcShankModel)shank;
+
+ dtoShanks.Add(dtoShank);
+ }
+
+ return dtoShanks;
+ }
+
public List GetPositions()
{
List positions = dbCtx.MagazinePositions.ToList();
@@ -107,7 +137,25 @@ namespace Step.Database.Controllers
return offsets;
}
-
+
+ public List GetMountedShanks(int magazineId)
+ {
+ List dtoShanks = GetShanks()
+ .Where(x => x.MagazineId != null)
+ .ToList();
+
+ return dtoShanks;
+ }
+
+ public List GetAvailableShanks()
+ {
+ List dtoShanks = GetShanks()
+ .Where(x => x.MagazineId == null && x.Tools.Count > 0)
+ .ToList();
+
+ return dtoShanks;
+ }
+
public NcToolModel AddTool(DTONcToolModel dtoTool)
{
NcToolModel tool = (NcToolModel)dtoTool;
@@ -208,29 +256,6 @@ namespace Step.Database.Controllers
dbCtx.SaveChanges();
}
- public List GetMountedShanks(int magazineId)
- {
- return dbCtx
- .Shanks
- .Where(x => x.MagazineId == magazineId)
- .Select(x => new DTONcShankModel()
- {
- Id = x.ShankId,
- Balluf = x.Balluf,
- MagazineId = x.MagazineId,
- PositionId = x.PositionId,
- MagazinePositionType = x.MagazinePositionType
- })
- .ToList();
- }
-
- public List GetAvailableShanks()
- {
- return dbCtx
- .Shanks
- .Where(x => x.MagazineId == null)
- .ToList();
- }
public DTONcShankModel LoadShankInMagazine(byte magazineId, byte positionId, NcShankModel shank)
{
diff --git a/Step.Model/ConfigModels/ToolManagerConfigModel.cs b/Step.Model/ConfigModels/ToolManagerConfigModel.cs
new file mode 100644
index 00000000..0279e931
--- /dev/null
+++ b/Step.Model/ConfigModels/ToolManagerConfigModel.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Step.Model.ConfigModels
+{
+ public class ToolManagerConfigModel
+ {
+ public bool FamilyOptIsActive { get; set; }
+ public bool ShankOptIsActive { get; set; }
+ public bool MagPositionIsActive { get; set; }
+ public bool OffsetOptIsActive { get; set; }
+ public bool ReviveOptIsActive { get; set; }
+ public bool GammaOptIsActive { get; set; }
+ public bool LifeOptIsActive { get; set; }
+ public bool TcpOptIsActive { get; set; }
+ public bool CoolingOptIsActive { get; set; }
+ public bool MultidimensionalShankOptIsActive { get; set; }
+ public bool SelfAdaptivePathOptIsActive { get; set; }
+ public bool DynamicCompensationOptIsActive { get; set; }
+ }
+}
diff --git a/Step.Model/ConfigModels/ToolTableConfigModel.cs b/Step.Model/ConfigModels/ToolTableConfigModel.cs
deleted file mode 100644
index cfd1fa2c..00000000
--- a/Step.Model/ConfigModels/ToolTableConfigModel.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Step.Model.ConfigModels
-{
- public class ToolTableConfigModel
- {
- public bool FamilyOption;
- public bool MultiToolOption;
- public bool MagazinePosition;
- }
-}
diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs
index 53218bf7..856275b5 100644
--- a/Step.Model/Constants.cs
+++ b/Step.Model/Constants.cs
@@ -126,6 +126,9 @@ namespace Step.Model
public const string NC_SOFTKEYS_CONFIG_SCHEMA_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfigValidator.xsd";
public const string NC_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfig.xml";
+ public const string TOOL_MANAGER_CONFIG_SCHEMA_PATH = CONFIG_DIRECTORY + "toolManagerConfigValidator.xsd";
+ public const string TOOL_MANAGER_CONFIG_PATH = CONFIG_DIRECTORY + "toolManagerConfig.xml";
+
public static string WEBSITE_DIRECTORY = Path.Combine(BASE_PATH, "..", "wwwroot");
public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\";
public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd";
diff --git a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs
index 6f224e94..eaaeb46e 100644
--- a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs
+++ b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs
@@ -23,16 +23,32 @@ namespace Step.Model.DTOModels.ToolModels
[Range(1, byte.MaxValue)]
public byte? PositionId { get; set; }
-
+
+ public virtual List Tools { get; set; }
+
+
+ public DTONcShankModel()
+ {
+ Tools = new List();
+ }
+
public static explicit operator DTONcShankModel(NcShankModel obj)
{
+ List tools = new List();
+
+ foreach (var tool in obj.Tools)
+ {
+ tools.Add((DTONcToolModel)tool);
+ }
+
return new DTONcShankModel()
{
Id = obj.ShankId,
Balluf = obj.Balluf,
MagazinePositionType = obj.MagazinePositionType,
MagazineId = obj.MagazineId,
- PositionId = obj.PositionId
+ PositionId = obj.PositionId,
+ Tools = tools
};
}
diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs
index f8bab197..f8ffefeb 100644
--- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs
+++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs
@@ -36,6 +36,7 @@ namespace Step.Model.DTOModels.ToolModels
{
return new DTONcToolModel()
{
+ Id = obj.ToolId,
FamilyId = obj.FamilyId,
ShankId = obj.ShankId.Value,
Type = obj.Type,
@@ -49,6 +50,7 @@ namespace Step.Model.DTOModels.ToolModels
{
return new NcToolModel()
{
+ ToolId = obj.Id,
FamilyId = obj.FamilyId,
ShankId = obj.ShankId,
Type = obj.Type,
diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj
index 7dac540f..9b8042c3 100644
--- a/Step.Model/Step.Model.csproj
+++ b/Step.Model/Step.Model.csproj
@@ -67,6 +67,7 @@
+
diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs
index 972e9191..813019c3 100644
--- a/Step/Controllers/WebApi/NcToolManagerController.cs
+++ b/Step/Controllers/WebApi/NcToolManagerController.cs
@@ -5,6 +5,7 @@ using Step.NC;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Http;
+using static Step.Config.ServerConfig;
namespace Step.Controllers.WebApi
{
@@ -18,7 +19,7 @@ namespace Step.Controllers.WebApi
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
- List tools = toolsManager.GetTools();
+ List tools = toolsManager.GetToolsWithDependencies();
return Ok(tools);
}
@@ -101,9 +102,7 @@ namespace Step.Controllers.WebApi
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
- List shanks = toolsManager.GetShanks();
-
- return Ok(shanks);
+ return Ok(toolsManager.GetShanks());
}
}
@@ -305,7 +304,7 @@ namespace Step.Controllers.WebApi
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
- List shanks = toolsManager.GetAvailableShanks();
+ List shanks = toolsManager.GetAvailableShanks();
return Ok(shanks);
}