Example #1
0
        /// <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;
            }
        }
Example #2
0
        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;
            }
        }
Example #4
0
 public void Create([FromBody] CsvEntity entity)
 {
     _csvService.AddNewRecord(entity);
 }
Example #5
0
 public void Delete([FromBody] CsvEntity entity)
 {
     _csvService.DeleteRecordFromCsvFile(entity.Url);
 }