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
{
List<Record> toDelete = db.Records.Where(x => x.LayerId == id).ToList();
if (toDelete.Count > 0)
{
db.Records.RemoveRange(toDelete);
}
foreach (Record record in records)
{
record.CreatedById = currentUserId;

View File

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