示例#1
0
        public static void Main()
        {
            using (var flowRuntime = new FlowRuntime())
            {
                flowRuntime.AddStream(".in", "Dateien im Pfad ermitteln");
                flowRuntime.AddStream(".abort", "Ermittlung abbrechen");
                flowRuntime.AddStream("Dateien im Pfad ermitteln", "filtern");
                flowRuntime.AddStream("filtern", "map");

                var viewModel = new ViewModel();
                var mainWindow = new MainWindow(viewModel);
                var map = new Map(viewModel);

                var dateien_im_Pfad_ermitteln = new Dateien_im_Pfad_ermitteln();

                var flowOperationContainer = new FlowOperationContainer(() => new WpfSynchronize<IMessage>())
                    .AddFunc<string, IEnumerable<messages.Datei>>("Dateien im Pfad ermitteln", dateien_im_Pfad_ermitteln.Process)
                        .MakeAsync()
                    .AddAction("Ermittlung abbrechen", dateien_im_Pfad_ermitteln.Abbrechen)
                    .AddFunc<IEnumerable<messages.Datei>, IEnumerable<messages.Datei>>("filtern", Filtern_der_20_groessten_Dateien.Process)
                    .AddAction<IEnumerable<messages.Datei>>("map", map.Process)
                        .MakeSync();

                flowRuntime.AddOperations(flowOperationContainer.Operations);
                flowRuntime.UnhandledException += e => MessageBox.Show(e.InnerException.Message);

                mainWindow.Suchen += flowRuntime.CreateEventProcessor<string>(".in");
                mainWindow.Abbrechen += flowRuntime.CreateEventProcessor(".abort");

                var app = new Application {MainWindow = mainWindow};
                app.Run(app.MainWindow);
            }
        }
        public void Integrationstest()
        {
            using (var fr = new FlowRuntime())
            {
                fr.AddOperation(new Eindeutige_Stichwörter_ermitteln());

                fr.AddStream(".in", "ermitteln.in");
                fr.AddStream("ermitteln.out", ".out");

                fr.Process(new Message(".in", new Tuple<string, string>("testdaten", "*.jpg")));

                IEnumerable<string> result = null;
                Assert.IsTrue(fr.WaitForResult(500, _ => result = (IEnumerable<string>) _.Data));
                Assert.That(result.ToArray(), Is.EqualTo(new[] {"A", "B", "C", "D", "E"}));
            }
        }
示例#3
0
        public static void Main(string[] args)
        {
            using(var fr = new FlowRuntime())
            {
                fr.Message += Console.WriteLine;
                fr.UnhandledException += Console.WriteLine;

                fr.AddOperation(new Eindeutige_Stichwörter_ermitteln());

                fr.AddStream(".in", "ermitteln.in");
                fr.AddStream("ermitteln.out", "auf konsole ausgeben");
                fr.AddStream("auf konsole ausgeben", ".out");

                fr.AddOperations(new FlowOperationContainer()
                                        .AddFunc<IEnumerable<string>,int>("auf konsole ausgeben", Auf_Konsole_ausgeben.Process)
                                        .Operations);

                fr.Process(new Message(".in", new Tuple<string, string>(args[0], args[1])));

                fr.WaitForResult(-1);
            }
        }