Deagregation processor fix

This commit is contained in:
Michał Zieliński
2023-10-11 12:52:17 +02:00
parent 23ef41089f
commit 31436101be
2 changed files with 16 additions and 6 deletions

View File

@@ -405,6 +405,11 @@ namespace WebAPI.Controllers
{ {
try try
{ {
List<Record> toDelete = db.Records.Where(x => x.LayerId == id).ToList();
if (toDelete.Count > 0)
{
db.Records.RemoveRange(toDelete);
}
foreach (Record record in records) foreach (Record record in records)
{ {
record.CreatedById = currentUserId; record.CreatedById = currentUserId;

View File

@@ -93,12 +93,12 @@ namespace WebAPI.dataProcessors
processedLayer.ModifiedAt = DateTime.UtcNow; processedLayer.ModifiedAt = DateTime.UtcNow;
db.Layers.Add(processedLayer); db.Layers.Add(processedLayer);
} }
processedLayer.Records = new List<Record>();
processedLayer.Sources = new List<ProcessSource>(); processedLayer.Sources = new List<ProcessSource>();
processedLayer.ModifiedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"); processedLayer.ModifiedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
processedLayer.ModifiedAt = DateTime.UtcNow; processedLayer.ModifiedAt = DateTime.UtcNow;
List<Record> newRecords = new List<Record>();
List<Layer> dataSources = db.Layers List<Layer> dataSources = db.Layers
.Include(x => x.Records) .Include(x => x.Records)
.Where(x => x.ParentId == sourceImportWorker.Id .Where(x => x.ParentId == sourceImportWorker.Id
@@ -119,7 +119,7 @@ namespace WebAPI.dataProcessors
} }
*/ */
List<Record> allRecords = dataSources.SelectMany(x => x.Records!).Where(x => x.Code == "500").ToList(); List<Record> allRecords = dataSources.SelectMany(x => x.Records!).ToList();
foreach (Record baseRecord in dataSources.First()?.Records!) foreach (Record baseRecord in dataSources.First()?.Records!)
{ {
@@ -151,12 +151,13 @@ namespace WebAPI.dataProcessors
.FirstOrDefault()?.Value1; .FirstOrDefault()?.Value1;
if (dayVal == null) if (dayVal == null)
{ {
//TODO: missing day value? Should I log it?
setValue(processedRecord, i, 0); setValue(processedRecord, i, 0);
} else } else
{ {
float processedVal = (dayVal ?? 0) - previousValue; float processedVal = (dayVal ?? 0) - previousValue;
setValue(processedRecord, i, processedVal); setValue(processedRecord, i, processedVal);
previousValue = processedVal; previousValue = dayVal ?? 0;
} }
} }
//last day //last day
@@ -173,14 +174,18 @@ namespace WebAPI.dataProcessors
setValue(processedRecord, lastDayInMonth, (lastVal ?? 0) - previousValue); setValue(processedRecord, lastDayInMonth, (lastVal ?? 0) - previousValue);
} }
processedLayer.Records.Add(processedRecord); newRecords.Add(processedRecord);
} }
controller.SaveRecords(processedLayer.Id, processedLayer.Records, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D")); controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
db.Layers.Update(processedLayer); db.Layers.Update(processedLayer);
db.SaveChanges(); db.SaveChanges();
} }
private void setValue(Record record, int number, float? value) private void setValue(Record record, int number, float? value)
{ {
if (record.Code == "500")
{
Console.WriteLine("SetValue " + number + " | " + value);
}
switch (number) switch (number)
{ {
case 1: case 1: