WIP
Added new library with maintenances counters Added maintenances thread
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Step.Model.DatabaseModels;
|
||||
using Step.Model.ConfigModels;
|
||||
using Step.Model.DatabaseModels;
|
||||
using Step.Model.DTOModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -23,9 +24,25 @@ namespace Step.Database.Controllers
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public DTOExpiredMaintenanceModel GetExpiredMaintenance()
|
||||
public List<PerformedMaintenanceModel> FindLastMaintenance()
|
||||
{
|
||||
return new DTOExpiredMaintenanceModel();
|
||||
List<PerformedMaintenanceModel> lastMaintenances = new List<PerformedMaintenanceModel>();
|
||||
// Find last performed maintenance
|
||||
lastMaintenances = (from maintenances in dbCtx.PerformedMaintenances
|
||||
where maintenances.Date == (from m1 in dbCtx.PerformedMaintenances // Select max data of performed maintenance
|
||||
where m1.MaintenanceId == maintenances.MaintenanceId
|
||||
select m1.Date
|
||||
).Max()
|
||||
select maintenances).ToList();
|
||||
|
||||
return lastMaintenances;
|
||||
}
|
||||
|
||||
public List<MaintenanceModel> FindAll()
|
||||
{
|
||||
return dbCtx
|
||||
.Maintenances
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public void CheckDifferencesFromDbAndXml()
|
||||
@@ -39,12 +56,58 @@ namespace Step.Database.Controllers
|
||||
!MaintenancesConfig.Select(y => y.Id).Contains(x.MaintenanceId)
|
||||
).ToList();
|
||||
|
||||
// Delete database items
|
||||
foreach (var item in toDeleteMaint)
|
||||
dbCtx.Maintenances.Remove(item);
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
// Find common data from
|
||||
List<MaintenanceModel> toUpdateMaint = dbMaintenances.Where(x =>
|
||||
MaintenancesConfig.Select(y => y.Id).Contains(x.MaintenanceId)
|
||||
).ToList();
|
||||
)
|
||||
.ToList();
|
||||
|
||||
|
||||
// Update rows
|
||||
if (toUpdateMaint != null)
|
||||
foreach (MaintenanceModel item in toUpdateMaint)
|
||||
{
|
||||
// find to update into db
|
||||
var old = dbCtx.Maintenances.Where(x => x.MaintenanceId == item.MaintenanceId).FirstOrDefault();
|
||||
|
||||
// Update model
|
||||
old = MaintenancesConfig.Where(x => x.Id == item.MaintenanceId).Select(x =>
|
||||
{
|
||||
old.MaintenanceId = x.Id;
|
||||
old.Deadline = x.Deadline;
|
||||
old.Intervall = x.Intervall.TotalMinutes;
|
||||
old.Type = x.Type;
|
||||
old.CounterId = x.CouterId;
|
||||
return old;
|
||||
|
||||
}).FirstOrDefault();
|
||||
}
|
||||
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
// Get new maintenance from file
|
||||
List<MaintenanceModel> toAddMaint = MaintenancesConfig
|
||||
.Where(x => !toUpdateMaint.Select(y => y.MaintenanceId).Contains(x.Id))
|
||||
.Select(x => new MaintenanceModel()
|
||||
{
|
||||
MaintenanceId = x.Id,
|
||||
Deadline = x.Deadline,
|
||||
Intervall = x.Intervall.TotalMinutes,
|
||||
Type = x.Type,
|
||||
CounterId = x.CouterId
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// Add new maintenances to database
|
||||
if (toAddMaint != null)
|
||||
{
|
||||
dbCtx.Maintenances.AddRange(toAddMaint);
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user