Exemplo n.º 1
0
        public async Task Run()
        {
            Env.Clear();
            Env.Notifier = _notifier;
            Env.App      = new App();
            Env.RandomNumberGenerator = GetRandomNumberGenerator();
            Env.CommandCollection     = new CommandCollection();
            Env.Cipher = new Cipher(await Env.Config.GetKeyAsync());
            Env.StateHandlerFactory = new JsonStateHandlerFactory();
            Env.Settings            = await GetSettingsAsync();

            Env.Parser             = new Parser();
            Env.ModeHook           = new ModeHook();
            Env.ForegroundListener = new ForegroundListener();
            Env.FlagManager        = await FlagManager.GetFlagManagerAsync();

            Env.Scheduler = await Scheduler.GetSchedulerAsync();

            Env.ProcessManager = new ProcessManager();
            Env.Injector       = new Injector();
            Env.PasswordMatrix = await PasswordMatrix.GetPasswordMatrixAsync();

            Env.AccountManager = await AccountManager.GetAccountManagerAsync();

            var comboHook   = new ComboHook();
            var comboRelay  = new ComboRelay(Env.ModeHook, comboHook);
            var inputHook   = new InputHook(comboRelay);
            var inputRelay  = new InputRelay(inputHook);
            var primaryHook = new PrimaryHook(inputRelay);
            var fileManager = await FileManager.GetFileManagerAsync();

            TextEditorForm = new TextEditorForm(fileManager);
            await Env.Config.Run();

            Env.App.TriggerRun();
        }