Plugins engine is working

This commit is contained in:
Michał Zieliński
2025-06-02 16:54:33 +02:00
parent 8df1b34478
commit 099d72618f
29 changed files with 668 additions and 227 deletions

View File

@@ -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());