public static CsvParser <Order> CreateParser()
        {
            var tokenizerOptions = new Options('"', '\\', ',');
            var tokenizer        = new RFC4180Tokenizer(tokenizerOptions);
            var parserOptions    = new CsvParserOptions(true, tokenizer);
            var mapper           = new CsvOrderMapper();
            var parser           = new CsvParser <Order>(parserOptions, mapper);

            return(parser);
        }
Beispiel #2
0
            public List <OrderRow> AddOrdersFromFiles(List <OrderRow> orders, string path)
            {
                try
                {
                    if (!Directory.Exists(path))
                    {
                        throw new Exception("Path does not exists");
                    }

                    var files = FileService.GetFiles(path);

                    foreach (var file in files)
                    {
                        if (Path.GetExtension(file).Equals(".txt", StringComparison.InvariantCultureIgnoreCase))
                        {
                            var fileName = Path.GetFileName(file);
                            if (FileIsAlreadyRegistered(fileName))
                            {
                                continue;
                            }
                            var parser = new FileParser <OrderRow>('|', true, false, "txt");
                            var rows   = parser.GetRows(file, Encoding.UTF8);
                            foreach (var row in rows)
                            {
                                var splitedRow = parser.GetSplitedRow(row);
                                var order      = new OrderRow();
                                try
                                {
                                    order = CsvOrderMapper.MapRow(splitedRow);
                                }
                                catch (NullReferenceException)
                                {
                                    continue;
                                }

                                if (!OrderIsAlreadyRegistered(order))
                                {
                                    if (AddedOrderSuccessfullyToDatabase(order))
                                    {
                                        orders.Add(order);
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception($" Erro: {ex.Message}");
                }

                return(orders);
            }
Beispiel #3
0
        public void MapOrder_MapListToOrder_ShouldMapSuccessfully()
        {
            List <string> orderElements = new List <string>
            {
                "17835", "0001", "123-100", "2", "1x1 Red Piece", "", "0.05", "Normal", "2021-04-24", "Kalle Svensson", "265849"
            };

            var order = CsvOrderMapper.MapRow(orderElements);

            Assert.AreEqual(order.OrderNumber, "17835");
            Assert.AreEqual(order.ProductNumber, "123-100");
            Assert.AreEqual(order.Quantity, 2);
            Assert.AreEqual(order.Description, "");
            Assert.AreEqual(order.CustomerName, "Kalle Svensson");
            Assert.AreEqual(order.CustomerNumber, "265849");
        }