Пример #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);
            }
        }
Пример #2
0
        public static void Main() {
            var dateien_im_Pfad_ermitteln = new Dateien_im_Pfad_ermitteln();
            var filtern = new Filtern_der_20_größten_Dateien();
            var map = new Map();
            var viewModel = new ViewModel();
            var mainWindow = new MainWindow();
            var asynchronizer = new Asynchronizer<string>();
            var synchronizer = new ebcpatterns.wpf.Synchronizer<IEnumerable<messages.Datei>>();

            mainWindow.Suchen += asynchronizer.Process;
            mainWindow.Abbrechen += dateien_im_Pfad_ermitteln.Abbrechen;
            asynchronizer.Result += dateien_im_Pfad_ermitteln.Process;
            dateien_im_Pfad_ermitteln.Result += filtern.Process;
            filtern.Result += synchronizer.Process;
            synchronizer.Result += map.Process;

            map.Inject(viewModel);
            mainWindow.Inject(viewModel);

            var app = new Application {
                MainWindow = mainWindow
            };
            app.Run(app.MainWindow);
        }