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); }
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); }
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); }
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(); }