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 records = new List(); 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.Value1 = value; record.CreatedAt = DateTime.UtcNow; record.ModifiedAt = DateTime.UtcNow; records.Add(record); }; } layer.Records = records; return layer; } } }