62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|