/// <summary> /// Método responsável por ler as linhas do CSV e criar a lista com as linhas lidas /// </summary> /// <returns></returns> public static List <CsvEntity> ReadCSV(CsvInfos path) { try { Console.WriteLine("I will start reading your invoice."); List <CsvEntity> lstCsv = new List <CsvEntity>(); using (var reader = new StreamReader(path.Diretorio)) { while (!reader.EndOfStream) { CsvEntity csv = new CsvEntity(); var lines = reader.ReadLine(); var values = lines.Split(','); csv.Data = values[0]; csv.Categoria = values[1]; csv.Titulo = values[2]; csv.Valor = values[3]; lstCsv.Add(csv); } } return(lstCsv); } catch (Exception ex) { throw ex; } }
public void AddNewRecord(CsvEntity entity) { var records = ReadCsvFile(); if (records.Count > 7) { throw new System.InvalidOperationException("Cannot monitor more than 7 sites simultaneously"); } else if (records.Any(x => x.Url == entity.Url)) { throw new System.InvalidOperationException("Cannot insert duplicated sites"); } else { records.Add(entity); using var writer = new StreamWriter(_config.GetValue <string>( "CSV:FileLocation")); using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.WriteHeader <CsvEntity>(); csv.NextRecord(); csv.WriteRecords(records); } } }
public override IEnumerable<Entity> Generate() { var entityName = CreateEntityName(_dataFile.FileName.Replace(".csv", string.Empty)); var itemCount = GetRowCount(_dataFile.FullFileName); using (var csvReader = CreateCsvReader(_dataFile.FullFileName)) { csvReader.Read(); var entity = new CsvEntity(entityName, _dataFile.FileName, itemCount); var headers = csvReader.FieldHeaders; for (int i = 0; i < headers.Length; i++) { var header = headers[i]; var record = csvReader.CurrentRecord == null?String.Empty:csvReader.CurrentRecord[i]; entity.Properties.Add(new EntityProperty(header, DetectType(record), record)); } yield return entity; } }
public void Create([FromBody] CsvEntity entity) { _csvService.AddNewRecord(entity); }
public void Delete([FromBody] CsvEntity entity) { _csvService.DeleteRecordFromCsvFile(entity.Url); }