This commit is contained in:
Paolo Possanzini
2018-09-21 08:37:39 +02:00
42 changed files with 424 additions and 67 deletions
+1 -1
View File
@@ -462,7 +462,7 @@ namespace CMS_Client.Browser_Tools
form.Add(new ByteArrayContent(filecontent), "file", fileName);
if (imagecontent != null)
form.Add(new ByteArrayContent(imagecontent), "image", imageName);
// Add reps to the form-data
form.Add(new StringContent(reps.ToString()), "reps");
//Send them
+2 -2
View File
@@ -127,8 +127,8 @@
<Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
+1 -1
View File
@@ -3,5 +3,5 @@
<package id="MetroModernUI" version="1.4.0.0" targetFramework="net462" />
<package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.2" targetFramework="net462" />
<package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net462" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net462" />
</packages>
Binary file not shown.
+1 -1
View File
@@ -4,7 +4,7 @@
<xs:complexType>
<xs:sequence>
<!-- Maintenance -->
<!-- Heads -->
<xs:element name="head" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<macros>
<macro>Macro 1</macro>
<macro>Macro 2</macro>
<macro>Macro 3</macro>
</macros>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="macros">
<xs:complexType>
<xs:sequence>
<!-- Macros -->
<xs:element name="macro" minOccurs="0" maxOccurs="unbounded" type="xs:string">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Language Type -->
<xs:complexType name="langType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="langKey" use="required" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
+2
View File
@@ -32,5 +32,7 @@ namespace Step.Config
public static AreasConfigModel MaintenanceConfig;
public static AreasConfigModel UtilitiesConfig;
public static AreasConfigModel ScadaConfig;
public static List<string> MacrosConfig;
}
}
+13
View File
@@ -28,6 +28,7 @@ namespace Step.Config
ReadAlarmsConfig();
ReadHeadsConfig();
ReadToolManagerConfig();
ReadMacros();
}
catch (System.Xml.XmlException ex)
{
@@ -385,6 +386,18 @@ namespace Step.Config
.FirstOrDefault();
}
public static void ReadMacros()
{
XDocument xmlConfigFile = GetXmlHandlerWithValidator(MACROS_CONFIG_SCHEMA_PATH, MACROS_CONFIG_PATH);
// Read config from XML file
MacrosConfig = xmlConfigFile
.Descendants("macros")
.Elements()
.Select(x => x.Value)
.ToList();
}
#endregion Read config from file from configuration
}
}
+9
View File
@@ -42,6 +42,10 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Content Include="Config\macrosConfig.xml">
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ServerConfig.cs" />
<Compile Include="ServerConfigController.cs" />
@@ -115,5 +119,10 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Config\macrosConfigValidator.xsd">
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+1
View File
@@ -87,6 +87,7 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Resources\SinumerikHmi.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.10.4.0" newVersion="6.10.4.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+1 -1
View File
@@ -5,7 +5,7 @@
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"/>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.10.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>
+9 -1
View File
@@ -10,8 +10,13 @@ namespace Step.Model
public static readonly string[] VALID_IMAGE_EXTENSIONS = { ".jpg", ".jpeg", ".png" };
public const double EPSILON = 0.001;
public static string QUEUE_FILE_NAME = "pp";
public const string JOB_MAIN_FILENAME = "main.cnc";
public const string JOB_METADATA_FILENAME = "metadata.json";
public static String JOB_OPENING_PATH = BASE_PATH + "TempJob\\";
public enum ROLE_IDS
{
CMS_SERVICE_ONLY = 1,
@@ -140,6 +145,9 @@ namespace Step.Model
public const string TOOL_MANAGER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "toolManagerConfigValidator.xsd";
public const string TOOL_MANAGER_CONFIG_PATH = CONFIG_DIRECTORY + "toolManagerConfig.xml";
public const string MACROS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "macrosConfigValidator.xsd";
public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.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";
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOGenericParamModel
{
public List<DTOImageParamModel> Images;
public string Description;
public TimeSpan ExecutionTime;
public DTOGenericParamModel()
{
Images = new List<DTOImageParamModel>();
}
}
}
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOImageParamModel
{
public string Name;
public string Base64;
}
}
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOJobCustomParamModel
{
public string Name;
public string Type;
public List<string> SelectionList;
public int Value;
public DTOJobCustomParamModel()
{
SelectionList = new List<string>();
}
}
}
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOJobModel
{
public string Name;
public DateTime LastEditTimestamp;
public string IsoMainProgram;
public DTOMetadataModel Metadata;
public DTOJobModel()
{
Metadata = new DTOMetadataModel();
}
}
}
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOMetadataFieldsModel
{
public string Description;
public TimeSpan ExecutionTime;
public List<int> Tools;
public List<DTOJobCustomParamModel> Customs;
public DTOMetadataFieldsModel()
{
Tools = new List<int>();
Customs = new List<DTOJobCustomParamModel>();
}
}
}
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step.Model.DTOModels.JobModels
{
public class DTOMetadataModel
{
public DTOGenericParamModel Generics;
public List<int> Tools;
public List<DTOJobCustomParamModel> Customs;
public DTOMetadataModel()
{
Generics = new DTOGenericParamModel();
Tools = new List<int>();
Customs = new List<DTOJobCustomParamModel>();
}
}
}
+6
View File
@@ -94,7 +94,13 @@
<Compile Include="DTOModels\DTOAxesModel.cs" />
<Compile Include="DTOModels\DTOAxisNameModel.cs" />
<Compile Include="DTOModels\DTOClientConfigurationModel.cs" />
<Compile Include="DTOModels\JobModels\DTOGenericParamModel.cs" />
<Compile Include="DTOModels\JobModels\DTOImageParamModel.cs" />
<Compile Include="DTOModels\JobModels\DTOJobCustomParamModel.cs" />
<Compile Include="DTOModels\JobModels\DTOJobModel.cs" />
<Compile Include="DTOModels\DTOQueueModel.cs" />
<Compile Include="DTOModels\JobModels\DTOMetadataFieldsModel.cs" />
<Compile Include="DTOModels\JobModels\DTOMetadataModel.cs" />
<Compile Include="DTOModels\ToolModels\DTONewToolDataModel.cs" />
<Compile Include="DTOModels\MaintenanceModels\DTOExpiredMaintenanceModel.cs" />
<Compile Include="DTOModels\DTOHeadModel.cs" />
+13 -8
View File
@@ -317,12 +317,12 @@ namespace Step.NC
if (item.Status == QUEUE_STATUS.WAITING_OPERATOR)
PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].Status = QUEUE_ITEM_STATUS.WAITING_OPERATOR;
}
}
}
// Update data
using (QueueController queueController = new QueueController())
{
queueController.UpdateQueue();
}
//using (QueueController queueController = new QueueController())
//{
// queueController.UpdateQueue();
//}
return NO_ERROR;
}
@@ -379,10 +379,11 @@ namespace Step.NC
{
itemId = itemId - 1;
// Update queue running index
var a = QueueRunningIndexes[processId];
// Update queue running index after move an item
if (itemId < QueueRunningIndexes[processId] && newIndex >= QueueRunningIndexes[processId])
QueueRunningIndexes[processId] -= 1;
if (newIndex <= QueueRunningIndexes[processId] && itemId > QueueRunningIndexes[processId])
if (newIndex < QueueRunningIndexes[processId] && itemId > QueueRunningIndexes[processId])
QueueRunningIndexes[processId] += 1;
queue = new List<DTOQueueModel>();
@@ -1267,6 +1268,7 @@ namespace Step.NC
{
config.FamilyOptionActive = true;
config.MultitoolOptionActive = true;
config.OffsetOptionActive = true;
List<string> categories = new List<string>();
if (!ToolManagerConfig.ShankOpt)
@@ -1281,13 +1283,16 @@ namespace Step.NC
config.FamilyOptionActive = false;
categories.Add("family");
config.ToolsConfiguration = config.ToolsConfiguration.Where(x => !(x.Name == "familyId")).ToList();
config.ToolsConfiguration = config.ToolsConfiguration.Concat(config.FamiliesConfiguration.FamilyConfiguration).ToList();
config.ToolsConfiguration = config.FamiliesConfiguration.FamilyConfiguration.Concat(config.ToolsConfiguration).ToList();
}
else
{
config.ToolsConfiguration = config.ToolsConfiguration.Concat(config.FamiliesConfiguration.FamilyReadOnlyConfiguration).ToList();
}
if(!ToolManagerConfig.OffsetOpt)
config.OffsetOptionActive = false;
if (!ToolManagerConfig.OffsetOpt)
categories.Add("offset");
+1
View File
@@ -51,6 +51,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Language\ERR_english.INI">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.10.4.0" newVersion="6.10.4.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+5
View File
@@ -35,11 +35,16 @@
<Reference Include="MySql.Data, Version=6.10.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.6.10.4\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
+9 -3
View File
@@ -145,8 +145,8 @@
<tooling_equipment_newlabel>Creazione Nuovo Utensile</tooling_equipment_newlabel>
<siemens_tooling_edgesdata_label_edit>Modifica Tagliente n. %d</siemens_tooling_edgesdata_label_edit>
<tooling_edgesdata_label_edit>Modifica Offset n. %d</tooling_edgesdata_label_edit>
<tooling_edgesdata_label_new>Creazione nuovo Tagliente</tooling_edgesdata_label_new>
<siemens_tooling_edgesdata_label_new>Associazionie nuovo Offset</siemens_tooling_edgesdata_label_new>
<tooling_edgesdata_label_new>Associazionie nuovo Offset</tooling_edgesdata_label_new>
<siemens_tooling_edgesdata_label_new>Creazione nuovo Tagliente</siemens_tooling_edgesdata_label_new>
<tooling_shanks_label_box>Gestione Codoli</tooling_shanks_label_box>
<tooling_shanks_label_search>Seleziona un Codolo:</tooling_shanks_label_search>
<tooling_shanks_label_add>Crea un nuovo Codolo</tooling_shanks_label_add>
@@ -248,6 +248,11 @@
<tooling_families_list_category_selfAdaptive>Percorso autoadattativo:</tooling_families_list_category_selfAdaptive>
<tooling_families_list_category_life>Vita:</tooling_families_list_category_life>
<tooling_families_list_category_revive>Ravvivatura:</tooling_families_list_category_revive>
<tooling_equipment_list_category_limits>Limiti:</tooling_equipment_list_category_limits>
<tooling_equipment_list_category_revive>Ravvivatura:</tooling_equipment_list_category_revive>
<tooling_equipment_list_category_dynamicCompensation>Compensazione Dinamica:</tooling_equipment_list_category_dynamicCompensation>
<tooling_equipment_list_category_tcp>Tabella TCP:</tooling_equipment_list_category_tcp>
<tooling_equipment_list_category_selfAdaptive>Percorso autoadattativo:</tooling_equipment_list_category_selfAdaptive>
<!-- Tool Manager - Tool Params -->
@@ -385,7 +390,8 @@
<tooling_equipment_list_select_countLife>A Contatore</tooling_equipment_list_select_countLife>
<tooling_equipment_list_select_wearLife>Ad Usura</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Rot. Oraria</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Antioraria</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_counterClockWhise>Rot. Antioraria</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_doubleRotation>Tutti i sensi di rotazione</tooling_equipment_list_select_doubleRotation>
<tooling_equipment_list_select_millingTool>UT per fresatura</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>Fr.cilin.testa sfer.</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>Fr.conic.testa sfer.</tooling_equipment_list_select_conicalBallEnd>
+7 -1
View File
@@ -247,7 +247,12 @@
<tooling_families_list_category_selfAdaptive>Adatpive Path:</tooling_families_list_category_selfAdaptive>
<tooling_families_list_category_life>Life:</tooling_families_list_category_life>
<tooling_families_list_category_revive>Tool Revive:</tooling_families_list_category_revive>
<tooling_equipment_list_category_limits>Limits:</tooling_equipment_list_category_limits>
<tooling_equipment_list_category_revive>Tool Revive:</tooling_equipment_list_category_revive>
<tooling_equipment_list_category_dynamicCompensation>Dynamic Compensation:</tooling_equipment_list_category_dynamicCompensation>
<tooling_equipment_list_category_tcp>TCP Table:</tooling_equipment_list_category_tcp>
<tooling_equipment_list_category_selfAdaptive>Adatpive Path:</tooling_equipment_list_category_selfAdaptive>
<!-- Tool Manager - Tool Params -->
<tooling_equipment_param_id>Tool Id</tooling_equipment_param_id>
@@ -385,6 +390,7 @@
<tooling_equipment_list_select_wearLife>Wear</tooling_equipment_list_select_wearLife>
<tooling_equipment_list_select_clockWhise>Clockwhise Rot.</tooling_equipment_list_select_clockWhise>
<tooling_equipment_list_select_counterClockWhise>Counter Clockwhise Rot.</tooling_equipment_list_select_counterClockWhise>
<tooling_equipment_list_select_doubleRotation>All rotations</tooling_equipment_list_select_doubleRotation>
<tooling_equipment_list_select_millingTool>Milling tool</tooling_equipment_list_select_millingTool>
<tooling_equipment_list_select_ballNoseEndMill>Ball nose end mill</tooling_equipment_list_select_ballNoseEndMill>
<tooling_equipment_list_select_conicalBallEnd>Conical ball end</tooling_equipment_list_select_conicalBallEnd>
+1
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MySql.Data" version="6.10.4" targetFramework="net462" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net462" />
<package id="NLog" version="4.4.12" targetFramework="net461" />
</packages>
+88 -4
View File
@@ -1,6 +1,10 @@
using System.Collections.Generic;
using Newtonsoft.Json;
using Step.Model.DTOModels.JobModels;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Reflection;
using static Step.Model.Constants;
namespace Step.Utils
@@ -101,7 +105,7 @@ namespace Step.Utils
}
}
}
public static int GetNextId(IEnumerable<int> objIds)
{
if (objIds.Count() == 0)
@@ -121,6 +125,86 @@ namespace Step.Utils
else
return 1;
}
}
public static DTOJobModel UnpackJobAndReadMetadata(string path)
{
DTOJobModel job = new DTOJobModel();
// Check if job exists
if (!File.Exists(path))
return null;
EmptyFolder(path);
string fileName = Path.GetFileName(path);
using (ZipArchive zipExtractor = ZipFile.OpenRead(fileName))
{
// Setup main job fields
job.Name = Path.GetFileName(fileName);
job.LastEditTimestamp = new FileInfo(fileName).LastAccessTime;
foreach (ZipArchiveEntry entry in zipExtractor.Entries)
{
// Get main program content
if (entry.Name.Equals(JOB_MAIN_FILENAME, StringComparison.OrdinalIgnoreCase))
{
using (var reader = new StreamReader(entry.Open()))
job.IsoMainProgram = (reader.ReadToEnd());
}
// Read images
else if (VALID_IMAGE_EXTENSIONS.Contains(Path.GetExtension(entry.Name).ToLower()))
{
var bytes = default(byte[]);
entry.ExtractToFile(JOB_OPENING_PATH + entry.Name, true);
using (var memstream = new MemoryStream())
{
entry.Open().CopyTo(memstream);
bytes = memstream.ToArray();
job.Metadata.Generics.Images.Add(new DTOImageParamModel()
{
Name = Path.GetFileNameWithoutExtension(entry.Name),
Base64 = "data:image/" + Path.GetExtension(entry.Name).ToLower().TrimStart('.') + ";base64," + Convert.ToBase64String(bytes)
});
}
}
// Read metadata
else if (entry.Name.Equals(JOB_METADATA_FILENAME, StringComparison.OrdinalIgnoreCase))
{
DTOMetadataFieldsModel metasFromFile = new DTOMetadataFieldsModel();
using (var reader = new StreamReader(entry.Open()))
{
metasFromFile = JsonConvert.DeserializeObject<DTOMetadataFieldsModel>(reader.ReadToEnd());
if (metasFromFile == null)
{
return null;
}
else
{
job.Metadata.Generics.Description = metasFromFile.Description;
job.Metadata.Generics.ExecutionTime = metasFromFile.ExecutionTime;
job.Metadata.Tools = metasFromFile.Tools;
job.Metadata.Customs = metasFromFile.Customs;
}
}
}
// Consider other file as part program
else
entry.ExtractToFile(JOB_OPENING_PATH + entry.Name, true);
}
return job;
}
}
public static void EmptyFolder(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo file in di.GetFiles())
file.Delete();
foreach (DirectoryInfo dir in di.GetDirectories())
dir.Delete(true);
}
}
}
+1 -1
View File
@@ -22,7 +22,7 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
@@ -291,6 +291,12 @@ namespace Step.Controllers.WebApi
}
}
[Route("macros")]
public IHttpActionResult GetMacros()
{
return Ok(MacrosConfig);
}
public class MoveItems
{
public int ObjectId;
+2 -2
View File
@@ -97,8 +97,8 @@
<Reference Include="Microsoft.Owin.StaticFiles, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.StaticFiles.3.1.0\lib\net45\Microsoft.Owin.StaticFiles.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
+1 -1
View File
@@ -27,7 +27,7 @@
<package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net462" />
<package id="Microsoft.Owin.StaticFiles" version="3.1.0" targetFramework="net462" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net462" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net462" />
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net462" />
<package id="Owin" version="1.0" targetFramework="net462" />
<package id="Swashbuckle" version="5.6.0" targetFramework="net462" />
<package id="Swashbuckle.Core" version="5.6.0" targetFramework="net462" />
+1 -1
View File
@@ -22,7 +22,7 @@
"vue-drag-drop": "1.1.0",
"vue-smooth-dnd": "0.2.1",
"vue2-ace-editor": "0.0.11",
"brace":"0.11.1"
"brace": "0.11.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
+1
View File
@@ -15,6 +15,7 @@ declare module server {
multitoolOptionActive: boolean
familyOptionActive: boolean
magPositionOptionActive: boolean
offsetOptionActive: boolean
}
export interface EdgesConfiguration {
@@ -25,7 +25,11 @@ export default class toolingEquipment extends Vue {
public get familyOptionActive(): boolean {
return (this.$store.state as AppModel).tooling.familyOptionActive;
}
public get offsetOptionActive(): boolean {
return (this.$store.state as AppModel).tooling.offsetOptionActive;
}
public get tools(): server.Tool[] { return (this.$store.state as AppModel).tooling.tools; }
public get ncTools(): server.ToolNc[] { return (this.$store.state as AppModel).tooling.ncTools; }
@@ -57,7 +57,7 @@
<span v-if="ed.id>=0">{{'tooling_edgesdataequip_skill_tools' | localize("Offset")}} {{ed.id}}</span>
<span v-if="!ed.id || ed.id<=0">{{'tooling_edgesdataequip_new' | localize("Nuovo Offset")}}</span>
</button>
<div class="tab plus" :class="{'avoid-clicks': enableAddEdge}">
<div class="tab plus" :class="{'avoid-clicks': enableAddEdge}" v-if="offsetOptionActive">
<button class="btn" @click="addOffset(selectedTool)"><i class="fa fa-plus"></i></button>
</div>
</div>
@@ -147,7 +147,7 @@
</div>
<div class="box-right-body" v-if="enableEquipment && !isSiemens">
<button class="btn deleteElement" @click="deleteEdgeData(selectedTool,selectedEquipment)"><i class="fa fa-trash"></i></button>
<button class="btn deleteElement" @click="deleteEdgeData(selectedTool,selectedEquipment)" v-if="offsetOptionActive"><i class="fa fa-trash"></i></button>
<div class="box-right-label-header" v-if="selectedEquipment.id>=0">{{'tooling_edgesdata_label_edit' | localize("Modifica Tagliente n. %d",selectedEquipment.id)}}</div>
<!-- <div class="box-right-label-header" v-if="!selectedEquipment.id || selectedEquipment.id<0">{{'tooling_edgesdata_label_new' | localize("Creazione nuovo Tagliente")}}</div> -->
<div class="list-skill-equipment scrollable">
@@ -25,9 +25,9 @@
</div>
</div> -->
<div class="queue-body scrollable" v-if="selectedTab == 'Sinistra'">
<Container @drag-start="onDrag" @drag-end="onDragEnd" @drop="changePosition($event)" :get-child-payload="getPayloadForItemQueue">
<Container @drop="changePosition($event)" :get-child-payload="getPayloadForItemQueue">
<Draggable v-for="pp in partPrograms" :key="pp.id">
<div class="element-queue">
<div class="draggable-item element-queue">
<label class="number">{{pp.id}}</label><card-element-queue @click="deleteItemQueue(selectedProcess, pp)" :selected-process="selectedProcess" :id-part-program="pp.id" :name="pp.partProgramName" :number="pp.reps" :remaining-reps="pp.remainingReps" :status="pp.status" @position="positionBoxReps($event,pp)"></card-element-queue>
</div>
</Draggable>
@@ -111,19 +111,18 @@ export default {
await new FileService().deleteQueue(id);
},
async deleteItemQueue(processId, item){
debugger
await new FileService().deleteItemQueue(processId, item);
},
onDrag({ isSource, payload, willAcceptDrop }) {
this.enablePopup = false;
this.draggingIn = true;
this.draggingItem = payload;
},
// onDrag({ isSource, payload, willAcceptDrop }) {
// this.enablePopup = false;
// this.draggingIn = true;
// this.draggingItem = payload;
// },
onDragEnd() {
this.draggingIn = false;
// this.draggingTool = null;
},
// onDragEnd({ isSource, payload, willAcceptDrop }) {
// this.draggingIn = false;
// this.draggingItem = payload;
// },
onDragEnter(position) {
this.draggingPosition = position;
@@ -136,13 +135,14 @@ export default {
if(event.payload && event.payload.status != 1 && event.payload.status != 3 && event.addedIndex != event.removedIndex){
this.draggingIn = false;
this.draggingItem = null;
var itemsPositions = {objectId: event.payload.id, newPosition: event.addedIndex};
await new FileService().moveItemsQueue(this.selectedProcess,itemsPositions,this.partPrograms).then(function(){
response = true;
});
if(response && event.addedIndex && event.removeIndex){
this.partPrograms.splice(event.addedIndex, 0, this.partPrograms.splice(event.removedIndex,1)[0]);
}
var itemsPositions = {objectId: event.payload.id, newPosition: event.addedIndex, oldPosition: event.removedIndex};
await new FileService().moveItemsQueue(this.selectedProcess,itemsPositions,this.partPrograms);
// .then(function(){
// response = true;
// });
// if(response && event.addedIndex && event.removeIndex){
// this.partPrograms.splice(event.addedIndex, 0, this.partPrograms.splice(event.removedIndex,1)[0]);
// }
}
else{
event = null;
+4 -5
View File
@@ -36,15 +36,15 @@ export class FileService extends baseRestService {
}
async deleteItemQueue(processId, model){
debugger
var result = await this.Delete<any>(this.BASE_URL + "queue/" + processId + "/remove/" + model.id, true);
productionActions.deletePartProgram(store,model);
return result;
}
async moveItemsQueue(processId, itemsPositions, model){
var result = await this.Put<any>(this.BASE_URL + "queue/" + processId + "/move", itemsPositions, true);
productionActions.movePartPrograms(store,result);
async moveItemsQueue(processId, position, model){
var result = await this.Put<any>(this.BASE_URL + "queue/" + processId + "/move", position, true);
model = result;
productionActions.movePartProgram(store,{model,position});
return result;
}
@@ -59,7 +59,6 @@ export class FileService extends baseRestService {
}
async changeReps(processId,model){
debugger
var result = await this.Put<any>(this.BASE_URL + "queue/" + processId + "/edit/" + model.id, {reps: model.reps});
productionActions.updatePartProgram(store, result);
return result;
@@ -75,6 +75,7 @@ export class ToolingService extends baseRestService {
toolingActions.setToolsPerMultitools(store, result.maxToolsPerMultitools);
toolingActions.setMultitoolOptionActive(store, result.multitoolOptionActive);
toolingActions.setFamilyOptionActive(store, result.familyOptionActive);
toolingActions.setOffsetOptionActive(store, result.offsetOptionActive);
toolingActions.setMagPositionOptionActive(store, result.magPositionOptionActive);
toolingActions.updateToolsConfigurations(store, result.toolsConfiguration);
toolingActions.updateMagazinePosConfigurations(
+31 -11
View File
@@ -11,7 +11,8 @@ export interface ProductionActions {
updatePartPrograms(context, model:server.PartProgramModel[]);
deletePartPrograms(context);
deletePartProgram(context, model:server.PartProgramModel);
movePartPrograms(context, model:server.PartProgramModel[]);
movePartPrograms(context, model:server.PartProgramModel[]);
movePartProgram(context, {model,position});
}
export const productionStore = {
@@ -23,24 +24,39 @@ export const productionStore = {
},
mutations: {
UpdatePartProgram(store, model: server.PartProgramModel) {
debugger
store._partProgram.set(model.id, model);
store.partProgram = Array.from(store._partProgram.values());
},
UpdatePartPrograms(store, model: server.PartProgramModel[]){
store._partProgram.clear();
store.partProgram = [];
for(const key in model){
const element = model[key];
store._partProgram.set(element.id,element);
store.partProgram = Array.from(store._partProgram.values());
}
},
DeletePartPrograms(store) {
store.partProgram = [];
},
DeletePartProgram(store, model:server.PartProgramModel) {
debugger
let idx = store.partProgram.indexOf(model);
if(store.partProgram[idx] && model && store.partProgram[idx].id == model.id){
store.partProgram.splice(idx,1);
}
// store._partProgram.delete(model.id);
// store.partProgram = Array.from(store._partProgram.values());
// let idx = store.partProgram.indexOf(model);
// if(store.partProgram[idx] && model && store.partProgram[idx].id == model.id){
// store.partProgram.splice(idx,1);
// }
store._partProgram.delete(model.id);
store.partProgram = Array.from(store._partProgram.values());
},
MovePartPrograms(store, model:server.PartProgramModel[]) {
store.partProgram = model;
store.partProgram = [];
store.partProgram = model;
},
MovePartProgram(store, {model,position}) {
if(position){
var model = store.partProgram.splice(position.oldPosition, 1)[0];
store.partProgram.splice(position.newPosition, 0, model);
// store.partProgram.splice(position.newPosition, 0, store.partProgram.splice(position.oldPosition,1)[0]);
}
}
},
actions: {
@@ -48,10 +64,14 @@ export const productionStore = {
context.commit("UpdatePartProgram", model);
},
updatePartPrograms(context, model:server.PartProgramModel[]) {
context.commit("MovePartPrograms", model);
context.commit("UpdatePartPrograms", model);
// context.commit("MovePartPrograms", model);
},
movePartPrograms(context, model:server.PartProgramModel[]) {
context.commit("MovePartPrograms", model);
},
movePartProgram(context, {model,position}) {
context.commit("MovePartProgram", {model,position});
},
deletePartProgram(context, model:server.PartProgramModel) {
context.commit("DeletePartProgram", model);
+10 -1
View File
@@ -30,6 +30,7 @@ export interface ToolingStoreModel {
multitoolOptionActive: boolean
familyOptionActive: boolean
magPositionOptionActive: boolean
offsetOptionActive: boolean
}
export interface ToolingGetters{
@@ -98,6 +99,7 @@ export interface ToolingActions {
setToolsPerMultitools(context, number);
setMultitoolOptionActive(context, multitoolOptionActive: boolean);
setFamilyOptionActive(context, familyOptionActive: boolean);
setOffsetOptionActive(context, offsetOptionActive: boolean);
setMagPositionOptionActive(context, magPositionOptionActive: boolean);
}
@@ -147,7 +149,8 @@ export const toolingStore = {
maxToolsPerMultitools: 0,
multitoolOptionActive: false,
familyOptionActive: false,
magPositionOptionActive: false
magPositionOptionActive: false,
offsetOptionActive: false
} as ToolingStoreModel,
getters:{
toolIsInWarning : (state) => (id) : boolean =>{
@@ -398,6 +401,9 @@ export const toolingStore = {
SetFamilyOptionActive(store, familyOptionActive){
store.familyOptionActive = familyOptionActive;
},
SetOffsetOptionActive(store, offsetOptionActive){
store.offsetOptionActive = offsetOptionActive;
},
SetMagPositionOptionActive(store, magPositionOptionActive){
store.magPositionOptionActive = magPositionOptionActive;
},
@@ -427,6 +433,9 @@ export const toolingStore = {
setFamilyOptionActive(context, familyOptionActive: boolean){
context.commit("SetFamilyOptionActive", familyOptionActive);
},
setOffsetOptionActive(context, offsetOptionActive: boolean){
context.commit("SetOffsetOptionActive", offsetOptionActive);
},
setMagPositionOptionActive(context, magPositionOptionActive: boolean){
context.commit("SetMagPositionOptionActive", magPositionOptionActive);
},