public override void Upload(ICsvData data)
        {
            //todo test avc upload logic
            if (DataProps.ContainsKey("FTPAddr"))
            {
                var ftp = DataProps["FTPAddr"];
                if (!string.IsNullOrEmpty(ftp))
                {
                    var datafile = $"{DateTime.Now.ToString("yyyyMMdd")}.csv";

                    if (!File.Exists(Path.Combine(ftp, datafile)))
                    {
                        using (var fs = new FileStream(datafile, FileMode.Create))
                        {
                            using (var sw = new StreamWriter(fs, Encoding.UTF8))
                            {
                                sw.WriteLine(data.CsvHeaders());
                            }
                        }
                    }

                    using (var fs = new FileStream(datafile, FileMode.Append))
                    {
                        using (var sw = new StreamWriter(fs, Encoding.UTF8))
                        {
                            sw.WriteLine(data.CsvValues());
                        }
                    }
                }
            }
        }
Beispiel #2
0
        public override void Upload(ICsvData data)
        {
            //todo add cm upload logic


            return;
        }
        public async Task Generate()
        {
            // Arrange
            var mockConfiguration = this.mockRepository.Create <IConfiguration>();
            var mockInputConfig   = this.mockRepository.Create <IInputConfig>();
            var mockOutputConfig  = this.mockRepository.Create <IOutputConfig>();



            //config
            mockInputConfig.Setup(x => x.delimiter).Returns(';');
            mockOutputConfig.Setup(x => x.delimiter).Returns('#');

            //configuration
            mockConfiguration
            .Setup(x => x.input)
            .Returns(() => mockInputConfig.Object);

            mockConfiguration
            .Setup(x => x.output)
            .Returns(() => mockOutputConfig.Object);



            var      helper = new Helper(null, null, null, mockConfiguration.Object);
            ICsvData data   = helper.ConvertData(System.IO.File.ReadAllLines($"{Directory.GetCurrentDirectory()}/files/myCSV.csv"));

            // Act
            var result = await helper.Generate(data);


            // Assert

            //Campos

            var i = 0;

            foreach (var item in data.GetLines().First().Keys)
            {
                var val = result.Data[0].Split(mockOutputConfig.Object.delimiter)[i++];
                Assert.IsTrue(item == val);
            }

            i = 0;

            foreach (var line in data.GetLines())
            {
                i++;
                var j = 0;
                foreach (var item in line)
                {
                    var val = result.Data[i].Split(mockOutputConfig.Object.delimiter)[j++];
                    Assert.IsTrue(item.Value == val);
                }
            }
        }
        public async Task False()
        {
            // Arrange
            var      csvRule = new CsvRule(x => false);
            ICsvData obj     = null;

            // Act
            var result = await csvRule.Check(obj);

            // Assert
            Assert.False(result);
        }
Beispiel #5
0
        private void OutputDownloadData(ICsvData downloadData)
        {
            // 表示してみる
            string loggerString = string.Empty;

            foreach (var row in downloadData.Data)
            {
                loggerString += "===================\n";
                loggerString += $"Key: {row.Key}\n";

                foreach (var column in row.Value)
                {
                    loggerString += $"{column.Key}: {column.Value}\n";
                }

                loggerString += "===================\n";
            }

            Debug.Log(loggerString);
        }
Beispiel #6
0
        public async Task <IResult> Generate(ICsvData data)
        {
            string[]         lines  = null;
            List <ErrorLine> errors = null;

            if (this.Config == null)
            {
                throw new ArgumentException("Config can not be null");
            }

            foreach (var item in DataRules)
            {
                try
                {
                    await item.Check(data);
                }
                catch (Exception oEx)
                {
                    errors = errors ?? new List <ErrorLine>();
                    errors.Add(new ErrorLine(oEx.Message));
                }
            }

            if (errors == null)
            {
                long i           = 0;
                var  resultLines = new List <ICsvLine>();

                foreach (var line in data.GetLines())
                {
                    foreach (var item in LineRules)
                    {
                        try
                        {
                            await item.Check(line);
                        }
                        catch (Exception oEx)
                        {
                            errors = errors ?? new List <ErrorLine>();
                            errors.Add(new ErrorLine(oEx.Message, i));
                        }
                    }

                    foreach (var item in Actions)
                    {
                        await Task.Run(() =>
                        {
                            try
                            {
                                item(line);
                            }
                            catch (Exception oEx)
                            {
                                errors = errors ?? new List <ErrorLine>();
                                errors.Add(new ErrorLine(oEx.Message, i));
                            }
                        });
                    }

                    i++;
                    resultLines.Add(line);
                }

                lines = DataToString(data.Keys, resultLines, errors, Config.output);
            }


            return(new Result
            {
                Data = lines,
                Errors = errors?.OrderBy(x => x.Index).Select(x => x.ToString()).ToArray()
            });
        }
Beispiel #7
0
 public ClaimController(ICsvData csv)
 {
     csvData = csv;
 }
 public virtual void Upload(ICsvData data)
 {
 }
Beispiel #9
0
 public WeatherForecastController(ILogger <WeatherForecastController> logger, ICsvData csv)
 {
     _logger = logger;
     csvData = csv;
 }