diff --git a/Step.Config/Config/maintenancesConfig.xml b/Step.Config/Config/maintenancesConfig.xml
index 3417b78f..4a3e56b9 100644
--- a/Step.Config/Config/maintenancesConfig.xml
+++ b/Step.Config/Config/maintenancesConfig.xml
@@ -1,6 +1,6 @@
-
+
1
Test
@@ -10,27 +10,27 @@
01/12/1999
machine_interval
1
-
-
+
+
2
Test
Ita
- 2500
- 01/12/1999
+ 5
+ 15/02/2018
exp_date
2
-
-
- 3
+
+
+ 1
Test
Ita
- 20
- 01/12/1999
+ 10
+ 15/02/2018
time_interval
2
-
+
\ No newline at end of file
diff --git a/Step.Config/Config/maintenancesConfigValidator.xsd b/Step.Config/Config/maintenancesConfigValidator.xsd
index 443327aa..d9a6e343 100644
--- a/Step.Config/Config/maintenancesConfigValidator.xsd
+++ b/Step.Config/Config/maintenancesConfigValidator.xsd
@@ -3,47 +3,52 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Step.Database/Controllers/MaintenancesController.cs b/Step.Database/Controllers/MaintenancesController.cs
index b125a45f..20821a8a 100644
--- a/Step.Database/Controllers/MaintenancesController.cs
+++ b/Step.Database/Controllers/MaintenancesController.cs
@@ -38,6 +38,13 @@ namespace Step.Database.Controllers
return lastMaintenances;
}
+ public MaintenanceModel FindById(int id)
+ {
+ return dbCtx
+ .Maintenances
+ .Find(id);
+ }
+
public List FindAll()
{
return dbCtx
@@ -98,7 +105,9 @@ namespace Step.Database.Controllers
Deadline = x.Deadline,
Interval = x.Intervall.TotalMinutes,
Type = x.Type,
- CounterId = x.CouterId
+ CounterId = x.CouterId,
+ CreationDate = DateTime.Now,
+ LastExpirationDate = null
})
.ToList();
@@ -109,5 +118,16 @@ namespace Step.Database.Controllers
dbCtx.SaveChanges();
}
}
+
+ public void UpdateLastExpirationDate(int id, DateTime expDate)
+ {
+ MaintenanceModel maintenance = FindById(id);
+
+ if (maintenance != null)
+ {
+ maintenance.LastExpirationDate = expDate;
+ dbCtx.SaveChanges();
+ }
+ }
}
}
diff --git a/Step.Database/Migrations/201802141408206_InitCreate.Designer.cs b/Step.Database/Migrations/201802151533324_InitMigration.Designer.cs
similarity index 80%
rename from Step.Database/Migrations/201802141408206_InitCreate.Designer.cs
rename to Step.Database/Migrations/201802151533324_InitMigration.Designer.cs
index 29ab1212..721d8ca4 100644
--- a/Step.Database/Migrations/201802141408206_InitCreate.Designer.cs
+++ b/Step.Database/Migrations/201802151533324_InitMigration.Designer.cs
@@ -7,13 +7,13 @@ namespace Step.Database.Migrations
using System.Resources;
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
- public sealed partial class InitCreate : IMigrationMetadata
+ public sealed partial class InitMigration : IMigrationMetadata
{
- private readonly ResourceManager Resources = new ResourceManager(typeof(InitCreate));
+ private readonly ResourceManager Resources = new ResourceManager(typeof(InitMigration));
string IMigrationMetadata.Id
{
- get { return "201802141408206_InitCreate"; }
+ get { return "201802151533324_InitMigration"; }
}
string IMigrationMetadata.Source
diff --git a/Step.Database/Migrations/201802141408206_InitCreate.cs b/Step.Database/Migrations/201802151533324_InitMigration.cs
similarity index 97%
rename from Step.Database/Migrations/201802141408206_InitCreate.cs
rename to Step.Database/Migrations/201802151533324_InitMigration.cs
index 9f800792..112d029f 100644
--- a/Step.Database/Migrations/201802141408206_InitCreate.cs
+++ b/Step.Database/Migrations/201802151533324_InitMigration.cs
@@ -3,7 +3,7 @@ namespace Step.Database.Migrations
using System;
using System.Data.Entity.Migrations;
- public partial class InitCreate : DbMigration
+ public partial class InitMigration : DbMigration
{
public override void Up()
{
@@ -82,6 +82,7 @@ namespace Step.Database.Migrations
type = c.String(unicode: false),
counter_id = c.Int(nullable: false),
creation_date = c.DateTime(nullable: false, precision: 0),
+ last_expiration_date = c.DateTime(precision: 0),
})
.PrimaryKey(t => t.id);
diff --git a/Step.Database/Migrations/201802141408206_InitCreate.resx b/Step.Database/Migrations/201802151533324_InitMigration.resx
similarity index 58%
rename from Step.Database/Migrations/201802141408206_InitCreate.resx
rename to Step.Database/Migrations/201802151533324_InitMigration.resx
index 607d55ae..217abc14 100644
--- a/Step.Database/Migrations/201802141408206_InitCreate.resx
+++ b/Step.Database/Migrations/201802151533324_InitMigration.resx
@@ -118,7 +118,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- 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
+ 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
dbo
diff --git a/Step.Database/Step.Database.csproj b/Step.Database/Step.Database.csproj
index 94de5c26..29c24281 100644
--- a/Step.Database/Step.Database.csproj
+++ b/Step.Database/Step.Database.csproj
@@ -77,9 +77,9 @@
-
-
- 201802141408206_InitCreate.cs
+
+
+ 201802151533324_InitMigration.cs
@@ -115,8 +115,8 @@
-
- 201802141408206_InitCreate.cs
+
+ 201802151533324_InitMigration.cs
diff --git a/Step.Model/DatabaseModels/MaintenanceModel.cs b/Step.Model/DatabaseModels/MaintenanceModel.cs
index 31222155..0805786b 100644
--- a/Step.Model/DatabaseModels/MaintenanceModel.cs
+++ b/Step.Model/DatabaseModels/MaintenanceModel.cs
@@ -1,4 +1,5 @@
using System;
+using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
@@ -13,7 +14,7 @@ namespace Step.Model.DatabaseModels
public int MaintenanceId { get; set; }
[Column("intervall")]
- public double Interval { get; set; }
+ public double Interval { get; set; }
[Column("deadline")]
public DateTime Deadline { get; set; }
@@ -27,17 +28,7 @@ namespace Step.Model.DatabaseModels
[Column("creation_date")]
public DateTime CreationDate { get; set; }
- //public override bool Equals(object obj)
- //{
- // var item = obj as MaintenanceModel;
-
- // if (item == null)
- // return false;
-
- // if (item.MaintenanceId != MaintenanceId)
- // return false;
-
- // return true;
- //}
+ [Column("last_expiration_date")]
+ public DateTime? LastExpirationDate { get; set; }
}
}
\ No newline at end of file
diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs
index 467246be..8ca4c78d 100644
--- a/Step.NC/NcHandler.cs
+++ b/Step.NC/NcHandler.cs
@@ -357,30 +357,37 @@ namespace Step.NC
// Get all the active maintenances
List maintenances = maintenancesController.FindAll(); // TODO db or config file?
- foreach (var maintenance in maintenances)
+ foreach (var currMaintenance in maintenances)
{
// Get matching last performed maintenance for current maintenance
- var performed = performedMaintenance.Find(x => x.MaintenanceId == maintenance.MaintenanceId);
+ var performed = performedMaintenance.Find(x => x.MaintenanceId == currMaintenance.MaintenanceId);
- switch (maintenance.Type)
+ switch (currMaintenance.Type)
{
case MAINT_MACHINE_INTERVAL_TYPE:
{
// Get matching counter for the current maintenance
- var counter = counters.Find(x => x.Id == maintenance.CounterId);
+ var counter = counters.Find(x => x.Id == currMaintenance.CounterId);
int perfVal = 0;
if (performed != null)
perfVal = performed.CounterValue;
// MAINTENANCE_INTERVAL <= PLC - LASTPERFORMED
- if (maintenance.Interval <= counter.Value - perfVal )
+ if (currMaintenance.Interval <= counter.Value - perfVal )
{
+ // Update last expiration date if null
+ if (currMaintenance.LastExpirationDate == null)
+ {
+ maintenancesController.UpdateLastExpirationDate(currMaintenance.MaintenanceId, DateTime.Now);
+ currMaintenance.LastExpirationDate = DateTime.Now;
+ }
+
// Add item to return list
expiredMaintenance.Add(new DTOExpiredMaintenanceModel()
{
- Id = maintenance.MaintenanceId,
- ExpirationDate = DateTime.Now
+ Id = currMaintenance.MaintenanceId,
+ ExpirationDate = (DateTime)currMaintenance.LastExpirationDate
});
}
}
@@ -391,36 +398,45 @@ namespace Step.NC
if (performed != null)
break;
// DEADLINE <= NOW
- if (maintenance.Deadline <= DateTime.Now)
+ if (currMaintenance.Deadline <= DateTime.Now)
// Add item to return list
expiredMaintenance.Add(new DTOExpiredMaintenanceModel()
{
- Id = maintenance.MaintenanceId,
- ExpirationDate = maintenance.Deadline
+ Id = currMaintenance.MaintenanceId,
+ ExpirationDate = currMaintenance.Deadline
});
}
break;
case MAINT_TIME_INTERVAL_TYPE:
{
// Get last performed, default value is maintenance creation date
- DateTime perfDate = maintenance.CreationDate;
+ DateTime perfDate = currMaintenance.CreationDate;
if (performed != null)
perfDate = performed.Date;
// Now - last performed = elapsed interval since last maintenance
- TimeSpan timePassedFromLastMaint = DateTime.Now.Subtract(performed.Date);
+ TimeSpan timePassedFromLastMaint = DateTime.Now.Subtract(perfDate);
// Convert in minutes
double minutesPassedFromLastMaint = timePassedFromLastMaint.TotalMinutes;
// Interval - passed minutes since last maintenance
- if(maintenance.Interval <= minutesPassedFromLastMaint)
+ if(currMaintenance.Interval <= minutesPassedFromLastMaint)
{
- // Exp date = now - ( expiration intervall)
- DateTime expirationDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(minutesPassedFromLastMaint - maintenance.Interval));
+ // Update last expiration date
+ if (currMaintenance.LastExpirationDate == null)
+ {
+ // Exp date = now - ( expiration intervall)
+ DateTime expirationDate = DateTime.Now.Subtract(TimeSpan.FromMinutes(minutesPassedFromLastMaint - currMaintenance.Interval));
+
+ maintenancesController.UpdateLastExpirationDate(currMaintenance.MaintenanceId, expirationDate);
+ currMaintenance.LastExpirationDate = expirationDate;
+ }
+
+ // Add item to return list
expiredMaintenance.Add(new DTOExpiredMaintenanceModel()
{
- Id = maintenance.MaintenanceId,
- ExpirationDate = expirationDate
+ Id = currMaintenance.MaintenanceId,
+ ExpirationDate = (DateTime)currMaintenance.LastExpirationDate
});
}
}