Plugins engine is working
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
using DiunaBI.Core.Interfaces;
|
||||
using DiunaBI.Core.Models;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Exporters;
|
||||
|
||||
public abstract class MorskaBaseExporter : IDataExporter
|
||||
{
|
||||
public abstract string ExporterType { get; }
|
||||
public virtual bool CanExport(string exporterType) => ExporterType == exporterType;
|
||||
public abstract void Export(Layer layer);
|
||||
}
|
||||
@@ -3,11 +3,13 @@ using Google.Apis.Sheets.v4;
|
||||
using Google.Apis.Sheets.v4.Data;
|
||||
using DiunaBI.Core.Models;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using DiunaBI.Plugins.Morska.Exporters;
|
||||
|
||||
namespace DiunaBI.Core.Services.Exports;
|
||||
|
||||
public class GoogleSheetExport
|
||||
public class GoogleSheetExport : MorskaBaseExporter
|
||||
{
|
||||
public override string ExporterType => "GoogleSheet";
|
||||
private readonly GoogleDriveHelper _googleDriveHelper;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
private readonly IConfiguration _configuration;
|
||||
@@ -20,7 +22,7 @@ public class GoogleSheetExport
|
||||
_googleSheetValues = googleSheetValues;
|
||||
_configuration = configuration;
|
||||
}
|
||||
public void Export(Layer layer)
|
||||
public override void Export(Layer layer)
|
||||
{
|
||||
if (_googleDriveHelper.Service is null)
|
||||
{
|
||||
@@ -29,31 +31,31 @@ public class GoogleSheetExport
|
||||
try
|
||||
{
|
||||
|
||||
var data = new List<IList<object>> { new List<object> { layer.Name! } };
|
||||
|
||||
var data = new List<IList<object>> { new List<object> { layer.Name! } };
|
||||
|
||||
switch (layer.Type)
|
||||
{
|
||||
case LayerType.Import:
|
||||
{
|
||||
data.Add(new List<object> { "Code", "Value1" });
|
||||
data.AddRange(layer.Records!.Select(record => new List<object> { record.Code!, record.Value1! }));
|
||||
break;
|
||||
case LayerType.Import:
|
||||
{
|
||||
data.Add(new List<object> { "Code", "Value1" });
|
||||
data.AddRange(layer.Records!.Select(record => new List<object> { record.Code!, record.Value1! }));
|
||||
break;
|
||||
}
|
||||
case LayerType.Administration:
|
||||
{
|
||||
data.Add(new List<object> { "Code", "Desc1" });
|
||||
data.AddRange(layer.Records!.Select(record => new List<object> { record.Code!, record.Desc1! }));
|
||||
break;
|
||||
case LayerType.Administration:
|
||||
{
|
||||
data.Add(new List<object> { "Code", "Desc1" });
|
||||
data.AddRange(layer.Records!.Select(record => new List<object> { record.Code!, record.Desc1! }));
|
||||
break;
|
||||
}
|
||||
case LayerType.Processed:
|
||||
{
|
||||
case LayerType.Processed:
|
||||
{
|
||||
data.Add(new List<object> { "Code", "Value1", "Value2", "Value3", "Value3",
|
||||
"Value5", "Value6", "Value7", "Value8", "Value9", "Value10",
|
||||
"Value11", "Value12", "Value13", "Value14", "Value15", "Value16",
|
||||
"Value17", "Value18", "Value19", "Value20", "Value21", "Value22",
|
||||
"Value23", "Value24", "Value25", "Value26", "Value27", "Value28",
|
||||
"Value29", "Value30", "Value31", "Value32"});
|
||||
|
||||
"Value29", "Value30", "Value31", "Value32"});
|
||||
|
||||
data.AddRange(layer.Records!.Select(record => new List<object>
|
||||
{
|
||||
record.Code!,
|
||||
@@ -89,8 +91,8 @@ public class GoogleSheetExport
|
||||
record.Value30!,
|
||||
record.Value31!,
|
||||
record.Value32!
|
||||
}));
|
||||
break;
|
||||
}));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new Exception("Wrong LayerType");
|
||||
@@ -114,7 +116,7 @@ public class GoogleSheetExport
|
||||
updateRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW;
|
||||
updateRequest.Execute();
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
using DiunaBI.Core.Interfaces;
|
||||
using DiunaBI.Core.Models;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Importers;
|
||||
|
||||
public abstract class MorskaBaseImporter : IDataImporter
|
||||
{
|
||||
public abstract string ImporterType { get; }
|
||||
|
||||
public virtual bool CanImport(string importerType) => ImporterType == importerType;
|
||||
|
||||
public abstract void Import(Layer importWorker);
|
||||
}
|
||||
@@ -5,11 +5,22 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Importers;
|
||||
|
||||
public class MorskaD1Importer(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
public class MorskaD1Importer : MorskaBaseImporter
|
||||
{
|
||||
public void Import(Layer importWorker)
|
||||
public override string ImporterType => "MorskaD1";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
|
||||
public MorskaD1Importer(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
|
||||
public override void Import(Layer importWorker)
|
||||
{
|
||||
var sheetId = importWorker.Records!.FirstOrDefault(x => x.Code == "SheetId")?.Desc1;
|
||||
if (sheetId == null)
|
||||
@@ -45,7 +56,7 @@ public class MorskaD1Importer(
|
||||
|
||||
var layer = new Layer
|
||||
{
|
||||
Number = db.Layers.Count() + 1,
|
||||
Number = _db.Layers.Count() + 1,
|
||||
ParentId = importWorker.Id,
|
||||
Type = LayerType.Import,
|
||||
CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"),
|
||||
@@ -55,36 +66,36 @@ public class MorskaD1Importer(
|
||||
};
|
||||
layer.Name = $"L{layer.Number}-I-{name}-{year}/{month}-{DateTime.Now.ToString("yyyyMMddHHmm", CultureInfo.InvariantCulture)}";
|
||||
|
||||
var dataRangeResponse = googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var dataRangeResponse = _googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var data = dataRangeResponse.Values;
|
||||
var newRecords = (from t in data
|
||||
where t.Count > 1 && (string)t[0] != string.Empty
|
||||
select new Record
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Code = t[0].ToString(),
|
||||
Value1 = IndexExists(t, 3) ? ParseValue(t[3]?.ToString()) : null,
|
||||
Value2 = IndexExists(t, 4) ? ParseValue(t[4]?.ToString()) : null,
|
||||
Value3 = IndexExists(t, 5) ? ParseValue(t[5]?.ToString()) : null,
|
||||
Value4 = IndexExists(t, 6) ? ParseValue(t[6]?.ToString()) : null,
|
||||
Value5 = IndexExists(t, 7) ? ParseValue(t[7]?.ToString()) : null,
|
||||
Value6 = IndexExists(t, 8) ? ParseValue(t[8]?.ToString()) : null,
|
||||
Value7 = IndexExists(t, 9) ? ParseValue(t[9]?.ToString()) : null,
|
||||
Value8 = IndexExists(t, 10) ? ParseValue(t[10]?.ToString()) : null,
|
||||
Value9 = IndexExists(t, 11) ? ParseValue(t[11]?.ToString()) : null,
|
||||
Value10 = IndexExists(t, 12) ? ParseValue(t[12]?.ToString()) : null,
|
||||
Value11 = IndexExists(t, 13) ? ParseValue(t[13]?.ToString()) : null,
|
||||
Value12 = IndexExists(t, 14) ? ParseValue(t[14]?.ToString()) : null,
|
||||
Value13 = IndexExists(t, 15) ? ParseValue(t[15]?.ToString()) : null,
|
||||
Value14 = IndexExists(t, 16) ? ParseValue(t[16]?.ToString()) : null,
|
||||
Value15 = IndexExists(t, 17) ? ParseValue(t[17]?.ToString()) : null,
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
ModifiedAt = DateTime.UtcNow
|
||||
}).ToList();
|
||||
db.Layers.Add(layer);
|
||||
where t.Count > 1 && (string)t[0] != string.Empty
|
||||
select new Record
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Code = t[0].ToString(),
|
||||
Value1 = IndexExists(t, 3) ? ParseValue(t[3]?.ToString()) : null,
|
||||
Value2 = IndexExists(t, 4) ? ParseValue(t[4]?.ToString()) : null,
|
||||
Value3 = IndexExists(t, 5) ? ParseValue(t[5]?.ToString()) : null,
|
||||
Value4 = IndexExists(t, 6) ? ParseValue(t[6]?.ToString()) : null,
|
||||
Value5 = IndexExists(t, 7) ? ParseValue(t[7]?.ToString()) : null,
|
||||
Value6 = IndexExists(t, 8) ? ParseValue(t[8]?.ToString()) : null,
|
||||
Value7 = IndexExists(t, 9) ? ParseValue(t[9]?.ToString()) : null,
|
||||
Value8 = IndexExists(t, 10) ? ParseValue(t[10]?.ToString()) : null,
|
||||
Value9 = IndexExists(t, 11) ? ParseValue(t[11]?.ToString()) : null,
|
||||
Value10 = IndexExists(t, 12) ? ParseValue(t[12]?.ToString()) : null,
|
||||
Value11 = IndexExists(t, 13) ? ParseValue(t[13]?.ToString()) : null,
|
||||
Value12 = IndexExists(t, 14) ? ParseValue(t[14]?.ToString()) : null,
|
||||
Value13 = IndexExists(t, 15) ? ParseValue(t[15]?.ToString()) : null,
|
||||
Value14 = IndexExists(t, 16) ? ParseValue(t[16]?.ToString()) : null,
|
||||
Value15 = IndexExists(t, 17) ? ParseValue(t[17]?.ToString()) : null,
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
ModifiedAt = DateTime.UtcNow
|
||||
}).ToList();
|
||||
_db.Layers.Add(layer);
|
||||
// TODO: Save records to the layer
|
||||
//controller.SaveRecords(layer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
|
||||
private double? ParseValue(string? value)
|
||||
@@ -6,10 +6,17 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Importers;
|
||||
|
||||
public class MorskaD3Importer(
|
||||
AppDbContext db)
|
||||
public class MorskaD3Importer : MorskaBaseImporter
|
||||
{
|
||||
public void Import(Layer importWorker)
|
||||
public override string ImporterType => "MorskaD3";
|
||||
private readonly AppDbContext _db;
|
||||
|
||||
public MorskaD3Importer(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Import(Layer importWorker)
|
||||
{
|
||||
var year = importWorker.Records!.FirstOrDefault(x => x.Code == "ImportYear")?.Desc1;
|
||||
if (year == null)
|
||||
@@ -31,7 +38,7 @@ public class MorskaD3Importer(
|
||||
{
|
||||
throw new Exception($"ImportType not found, {importWorker.Name}");
|
||||
}
|
||||
var dataInbox = db.DataInbox.OrderByDescending(x => x.CreatedAt).FirstOrDefault(x => x.Name == type);
|
||||
var dataInbox = _db.DataInbox.OrderByDescending(x => x.CreatedAt).FirstOrDefault(x => x.Name == type);
|
||||
if (dataInbox == null)
|
||||
{
|
||||
throw new Exception($"DataInbox not found, {type}");
|
||||
@@ -57,7 +64,7 @@ public class MorskaD3Importer(
|
||||
}).ToList();
|
||||
var layer = new Layer
|
||||
{
|
||||
Number = db.Layers.Count() + 1,
|
||||
Number = _db.Layers.Count() + 1,
|
||||
ParentId = importWorker.Id,
|
||||
Type = LayerType.Import,
|
||||
CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"),
|
||||
@@ -67,9 +74,9 @@ public class MorskaD3Importer(
|
||||
};
|
||||
layer.Name = $"L{layer.Number}-I-{name}-{year}/{month}-{DateTime.Now.ToString("yyyyMMddHHmm", CultureInfo.InvariantCulture)}";
|
||||
|
||||
db.Layers.Add(layer);
|
||||
_db.Layers.Add(layer);
|
||||
// TODO: Save records to the layer
|
||||
//controller.SaveRecords(layer.Id, records, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,20 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Importers;
|
||||
|
||||
public class MorskaFk2Importer(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
public class MorskaFk2Importer : MorskaBaseImporter
|
||||
{
|
||||
public void Import(Layer importWorker)
|
||||
public override string ImporterType => "MorskaFK2";
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
public MorskaFk2Importer(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
|
||||
public override void Import(Layer importWorker)
|
||||
{
|
||||
var sheetId = importWorker.Records!.FirstOrDefault(x => x.Code == "SheetId")?.Desc1;
|
||||
if (sheetId == null)
|
||||
@@ -45,7 +54,7 @@ public class MorskaFk2Importer(
|
||||
|
||||
var layer = new Layer
|
||||
{
|
||||
Number = db.Layers.Count() + 1,
|
||||
Number = _db.Layers.Count() + 1,
|
||||
ParentId = importWorker.Id,
|
||||
Type = LayerType.Import,
|
||||
CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"),
|
||||
@@ -57,7 +66,7 @@ public class MorskaFk2Importer(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataRangeResponse = googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var dataRangeResponse = _googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var data = dataRangeResponse.Values;
|
||||
for (var i = 0; i < data.Count; i++)
|
||||
{
|
||||
@@ -84,9 +93,9 @@ public class MorskaFk2Importer(
|
||||
};
|
||||
newRecords.Add(record);
|
||||
}
|
||||
db.Layers.Add(layer);
|
||||
_db.Layers.Add(layer);
|
||||
// TODO: Save records to the layer
|
||||
//controller.SaveRecords(layer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,20 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Importers;
|
||||
|
||||
public class MorskaImporter(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
public class MorskaImporter : MorskaBaseImporter
|
||||
{
|
||||
public void Import(Layer importWorker)
|
||||
public override string ImporterType => "MorskaImporter";
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
public MorskaImporter(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
|
||||
public override void Import(Layer importWorker)
|
||||
{
|
||||
var sheetId = importWorker.Records!.FirstOrDefault(x => x.Code == "SheetId")?.Desc1;
|
||||
if (sheetId == null)
|
||||
@@ -45,7 +54,7 @@ public class MorskaImporter(
|
||||
|
||||
var layer = new Layer
|
||||
{
|
||||
Number = db.Layers.Count() + 1,
|
||||
Number = _db.Layers.Count() + 1,
|
||||
ParentId = importWorker.Id,
|
||||
Type = LayerType.Import,
|
||||
CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"),
|
||||
@@ -57,7 +66,7 @@ public class MorskaImporter(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataRangeResponse = googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var dataRangeResponse = _googleSheetValues.Get(sheetId, $"{sheetTabName}!{dataRange}").Execute();
|
||||
var data = dataRangeResponse.Values;
|
||||
for (var i = 0; i < data[1].Count; i++)
|
||||
{
|
||||
@@ -73,9 +82,9 @@ public class MorskaImporter(
|
||||
};
|
||||
newRecords.Add(record);
|
||||
}
|
||||
db.Layers.Add(layer);
|
||||
_db.Layers.Add(layer);
|
||||
// TODO: Save records to the layer
|
||||
//controller.SaveRecords(layer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using DiunaBI.Core.Interfaces;
|
||||
using DiunaBI.Core.Models;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public abstract class MorskaBaseProcessor : IDataProcessor
|
||||
{
|
||||
public abstract string ProcessorType { get; }
|
||||
|
||||
public virtual bool CanProcess(string processorType) => ProcessorType == processorType;
|
||||
|
||||
public abstract void Process(Layer processWorker);
|
||||
}
|
||||
@@ -9,11 +9,20 @@ using DiunaBI.Core.Services.Calculations;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T1R1Processor(
|
||||
public class T1R1Processor : MorskaBaseProcessor
|
||||
{
|
||||
public override string ProcessorType => "T1.R1";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
public T1R1Processor(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var sources = processWorker.Records?.Where(x => x.Code == "Source").ToList();
|
||||
@@ -22,7 +31,7 @@ public class T1R1Processor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -37,7 +46,7 @@ public class T1R1Processor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}-R1-T1";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -66,7 +75,7 @@ public class T1R1Processor(
|
||||
foreach (var source in sources)
|
||||
{
|
||||
var monthCopy = month;
|
||||
var dataSource = db.Layers.Where(x =>
|
||||
var dataSource = _db.Layers.Where(x =>
|
||||
x.Type == LayerType.Processed &&
|
||||
!x.IsDeleted && !x.IsCancelled &&
|
||||
x.Name != null && x.Name.Contains($"{year}/{monthCopy:D2}-{source.Desc1}-T3")
|
||||
@@ -180,15 +189,15 @@ public class T1R1Processor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: Save records to the layer
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
|
||||
var sheetName = processWorker.Records?.SingleOrDefault(x => x.Code == "GoogleSheetName")?.Desc1;
|
||||
if (sheetName == null)
|
||||
@@ -202,10 +211,10 @@ public class T1R1Processor(
|
||||
private void UpdateReport(Guid sourceId, string sheetName)
|
||||
{
|
||||
const string sheetId = "1pph-XowjlK5CIaCEV_A5buK4ceJ0Z0YoUlDI4VMkhhA";
|
||||
var request = googleSheetValues.Get(sheetId, $"{sheetName}!C4:DA4");
|
||||
var request = _googleSheetValues.Get(sheetId, $"{sheetName}!C4:DA4");
|
||||
var response = request.Execute();
|
||||
|
||||
var r1 = db.Layers
|
||||
var r1 = _db.Layers
|
||||
.Where(x => x.Id == sourceId)
|
||||
.Include(x => x.Records)
|
||||
.AsNoTracking()
|
||||
@@ -256,7 +265,7 @@ public class T1R1Processor(
|
||||
valueRange.Values.Add(emptyRow);
|
||||
valueRange.Values.Add(valuesSum);
|
||||
|
||||
var update = googleSheetValues.Update(valueRange, sheetId, $"{sheetName}!C7:DA20");
|
||||
var update = _googleSheetValues.Update(valueRange, sheetId, $"{sheetName}!C7:DA20");
|
||||
update.ValueInputOption =
|
||||
SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
update.Execute();
|
||||
@@ -279,7 +288,7 @@ public class T1R1Processor(
|
||||
valueRangeTime.Values.Add(timeUtc);
|
||||
valueRangeTime.Values.Add(timeWarsaw);
|
||||
|
||||
var updateTimeUtc = googleSheetValues.Update(valueRangeTime, sheetId, $"{sheetName}!G1:G2");
|
||||
var updateTimeUtc = _googleSheetValues.Update(valueRangeTime, sheetId, $"{sheetName}!G1:G2");
|
||||
updateTimeUtc.ValueInputOption =
|
||||
SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateTimeUtc.Execute();
|
||||
@@ -9,11 +9,20 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T1R3Processor(
|
||||
public class T1R3Processor : MorskaBaseProcessor
|
||||
{
|
||||
public override string ProcessorType => "T1.R3";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
public T1R3Processor(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var source = processWorker.Records?.Where(x => x.Code == "Source").First().Desc1;
|
||||
@@ -22,7 +31,7 @@ public class T1R3Processor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -37,7 +46,7 @@ public class T1R3Processor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}-R3-T1";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -53,7 +62,7 @@ public class T1R3Processor(
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
string pattern = @$"^L\d+-P-{year}/\d+-{source}-T5$";
|
||||
var dataSources = db.Layers
|
||||
var dataSources = _db.Layers
|
||||
.Where(x => !x.IsDeleted && !x.IsCancelled)
|
||||
.Include(layer => layer.Records!)
|
||||
.AsNoTracking()
|
||||
@@ -93,15 +102,15 @@ public class T1R3Processor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
|
||||
UpdateReport(processedLayer.Id, year);
|
||||
}
|
||||
@@ -110,7 +119,7 @@ public class T1R3Processor(
|
||||
{
|
||||
const string sheetId = "10Xo8BBF92nM7_JzzeOuWp49Gz8OsYuCxLDOeChqpW_8";
|
||||
|
||||
var r3 = db.Layers
|
||||
var r3 = _db.Layers
|
||||
.Where(x => x.Id == sourceId)
|
||||
.Include(x => x.Records)
|
||||
.AsNoTracking()
|
||||
@@ -122,7 +131,7 @@ public class T1R3Processor(
|
||||
ValueRange? dataRangeResponse;
|
||||
try
|
||||
{
|
||||
dataRangeResponse = googleSheetValues.Get(sheetId, $"{sheetName}!A7:A200").Execute();
|
||||
dataRangeResponse = _googleSheetValues.Get(sheetId, $"{sheetName}!A7:A200").Execute();
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -161,7 +170,7 @@ public class T1R3Processor(
|
||||
}
|
||||
|
||||
dataRangeResponse.Values = data;
|
||||
var update = googleSheetValues.Update(updateValueRange, sheetId, $"{sheetName}!C7:Q200");
|
||||
var update = _googleSheetValues.Update(updateValueRange, sheetId, $"{sheetName}!C7:Q200");
|
||||
update.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
update.Execute();
|
||||
|
||||
@@ -183,7 +192,7 @@ public class T1R3Processor(
|
||||
valueRangeTime.Values.Add(timeUtc);
|
||||
valueRangeTime.Values.Add(timeWarsaw);
|
||||
|
||||
var updateTimeUtc = googleSheetValues.Update(valueRangeTime, sheetId, $"{sheetName}!G1:G2");
|
||||
var updateTimeUtc = _googleSheetValues.Update(valueRangeTime, sheetId, $"{sheetName}!G1:G2");
|
||||
updateTimeUtc.ValueInputOption =
|
||||
SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateTimeUtc.Execute();
|
||||
@@ -5,10 +5,17 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3MultiSourceCopySelectedCodesProcessor(
|
||||
AppDbContext db)
|
||||
public class T3MultiSourceCopySelectedCodesProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.MultiSourceCopySelectedCodes";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
public T3MultiSourceCopySelectedCodesProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var month = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Month")?.Desc1!);
|
||||
@@ -25,7 +32,7 @@ public class T3MultiSourceCopySelectedCodesProcessor(
|
||||
|
||||
var codesList = ProcessHelper.ParseCodes(codes);
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -40,7 +47,7 @@ public class T3MultiSourceCopySelectedCodesProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/{month:D2}-AB-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -52,7 +59,7 @@ public class T3MultiSourceCopySelectedCodesProcessor(
|
||||
processedLayer.ModifiedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
processedLayer.ModifiedAt = DateTime.UtcNow;
|
||||
|
||||
var dataSources = sources.Select(source => db.Layers
|
||||
var dataSources = sources.Select(source => _db.Layers
|
||||
.Where(x => x.Type == LayerType.Processed && !x.IsDeleted && !x.IsCancelled && x.Name != null && x.Name.Contains($"{year}/{month:D2}-{source.Desc1}-T3"))
|
||||
.Include(x => x.Records).AsNoTracking()
|
||||
.FirstOrDefault())
|
||||
@@ -85,14 +92,14 @@ public class T3MultiSourceCopySelectedCodesProcessor(
|
||||
.ToList();
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: Save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -5,14 +5,21 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3MultiSourceCopySelectedCodesYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
public class T3MultiSourceCopySelectedCodesYearSummaryProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.MultiSourceCopySelectedCodesYearSummary";
|
||||
private readonly AppDbContext _db;
|
||||
|
||||
public T3MultiSourceCopySelectedCodesYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -27,7 +34,7 @@ public class T3MultiSourceCopySelectedCodesYearSummaryProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/13-AB-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -46,7 +53,7 @@ public class T3MultiSourceCopySelectedCodesYearSummaryProcessor(
|
||||
for (var i = 1; i < 13; i++)
|
||||
{
|
||||
var j = i;
|
||||
var dataSource = db.Layers.Where(x =>
|
||||
var dataSource = _db.Layers.Where(x =>
|
||||
x.Type == LayerType.Processed
|
||||
&& !x.IsDeleted && !x.IsCancelled
|
||||
&& x.Name != null && x.Name.Contains($"{year}/{j:D2}-AB-T3"))
|
||||
@@ -87,14 +94,14 @@ public class T3MultiSourceCopySelectedCodesYearSummaryProcessor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,17 @@ using DiunaBI.Core.Services.Calculations;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3MultiSourceSummaryProcessor(
|
||||
AppDbContext db)
|
||||
public class T3MultiSourceSummaryProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.MultiSourceSummary";
|
||||
private readonly AppDbContext _db;
|
||||
|
||||
T3MultiSourceSummaryProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var month = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Month")?.Desc1!);
|
||||
@@ -19,7 +26,7 @@ public class T3MultiSourceSummaryProcessor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -34,7 +41,7 @@ public class T3MultiSourceSummaryProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/{month:D2}-AA-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -48,7 +55,7 @@ public class T3MultiSourceSummaryProcessor(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataSources = sources.Select(source => db.Layers.Where(x => x.Type == LayerType.Processed && !x.IsDeleted && !x.IsCancelled && x.Name != null && x.Name.Contains($"{year}/{month:D2}-{source.Desc1}-T3"))
|
||||
var dataSources = sources.Select(source => _db.Layers.Where(x => x.Type == LayerType.Processed && !x.IsDeleted && !x.IsCancelled && x.Name != null && x.Name.Contains($"{year}/{month:D2}-{source.Desc1}-T3"))
|
||||
.Include(x => x.Records)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault())
|
||||
@@ -165,14 +172,14 @@ public class T3MultiSourceSummaryProcessor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,16 @@ using DiunaBI.Core.Services.Calculations;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3MultiSourceYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
public class T3MultiSourceYearSummaryProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.MultiSourceYearSummary";
|
||||
private readonly AppDbContext _db;
|
||||
T3MultiSourceYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var sources = processWorker.Records?.Where(x => x.Code == "Source").ToList();
|
||||
@@ -18,7 +24,7 @@ public class T3MultiSourceYearSummaryProcessor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -33,7 +39,7 @@ public class T3MultiSourceYearSummaryProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/13-AA-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -47,7 +53,7 @@ public class T3MultiSourceYearSummaryProcessor(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataSources = sources.Select(source => db.Layers.Where(x => x.Type == LayerType.Processed && !x.IsDeleted && !x.IsCancelled && x.Name != null && x.Name.Contains($"{year}/13-{source.Desc1}-T3"))
|
||||
var dataSources = sources.Select(source => _db.Layers.Where(x => x.Type == LayerType.Processed && !x.IsDeleted && !x.IsCancelled && x.Name != null && x.Name.Contains($"{year}/13-{source.Desc1}-T3"))
|
||||
.Include(x => x.Records)
|
||||
.AsNoTracking()
|
||||
.FirstOrDefault())
|
||||
@@ -185,14 +191,14 @@ public class T3MultiSourceYearSummaryProcessor(
|
||||
}
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,16 @@ using DiunaBI.Core.Services;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3SingleSourceProcessor(
|
||||
AppDbContext db)
|
||||
public class T3SingleSourceProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.SingleSource";
|
||||
private readonly AppDbContext _db;
|
||||
public T3SingleSourceProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var month = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Month")?.Desc1!);
|
||||
@@ -17,7 +23,7 @@ public class T3SingleSourceProcessor(
|
||||
{
|
||||
throw new Exception("SourceLayer record not found");
|
||||
}
|
||||
var sourceImportWorker = db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
var sourceImportWorker = _db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
if (sourceImportWorker == null)
|
||||
{
|
||||
throw new Exception("SourceImportWorkerL layer not found");
|
||||
@@ -28,7 +34,7 @@ public class T3SingleSourceProcessor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
.FirstOrDefault();
|
||||
@@ -42,7 +48,7 @@ public class T3SingleSourceProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/{month:D2}-{source}-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -57,7 +63,7 @@ public class T3SingleSourceProcessor(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataSources = db.Layers
|
||||
var dataSources = _db.Layers
|
||||
.Include(x => x.Records)
|
||||
.Where(x => x.ParentId == sourceImportWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
@@ -127,15 +133,15 @@ public class T3SingleSourceProcessor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,10 +5,16 @@ using DiunaBI.Core.Services;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T3SourceYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
public class T3SourceYearSummaryProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T3.SourceYearSummary";
|
||||
private readonly AppDbContext _db;
|
||||
public T3SourceYearSummaryProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1;
|
||||
var source = processWorker.Records?.SingleOrDefault(x => x.Code == "Source")?.Desc1;
|
||||
@@ -16,7 +22,7 @@ public class T3SourceYearSummaryProcessor(
|
||||
{
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -31,7 +37,7 @@ public class T3SourceYearSummaryProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/13-{source}-T3";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -49,7 +55,7 @@ public class T3SourceYearSummaryProcessor(
|
||||
for (var i = 1; i < 13; i++)
|
||||
{
|
||||
var j = i;
|
||||
var dataSource = db.Layers.Where(x =>
|
||||
var dataSource = _db.Layers.Where(x =>
|
||||
x.Type == LayerType.Processed
|
||||
&& !x.IsDeleted && !x.IsCancelled
|
||||
&& x.Name != null && x.Name.Contains($"{year}/{j:D2}-{source}-T3"))
|
||||
@@ -89,14 +95,14 @@ public class T3SourceYearSummaryProcessor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
//TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,20 @@ using DiunaBI.Core.Services;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T4R2Processor(
|
||||
public class T4R2Processor : MorskaBaseProcessor
|
||||
{
|
||||
public override string ProcessorType => "T4.R2";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
private readonly SpreadsheetsResource.ValuesResource _googleSheetValues;
|
||||
public T4R2Processor(
|
||||
AppDbContext db,
|
||||
SpreadsheetsResource.ValuesResource googleSheetValues)
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
{
|
||||
_db = db;
|
||||
_googleSheetValues = googleSheetValues;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var sources = processWorker.Records?.Where(x => x.Code == "Source").ToList();
|
||||
@@ -29,7 +38,7 @@ public class T4R2Processor(
|
||||
}
|
||||
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -44,7 +53,7 @@ public class T4R2Processor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-{layerName}";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -76,7 +85,7 @@ public class T4R2Processor(
|
||||
if ((year == DateTime.UtcNow.Year && month <= DateTime.UtcNow.Month) || year < DateTime.UtcNow.Year)
|
||||
{
|
||||
var monthCopy = month;
|
||||
var dataSource = db.Layers.Where(x =>
|
||||
var dataSource = _db.Layers.Where(x =>
|
||||
x.Type == LayerType.Processed &&
|
||||
!x.IsDeleted && !x.IsCancelled &&
|
||||
x.Name != null && x.Name.Contains($"{year}/{monthCopy:D2}-{source.Desc1}-T")
|
||||
@@ -144,7 +153,7 @@ public class T4R2Processor(
|
||||
}
|
||||
|
||||
// year summary
|
||||
var dataSourceSum = db.Layers.Where(x =>
|
||||
var dataSourceSum = _db.Layers.Where(x =>
|
||||
x.Type == LayerType.Processed &&
|
||||
!x.IsDeleted && !x.IsCancelled &&
|
||||
x.Name != null && x.Name.Contains($"{year}/13-{source.Desc1}-T")
|
||||
@@ -189,15 +198,15 @@ public class T4R2Processor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
// TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
|
||||
var reportSheetName = processWorker.Records?.SingleOrDefault(x => x.Code == "GoogleSheetName")?.Desc1;
|
||||
if (reportSheetName == null)
|
||||
@@ -216,10 +225,10 @@ public class T4R2Processor(
|
||||
private void UpdateReport(Guid sourceId, string reportSheetName, string invoicesSheetName)
|
||||
{
|
||||
const string sheetId = "1FsUmk_YRIeeGzFCX9tuUJCaLyRtjutX2ZGAEU1DMfJQ";
|
||||
var request = googleSheetValues.Get(sheetId, "C4:Z4");
|
||||
var request = _googleSheetValues.Get(sheetId, "C4:Z4");
|
||||
var response = request.Execute();
|
||||
|
||||
var r2 = db.Layers
|
||||
var r2 = _db.Layers
|
||||
.Where(x => x.Id == sourceId && !x.IsDeleted && !x.IsCancelled)
|
||||
.Include(x => x.Records)
|
||||
.AsNoTracking()
|
||||
@@ -249,7 +258,7 @@ public class T4R2Processor(
|
||||
{
|
||||
Values = new List<IList<object>> { values }
|
||||
};
|
||||
var update = googleSheetValues.Update(valueRange, sheetId, $"{reportSheetName}!C{row}:XZ{row}");
|
||||
var update = _googleSheetValues.Update(valueRange, sheetId, $"{reportSheetName}!C{row}:XZ{row}");
|
||||
update.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
update.Execute();
|
||||
}
|
||||
@@ -277,7 +286,7 @@ public class T4R2Processor(
|
||||
{
|
||||
Values = new List<IList<object>> { emptyRow }
|
||||
};
|
||||
var updateEmpty = googleSheetValues.Update(valueRangeEmpty, sheetId, $"{reportSheetName}!C{rowEmpty}:XZ{rowEmpty}");
|
||||
var updateEmpty = _googleSheetValues.Update(valueRangeEmpty, sheetId, $"{reportSheetName}!C{rowEmpty}:XZ{rowEmpty}");
|
||||
updateEmpty.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateEmpty.Execute();
|
||||
|
||||
@@ -285,7 +294,7 @@ public class T4R2Processor(
|
||||
{
|
||||
Values = new List<IList<object>> { valuesSum }
|
||||
};
|
||||
var updateSum = googleSheetValues.Update(valueRangeSum, sheetId, $"{reportSheetName}!C{rowSum}:XZ{rowSum}");
|
||||
var updateSum = _googleSheetValues.Update(valueRangeSum, sheetId, $"{reportSheetName}!C{rowSum}:XZ{rowSum}");
|
||||
updateSum.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateSum.Execute();
|
||||
|
||||
@@ -298,7 +307,7 @@ public class T4R2Processor(
|
||||
{
|
||||
Values = new List<IList<object>> { timeUtc }
|
||||
};
|
||||
var updateTimeUtc = googleSheetValues.Update(valueRangeUtcTime, sheetId, $"{reportSheetName}!G1");
|
||||
var updateTimeUtc = _googleSheetValues.Update(valueRangeUtcTime, sheetId, $"{reportSheetName}!G1");
|
||||
updateTimeUtc.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateTimeUtc.Execute();
|
||||
|
||||
@@ -312,7 +321,7 @@ public class T4R2Processor(
|
||||
{
|
||||
Values = new List<IList<object>> { timeWarsaw }
|
||||
};
|
||||
var updateTimeWarsaw = googleSheetValues.Update(valueRangeWarsawTime, sheetId, $"{reportSheetName}!G2");
|
||||
var updateTimeWarsaw = _googleSheetValues.Update(valueRangeWarsawTime, sheetId, $"{reportSheetName}!G2");
|
||||
updateTimeWarsaw.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateTimeWarsaw.Execute();
|
||||
|
||||
@@ -346,14 +355,14 @@ public class T4R2Processor(
|
||||
|
||||
|
||||
var cleanupValueRange = new ValueRange { Values = cleanUpValues };
|
||||
var cleanupInvoices = googleSheetValues.Update(cleanupValueRange, sheetId, $"{invoicesSheetName}!A6:E");
|
||||
var cleanupInvoices = _googleSheetValues.Update(cleanupValueRange, sheetId, $"{invoicesSheetName}!A6:E");
|
||||
cleanupInvoices.ValueInputOption =
|
||||
SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
cleanupInvoices.Execute();
|
||||
|
||||
|
||||
var invoicesValueRange = new ValueRange { Values = invoicesValues };
|
||||
var updateInvoices = googleSheetValues.Update(invoicesValueRange, sheetId, $"{invoicesSheetName}!A6:E");
|
||||
var updateInvoices = _googleSheetValues.Update(invoicesValueRange, sheetId, $"{invoicesSheetName}!A6:E");
|
||||
updateInvoices.ValueInputOption =
|
||||
SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
|
||||
updateInvoices.Execute();
|
||||
@@ -4,10 +4,17 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T4SingleSourceProcessor(
|
||||
AppDbContext db)
|
||||
public class T4SingleSourceProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T4.SingleSource";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
public T4SingleSourceProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var month = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Month")?.Desc1!);
|
||||
@@ -16,7 +23,7 @@ public class T4SingleSourceProcessor(
|
||||
{
|
||||
throw new Exception("SourceLayer record not found");
|
||||
}
|
||||
var sourceImportWorker = db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
var sourceImportWorker = _db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
if (sourceImportWorker == null)
|
||||
{
|
||||
throw new Exception("SourceImportWorkerL layer not found");
|
||||
@@ -27,7 +34,7 @@ public class T4SingleSourceProcessor(
|
||||
throw new Exception("Source record not found");
|
||||
}
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id &&
|
||||
!x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -42,7 +49,7 @@ public class T4SingleSourceProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/{month:D2}-{source}-T4";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -55,7 +62,7 @@ public class T4SingleSourceProcessor(
|
||||
processedLayer.ModifiedAt = DateTime.UtcNow;
|
||||
|
||||
|
||||
var dataSource = db.Layers
|
||||
var dataSource = _db.Layers
|
||||
.Include(x => x.Records)
|
||||
.Where(x => x.ParentId == sourceImportWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
@@ -81,15 +88,15 @@ public class T4SingleSourceProcessor(
|
||||
|
||||
if (isNew)
|
||||
{
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
}
|
||||
// TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,21 +5,28 @@ using DiunaBI.Database.Context;
|
||||
|
||||
namespace DiunaBI.Plugins.Morska.Processors;
|
||||
|
||||
public class T5LastValuesProcessor(
|
||||
AppDbContext db)
|
||||
public class T5LastValuesProcessor : MorskaBaseProcessor
|
||||
{
|
||||
public void Process(Layer processWorker)
|
||||
public override string ProcessorType => "T5.LastValues";
|
||||
|
||||
private readonly AppDbContext _db;
|
||||
public T5LastValuesProcessor(
|
||||
AppDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
public override void Process(Layer processWorker)
|
||||
{
|
||||
var year = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Year")?.Desc1!);
|
||||
var month = int.Parse(processWorker.Records?.SingleOrDefault(x => x.Code == "Month")?.Desc1!);
|
||||
var sourceLayer = processWorker.Records?.SingleOrDefault(x => x.Code == "SourceLayer")?.Desc1;
|
||||
if (sourceLayer == null) throw new Exception("SourceLayer record not found");
|
||||
var sourceImportWorker = db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
var sourceImportWorker = _db.Layers.SingleOrDefault(x => x.Name == sourceLayer && !x.IsDeleted && !x.IsCancelled);
|
||||
if (sourceImportWorker == null) throw new Exception("SourceImportWorker layer not found");
|
||||
var source = processWorker.Records?.SingleOrDefault(x => x.Code == "Source")?.Desc1;
|
||||
if (sourceLayer == null) throw new Exception("Source record not found");
|
||||
|
||||
var processedLayer = db.Layers
|
||||
var processedLayer = _db.Layers
|
||||
.Where(x => x.ParentId == processWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
.OrderByDescending(x => x.CreatedAt)
|
||||
@@ -34,7 +41,7 @@ public class T5LastValuesProcessor(
|
||||
Id = Guid.NewGuid(),
|
||||
Type = LayerType.Processed,
|
||||
ParentId = processWorker.Id,
|
||||
Number = db.Layers.Count() + 1
|
||||
Number = _db.Layers.Count() + 1
|
||||
};
|
||||
processedLayer.Name = $"L{processedLayer.Number}-P-{year}/{month:D2}-{source}-T5";
|
||||
processedLayer.CreatedById = Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D");
|
||||
@@ -48,7 +55,7 @@ public class T5LastValuesProcessor(
|
||||
|
||||
var newRecords = new List<Record>();
|
||||
|
||||
var dataSources = db.Layers
|
||||
var dataSources = _db.Layers
|
||||
.Include(x => x.Records)
|
||||
.Where(x => x.ParentId == sourceImportWorker.Id
|
||||
&& !x.IsDeleted && !x.IsCancelled)
|
||||
@@ -85,11 +92,11 @@ public class T5LastValuesProcessor(
|
||||
}
|
||||
|
||||
if (isNew)
|
||||
db.Layers.Add(processedLayer);
|
||||
_db.Layers.Add(processedLayer);
|
||||
else
|
||||
db.Layers.Update(processedLayer);
|
||||
_db.Layers.Update(processedLayer);
|
||||
// TODO: save records
|
||||
//controller.SaveRecords(processedLayer.Id, newRecords, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
|
||||
db.SaveChanges();
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user