public PulseMeasurement ParseCsvPulseMeasurement(string path, string fileName, string csvKey) { PulseMeasurement pulseMeasurement = new PulseMeasurement(); try { using (var reader = new StreamReader(path + fileName)) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { csv.Configuration.RegisterClassMap <PulseStatisticMap>(); csv.Configuration.Delimiter = ";"; csv.Configuration.MissingFieldFound = null; skipCsvResumeUntilKey(csv, csvKey); var pulseStatisticRecords = csv.GetRecords <PulseStatistic>(); pulseMeasurement.AddPulseStatistics(pulseStatisticRecords.ToList()); } } catch (Exception e) { Console.WriteLine("Ocurrio un error en el procesamiento de las mediciones de pulso"); Console.WriteLine(e.Message); throw e; } return(pulseMeasurement); }
private void biometricsBtn_Click(object sender, EventArgs e) { string promptValue = new Prompt("Procesamiento biometrico", "Ingrese el número de sección de la prueba de la que desea hacer el procesamiento de datos biometricos").show(); if (!int.TryParse(promptValue, out int section)) { throw new Exception("Error al intentar parsear el número de seccción. Verifique que los datos sean correctos"); } ParserService parserService = new ParserService(); try { SkinMeasurement skinMeasurement = parserService.ParseCsvSkinMeasurement(SkinMeasurement.PATH, SkinMeasurement.FILE_NAME, SkinMeasurement.CSV_KEY); SkinDao skinDao = new SkinDao(); skinDao.SaveSkinMeasurement(skinMeasurement, section); } catch (Exception ex) { MessageBox.Show(ex.Message); } try { PulseMeasurement pulseMeasurement = parserService.ParseCsvPulseMeasurement(PulseMeasurement.PATH, PulseMeasurement.FILE_NAME, PulseMeasurement.CSV_KEY); PulseDao pulseDao = new PulseDao(); pulseDao.SavePulseMeasurement(pulseMeasurement, section); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void SavePulseMeasurement(PulseMeasurement pulseMeasurement, int seccion) { SqlConnection dbConnection = DbConnection.GetConnection(); try { dbConnection.Open(); //TODO: ver si es transacional foreach (PulseStatistic pulseStatistic in pulseMeasurement.pulseStatistics) { SqlCommand command = createCommandForRecord(seccion, dbConnection, pulseStatistic); int recordsAffected = command.ExecuteNonQuery(); } } catch (SqlException e) { Console.WriteLine("Fallo la escritura de pulso en la base"); Console.WriteLine(e.Message); } finally { dbConnection.Close(); } }