示例#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);
            }
        }
 protected override IEnumerable<IOperation> BuildOperations(FlowOperationContainer container)
 {
     return container
         .AddFunc<Tuple<string, string>, IEnumerable<string>>("dateinamen suchen", Dateinamen_suchen.Process)
         .AddFunc<IEnumerable<string>, IEnumerable<string>>("alle Stichwörter ermitteln", Alle_Stichwörter_ermitteln.Process)
         .AddFunc<IEnumerable<string>, IEnumerable<string>>("eindeutige Stichwörter filtern", Eindeutige_Stichwörter_filtern.Process)
         .Operations;
 }