Morsksa K5 data parser

This commit is contained in:
Michał Zieliński
2023-08-20 13:05:10 +02:00
parent 2f1cd940f1
commit 8a556b8b71
6 changed files with 91 additions and 9 deletions

View File

@@ -141,6 +141,25 @@ namespace WebAPI.Controllers
layer.Name = $"W{layer.Number}-I-{sheetName}-{parsedSheet.date}-{DateTime.Now.ToString("yyyyMMddHHmm")}";
AddLayer(layer, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
return Ok("OK");
}
[HttpGet]
[Route("autoImportMorska/{apiKey}")]
[AllowAnonymous]
public IActionResult autoImportMorska(string apiKey)
{
if (Request.Host.Value != "localhost:5400" || apiKey != configuration["apiKey"])
{
return Unauthorized();
}
morskaK5Parser parser = new morskaK5Parser(googleSheetValues, db);
Layer layer = parser.parse();
AddLayer(layer, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
return Ok("OK");
}

View File

@@ -12,7 +12,7 @@
},
"GoogleClientId": "107631825312-bkfe438ehr9k9ecb2h76g802tj6advma.apps.googleusercontent.com",
"Secret": "8393AF8EAEF8478CB738D44858690F9C7E2D19F65896DD9FBAA3EB2A6F493E80",
"apiKey": "9ecb2h76g802tF65896DD9FBAA3EB2A6F493",
"apiKey": "10763478CB738D4ecb2h76g803478CB738D4e",
"Kestrel": {
"Endpoints": {
"Http": {

View File

@@ -0,0 +1,61 @@
using Google.Apis.Sheets.v4;
using System.Globalization;
using WebAPI.Models;
namespace WebAPI.dataParsers
{
public class morskaK5Parser
{
private SpreadsheetsResource.ValuesResource googleSheetValues;
private AppDbContext db;
public morskaK5Parser(
SpreadsheetsResource.ValuesResource _googleSheetValues,
AppDbContext _db)
{
googleSheetValues = _googleSheetValues;
db = _db;
}
public Layer parse()
{
Layer layer = new Layer();
layer.Source = "GoogleSheet";
string sheetId = "1ZzndU8HjYqz5VKCcrVHBOFW8fqpYfwquclznX9q39Yk";
var range = "Sierpien_2023!B3:AR5";
var request = googleSheetValues.Get(sheetId, range);
var response = request.Execute();
var data = response.Values;
layer.Source = "GoogleSheet";
layer.Number = db.Layers.Count() + 1;
layer.Name = $"L{layer.Number}-I-{data[0][1]}-{data[0][2]}/{data[0][3]}-{DateTime.Now.ToString("yyyyMMddHHmm")}";
List<Record> records = new List<Record>();
for (int i = 1; i < data[1].Count; i++)
{
float value;
if (
data[1][i].ToString()?.Length > 0 &&
float.TryParse(data[2][i].ToString(), CultureInfo.GetCultureInfo("pl-PL"), out value))
{
Record record = new Record();
record.Id = Guid.NewGuid();
record.Code = data[1][i].ToString();
record.Value = value;
record.CreatedAt = DateTime.UtcNow;
record.ModifiedAt = DateTime.UtcNow;
records.Add(record);
};
}
layer.Records = records;
return layer;
}
}
}