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