Beispiel #1
0
        private async Task Demo01_Copy()
        {
            Console.WriteLine(nameof(Demo01_Copy));
            var testfile = "test.jpg";
            var source   = GetSourcePath(testfile);
            var target   = GetTargetFilename(source);

            var fileSource = new FileSource(source);
            var fileWriter = new FileWriter(target);

            fileSource.Connect(fileWriter);

            await fileSource.Start();

            AssertFilesAreEqual(source, target);
        }
Beispiel #2
0
        private async Task Demo03_Log()
        {
            Console.WriteLine(nameof(Demo03_Log));
            var testfile = "test.jpg";
            var source   = GetSourcePath(testfile);
            var target   = GetTargetFilename(source);
            var log      = GetTargetFilename(source, "_log");

            var fileSource = new FileSource(source);
            var logger     = new Logger(log);
            var fileWriter = new FileWriter(target);

            fileSource.Connect(logger);
            logger.Connect(fileWriter);

            await fileSource.Start();

            AssertFilesAreEqual(source, target);
            AssertFilesAreEqual(source, log);
        }
Beispiel #3
0
        private async Task Demo04_OneToMany()
        {
            Console.WriteLine(nameof(Demo04_OneToMany));
            var testfile = "test.jpg";
            var source   = GetSourcePath(testfile);
            var target1  = GetTargetFilename(source, "-target1");
            var target2  = GetTargetFilename(source, "-target2");

            var fileSource  = new FileSource(source);
            var oneToMany   = new OneToMany();
            var fileWriter1 = new FileWriter(target1);
            var fileWriter2 = new FileWriter(target2);

            fileSource.Connect(oneToMany);
            oneToMany.Connect(fileWriter1, fileWriter2);

            await fileSource.Start();

            AssertFilesAreEqual(source, target1);
            AssertFilesAreEqual(source, target2);
        }
Beispiel #4
0
        private async Task Demo05_ManyToOne()
        {
            Console.WriteLine(nameof(Demo05_ManyToOne));
            var length = 1200;

            System.IO.File.WriteAllBytes("ones.bin", GetArray(length, 1));
            System.IO.File.WriteAllBytes("twos.bin", GetArray(length, 2));

            var multiStart  = new MultiStart();
            var fileSource1 = new FileSource("ones.bin");
            var fileSource2 = new FileSource("twos.bin");
            var manytoOne   = new ManyToOne();
            var fileWriter  = new FileWriter("threes.bin");

            multiStart.Connect(fileSource1, fileSource2);
            fileSource1.Connect(manytoOne);
            fileSource2.Connect(manytoOne);
            manytoOne.Connect(fileWriter);

            await multiStart.Start();
        }