示例#1
0
        public void ReadAll_ExistingStream_ReturnsRecords()
        {
            const string input = "Header#1;Header#2;Header#3\r\n1;2;3\r\n4;5;6";

            var transformer = new NullTransformerForAdapterTesting
                              (
                new [] { "Header#1", "Header#2", "Header#3" },
                new []
            {
                new[] { "1", "2", "3" },
                new[] { "4", "5", "6" }
            }
                              );

            using (var dialect = new Dialect
            {
                DoubleQuote = true,
                Delimiter = ';',
                Quote = '"',
                Escape = '\\',
                SkipInitialSpace = true,
                LineTerminator = "\n\r",
                Quoting = QuoteStyle.QuoteNone,
                Strict = true,
                HasHeader = true
            })
            {
                using (var adapter = new CSVAdapter(dialect, new StringReader(input)))
                {
                    adapter.ReadAll(transformer);
                }
            }
        }
示例#2
0
        public async Task ReadAllAsync_ExistingFileName_ReturnsRecords()
        {
            var filename = Path.Combine(TestContext.CurrentContext.TestDirectory, "test.csv");

            var transformer = new NullTransformerForAdapterTesting
                              (
                new[] { "Header#1", "Header#2", "Header#3" },
                new[]
            {
                new [] { "1", "2", "3" },
                new [] { "4", "5", "6" }
            }
                              );

            using (var dialect = new Dialect
            {
                DoubleQuote = true,
                Delimiter = ';',
                Quote = '"',
                Escape = '\\',
                SkipInitialSpace = true,
                LineTerminator = "\n\r",
                Quoting = QuoteStyle.QuoteNone,
                Strict = true,
                HasHeader = true
            })
            {
                using (var adapter = new CSVAdapter(dialect, filename, "utf-8"))
                {
                    await adapter.ReadAllAsync(transformer);
                }
            }
        }
示例#3
0
        public void WriteAllAsync_NotEqualCellCountInRows_ThrowsException()
        {
            ThrowsAsync <NotEqualCellCountInRowsException>(async() =>
            {
                var headers = new[] { "Header#1", "Header#2", "Header#3" };

                var data = new[]
                {
                    new [] { "1", "2", "3" },
                    new [] { "4", "5" }
                };

                var transformer = new NullTransformerForAdapterTesting(headers, data);

                using (var dialect = new Dialect
                {
                    DoubleQuote = true,
                    Delimiter = ';',
                    Quote = '"',
                    Escape = '\\',
                    SkipInitialSpace = true,
                    LineTerminator = "\n\r",
                    Quoting = QuoteStyle.QuoteNone,
                    Strict = true,
                    HasHeader = false
                })
                {
                    using (var adapter = new CSVAdapter(dialect, new StringWriter(), null))
                    {
                        await adapter.WriteAllAsync(data, transformer);
                    }
                }
            });
        }
示例#4
0
        public async Task WriteAllAsync_WithHeader_WroteRecords()
        {
            var headers = new[] { "Header#1", "Header#2", "Header#3" };

            var data = new[]
            {
                new [] { "1", "2", "3" },
                new [] { "4", "5", "6" }
            };

            var transformer = new NullTransformerForAdapterTesting(headers, data);

            using (var dialect = new Dialect
            {
                DoubleQuote = true,
                Delimiter = ';',
                Quote = '"',
                Escape = '\\',
                SkipInitialSpace = true,
                LineTerminator = "\n\r",
                Quoting = QuoteStyle.QuoteNone,
                Strict = true,
                HasHeader = true
            })
            {
                using (var adapter = new CSVAdapter(dialect, new StringWriter(), headers))
                {
                    await adapter.WriteAllAsync(data, transformer);
                }
            }
        }
示例#5
0
        public void WriteAllAsync_DataTransformerIsNull_ThrowsException()
        {
            ThrowsAsync <DataTransformerIsNullException>(async() =>
            {
                var headers = new[] { "Header#1", "Header#2", "Header#3" };

                var data = new[]
                {
                    new [] { "1", "2", "3" },
                    new [] { "4", "5", "6" }
                };

                using (var dialect = new Dialect
                {
                    DoubleQuote = true,
                    Delimiter = ';',
                    Quote = '"',
                    Escape = '\\',
                    SkipInitialSpace = true,
                    LineTerminator = "\n\r",
                    Quoting = QuoteStyle.QuoteNone,
                    Strict = true,
                    HasHeader = false
                })
                {
                    using (var adapter = new CSVAdapter(dialect, new StringWriter(), headers))
                    {
                        await adapter.WriteAllAsync(data, null);
                    }
                }
            });
        }
示例#6
0
        public void WriteAll_WithoutHeaders_WroteRecords()
        {
            var data = new[]
            {
                new[] { "1", "2", "3" },
                new[] { "4", "5", "6" }
            };

            var transformer = new NullTransformerForAdapterTesting(null, data);

            using (var dialect = new Dialect
            {
                DoubleQuote = true,
                Delimiter = ';',
                Quote = '"',
                Escape = '\\',
                SkipInitialSpace = true,
                LineTerminator = "\n\r",
                Quoting = QuoteStyle.QuoteNone,
                Strict = true,
                HasHeader = false
            })
            {
                using (var adapter = new CSVAdapter(dialect, new StringWriter()))
                {
                    adapter.WriteAll(data, transformer);
                }
            }
        }
示例#7
0
        public async Task ReadAllAsync_WithoutHeaders_ReturnRecords()
        {
            const string input = "1;2;3\r\n4;5;6";

            var transformer = new NullTransformerForAdapterTesting
                              (
                expectedAliases: null,
                expectedResults: new[]
            {
                new[] { "1", "2", "3" },
                new[] { "4", "5", "6" }
            }
                              );

            using (var dialect = new Dialect
            {
                DoubleQuote = true,
                Delimiter = ';',
                Quote = '"',
                Escape = '\\',
                SkipInitialSpace = true,
                LineTerminator = "\n\r",
                Quoting = QuoteStyle.QuoteNone,
                Strict = true,
                HasHeader = false
            })
            {
                using (var adapter = new CSVAdapter(dialect, new StringReader(input)))
                {
                    await adapter.ReadAllAsync(transformer);
                }
            }
        }
示例#8
0
        bool importCSV(string dataFolderPath, out ElementRecords elementRecords)
        {
            CSVAdapter <NodeType> nodeAdapter = new CSVAdapter <NodeType>(dataFolderPath + "Nodes.csv");
            CSVAdapter <EdgeType> edgeAdapter = new CSVAdapter <EdgeType>(dataFolderPath + "Edges.csv");

            if (!nodeAdapter.IsReady() || !edgeAdapter.IsReady())
            {
                elementRecords = null;
                return(false);
            }
            CSVRecord[] nodeRecords = nodeAdapter.GetRecords();
            CSVRecord[] edgeRecrods = edgeAdapter.GetRecords();
            elementRecords = new ElementRecords(nodeRecords, edgeRecrods);
            return(true);
        }
示例#9
0
        public async Task <ActionResult> Upload(IFormFile file)
        {
            if (file == null || file.Length == 0)
            {
                return(Content("file not selected"));
            }
            if (file.FileName.EndsWith(".csv"))
            {
                var employees = CSVAdapter.GetFromCSV(file);
                await service.AddRange(employees);

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(BadRequest());
            }
        }
示例#10
0
        public void Adapter_HeaderIsNull_ThrowsException()
        {
            Throws <HeaderIsNullException>(() =>
            {
                var transformer = new NullTransformerForAdapterTesting(new string[] { }, new string[] { });

                using (var dialect = new Dialect {
                    DoubleQuote = true,
                    Delimiter = ';',
                    Quote = '"',
                    Escape = '\\',
                    SkipInitialSpace = true,
                    LineTerminator = "\n\r",
                    Quoting = QuoteStyle.QuoteNone,
                    Strict = true,
                    HasHeader = true
                })
                {
                    using (var adapter = new CSVAdapter(dialect, new StringWriter(), null))
                    {
                    }
                }
            });
        }