示例#1
0
        public static void WriteIntegraFile()
        {
            IFlatFileEngineFactory<ILayoutDescriptor<IFixedFieldSettingsContainer>, IFixedFieldSettingsContainer> fileEngineFactory;

            var records = GetTotalsRecords();
            string fileName = @"C:\Repos\Medway\FlatFile\src\Test\Integra.txt";

            using (TextWriter writer = new StreamWriter(fileName))
            {

                fileEngineFactory = new FixedLengthFileEngineFactory();
                var flatFileEngine = fileEngineFactory.GetEngine<FundTotalRecord>();

                flatFileEngine.Write<FundTotalRecord>(writer, records);

            }

            using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                fileEngineFactory = new FixedLengthFileEngineFactory();
                var flatFileEngine1 = fileEngineFactory.GetEngine<FundTotalRecord>();

                var recordsRead = flatFileEngine1.Read<FundTotalRecord>(fileStream).ToArray();
            }
        }
示例#2
0
        public static void WriteiWorldFile()
        {
            IFlatFileEngineFactory<ILayoutDescriptor<IFixedFieldSettingsContainer>, IFixedFieldSettingsContainer> fileEngineFactory;

            var ctxBrRecords = GetCtxBrRecords();
            string fileName = @"C:\Repos\Medway\FlatFile\src\Test\iWorld1.txt";
            using (TextWriter writer = new StreamWriter(fileName))
            {
                //C_CTFX_260815_062132
                writer.WriteLine("C_CTFX_260815_062132".PadRight(151, ' '));
                //writer.Flush();

                fileEngineFactory = new FixedLengthFileEngineFactory();
                var flatFileEngine = fileEngineFactory.GetEngine<CtxBrRecord>();

                flatFileEngine.Write<CtxBrRecord>(writer, ctxBrRecords);

            }

            using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            {
                fileEngineFactory = new FixedLengthFileEngineFactory();
                var flatFileEngine1 = fileEngineFactory.GetEngine<CtxBrRecord>(hasHeader: true);

                var records = flatFileEngine1.Read<CtxBrRecord>(fileStream).ToArray();
            }
        }
        public void ReadOperationShouldBeQuick()
        {
            Benchmark.This("FileHelperEngine.ReadStream", () =>
            {
                var engine = new FileHelperEngine<FixedSampleRecord>();
                using (var stream = new StringReader(FixedFileSample))
                {
                    var records = engine.ReadStream(stream);
                    records.Should().HaveCount(19);
                }
            })
                .Against.This("FlatFileEngine.Read", () =>
                {
                    var layout = new FixedSampleRecordLayout();
                    using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(FixedFileSample)))
                    {
                        var factory = new FixedLengthFileEngineFactory();

                        var flatFile = factory.GetEngine(layout);

                        var records = flatFile.Read<FixedSampleRecord>(stream).ToArray();

                        records.Should().HaveCount(19);
                    }
                })
                .WithWarmup(1000)
                .For(10000)
                .Iterations()
                .PrintComparison();
        }
        public void BigDataWriteOperationShouldBeQuick()
        {
            var genarator = new FakeGenarator();

            var sampleRecords = Enumerable.Range(0, 100000).Select(genarator.Generate).ToArray();

            Benchmark.This("FileHelperEngine.WriteStream", () =>
            {
                var engine = new FileHelperEngine<FixedSampleRecord>();
                using (var stream = new MemoryStream())
                using (var streamWriter = new StreamWriter(stream))
                {
                    engine.WriteStream(streamWriter, sampleRecords);
                }
            })
                .Against.This("FlatFileEngine.Write", () =>
                {
                    var layout = new FixedSampleRecordLayout();
                    using (var stream = new MemoryStream())
                    {
                        var factory = new FixedLengthFileEngineFactory();

                        var flatFile = factory.GetEngine(layout);

                        flatFile.Write(stream, sampleRecords);
                    }
                })
                .WithWarmup(10)
                .For(100)
                .Iterations()
                .PrintComparison();
        }
示例#5
0
        public void FlatFileEngine()
        {
            var layout = new FixedSampleRecordLayout();

            using (var stream = new MemoryStream())
            {
                var factory = new FixedLengthFileEngineFactory();

                var flatFile = factory.GetEngine(layout);

                flatFile.Write(stream, sampleRecords);
            }
        }
示例#6
0
        /// <summary>
        /// Internal private file responsible to read records of historic quotes from stream
        /// </summary>
        /// <param name="streamToRead">Stream to read records from</param>
        /// <returns>
        /// All historic quotes found in the stream
        /// </returns>
        private B3HistoricMarketDataContentInfo ReadStream(Stream streamToRead)
        {
            B3HistoricMarketDataContentInfo resultado = null;

            //
            var factory = new FixedLengthFileEngineFactory();

            // If using attribute mapping, pass an array of record types
            // rather than layout instances
            var layouts = new ILayoutDescriptor <IFixedFieldSettingsContainer>[]
            {
                new B3COTAHISTHeaderLayout()
                , new B3COTAHISTHistoricoLayout()
                , new B3COTAHISTTrailerLayout()
            };

            var flatFile = factory.GetEngine(layouts,
                                             (line, lineNumber) =>
            {
                // For each line, return the proper record type.
                // The mapping for this line will be loaded based on that type.
                // In this simple example, the first character determines the
                // record type.
                if (string.IsNullOrEmpty(line) || line.Length < 1)
                {
                    return(null);
                }

                switch (line.Substring(0, 2))
                {
                case "00":
                    return(typeof(B3HistoricMarketDataHeaderInfo));

                case "01":
                    return(typeof(B3HistoricMarketDataInfo));

                case "99":
                    return(typeof(B3HistoricMarketDataTrailerInfo));
                }
                return(null);
            });

            flatFile.Read(streamToRead);

            resultado         = new B3HistoricMarketDataContentInfo();
            resultado.Header  = flatFile.GetRecords <B3HistoricMarketDataHeaderInfo>().FirstOrDefault();
            resultado.Records = flatFile.GetRecords <B3HistoricMarketDataInfo>().ToList();
            resultado.Trailer = flatFile.GetRecords <B3HistoricMarketDataTrailerInfo>().FirstOrDefault();

            return(resultado);
        }
示例#7
0
        public void WhenIConvertEntitiesToTheFlatFormat()
        {
            var fileEngineFactory = new FixedLengthFileEngineFactory();

            var descriptor = ScenarioContext.Current.Get <ILayoutDescriptor <IFixedFieldSettingsContainer> >("descriptor");

            var fileEngine = fileEngineFactory.GetEngine(descriptor);

            var testObjects = ScenarioContext.Current.Get <TestObject[]>("testObjects");

            var fileContent = fileEngine.WriteToString(testObjects);

            ScenarioContext.Current.Add(() => fileContent, fileContent);
        }
        public void WhenIConvertEntitiesToTheFlatFormat()
        {
            var fileEngineFactory = new FixedLengthFileEngineFactory();

            var descriptor = ScenarioContext.Current.Get<ILayoutDescriptor<IFixedFieldSettingsContainer>>("descriptor");

            var fileEngine = fileEngineFactory.GetEngine(descriptor);

            var testObjects = ScenarioContext.Current.Get<TestObject[]>("testObjects");

            var fileContent = fileEngine.WriteToString(testObjects);

            ScenarioContext.Current.Add(() => fileContent, fileContent);
        }
        public void Setup()
        {
            _helperEngine = new FileHelperEngine <FixedSampleRecord>();

            var factory = new FixedLengthFileEngineFactory();

            _fluentEngine = factory.GetEngine(new FixedSampleRecordLayout());

            Configuration.Converters.UseOptimizedConverters();

            var fixture = new Fixture();

            _records = fixture.CreateMany <FixedSampleRecord>(N).ToArray();
        }
        public void FlatFileEngine()
        {
            var layout = new FixedSampleRecordLayout();

            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(FlatFileBenchmarks.FixedFileSample)))
            {
                var factory = new FixedLengthFileEngineFactory();

                var flatFile = factory.GetEngine(layout);

                var records = flatFile.Read <FixedSampleRecord>(stream).ToArray();

                records.Should().HaveCount(19);
            }
        }
示例#11
0
        public LayoutParser()
        {
            this.Encoding = Encoding.Default;

            var factory = new FixedLengthFileEngineFactory();
            var layouts = new ILayoutDescriptor <IFixedFieldSettingsContainer>[] {
                new T0HeaderLayout(),
                new T1ResumoLayout(),
                new T2EnderecoLayout(),
                new T3BilheteLayout(),
                new T4ServicoLayout(),
                new T5DescontoLayout(),
                new T9TrailerLayout(),
            };

            this.reader = (FixedLengthFileMultiEngine)factory.GetEngine(layouts, ChooseLayout); // while Read(StreamWriter) is not exposed in the interface
        }
        public void WriteOperationShouldBeQuick()
        {
            var sampleRecords = GetRecords();

            Benchmark.This("FileHelperEngine.WriteStream", () =>
            {
                var engine = new FileHelperEngine<FixedSampleRecord>();
                using (var stream = new MemoryStream())
                using (var streamWriter = new StreamWriter(stream))
                {
                    engine.WriteStream(streamWriter, sampleRecords);
                }
            })
                .Against.This("FlatFileEngine.Write", () =>
                {
                    var layout = new FixedSampleRecordLayout();
                    using (var stream = new MemoryStream())
                    {
                        var factory = new FixedLengthFileEngineFactory();

                        var flatFile = factory.GetEngine(layout);

                        flatFile.Write(stream, sampleRecords);
                    }
                })
                .WithWarmup(1000)
                .For(10000)
                .Iterations()
                .PrintComparison();
        }