Files
DiunaBI/WebAPI/dataParsers/morskaK5.parser.cs

63 lines
2.0 KiB
C#
Raw Normal View History

2023-08-20 13:05:10 +02:00
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();
2024-03-09 08:53:47 +01:00
layer.Source = "GoogleSheet";
2023-08-20 13:05:10 +02:00
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")}";
2023-08-22 19:26:08 +02:00
layer.Type = LayerType.import;
2023-08-20 13:05:10 +02:00
List<Record> records = new List<Record>();
for (int i = 1; i < data[1].Count; i++)
2024-03-09 08:53:47 +01:00
{
double value;
2023-08-20 13:05:10 +02:00
2024-03-09 08:53:47 +01:00
if (
data[1][i].ToString()?.Length > 0 &&
double.TryParse(data[2][i].ToString(), CultureInfo.GetCultureInfo("pl-PL"), out value))
{
2023-08-20 13:05:10 +02:00
Record record = new Record();
record.Id = Guid.NewGuid();
record.Code = data[1][i].ToString();
2023-08-21 13:00:05 +02:00
record.Value1 = value;
2023-08-20 13:05:10 +02:00
record.CreatedAt = DateTime.UtcNow;
record.ModifiedAt = DateTime.UtcNow;
2024-03-09 08:53:47 +01:00
records.Add(record);
2023-08-20 13:05:10 +02:00
};
}
layer.Records = records;
return layer;
}
}
}