Exemplo n.º 1
0
        /// <summary>
        ///     Initializes the Plugin System.
        /// </summary>
        /// <param name="internalConfigPath">The Path that is used by internal config files by the Plugin System</param>
        /// <param name="pluginDirectory">The Path used as "Install Directory" for Plugins/Packages</param>
        public static void Initialize(
            string internalConfigPath, string pluginDirectory, Func <string, string, bool> updateDialog,
            Action <string, int, int> setStatus, string staticDataConfig = null, bool checkUpdates = true)
        {
            if (IsInitialized)
            {
                throw new Exception("Can not Initialize the Plugin System Twice");
            }

            SendLog("Initializing Plugin System");

            //TODO: Process Things like updates before the plugin system loads the libraries.

            PluginPaths.InternalSystemConfigPath = Path.GetFullPath(internalConfigPath);
            PluginPaths.PluginDirectory          = Path.GetFullPath(pluginDirectory);
            PluginPaths.EnsureInternalDirectoriesExist();
            PluginPaths.CreateInternalFilesIfMissing();
            ErrorHandler.Initialize();

            LoadOrder.Initialize();
            if (staticDataConfig != null && File.Exists(staticDataConfig))
            {
                StaticData.SetState(File.ReadAllText(staticDataConfig));
            }


            IsInitialized = true;

            SendLog("Updating..");

            PluginHost = new PluginSystemHost();

            HelperClass.ReloadDefaultPlugins();

            OnInitialized?.Invoke();
            if (File.Exists(PluginPaths.InternalStartupInstructionPath))
            {
                SendLog("Running Start Actions..");
                ActionRunner.RunActions();
            }

            if (checkUpdates)
            {
                ListHelper.LoadList(PluginPaths.PluginListFile).Select(x => new BasePluginPointer(x)).ToList()
                .ForEach(x => UpdateManager.CheckAndUpdate(x, updateDialog, setStatus));
            }

            SendLog("Registering System Host..");


            LoadPlugins(PluginHost);
            SendLog("Registered System Host..");
            SendLogDivider();

            //Everything Finished
            SendLog("Initialization Complete.");
            SendLogDivider();
        }
Exemplo n.º 2
0
        protected void RunSelenium(List <Action> actionsList)
        {
            SetLogText("");
            LogDir = (_actionArgs != null) ? _actionArgs.LogFilePath : GetCurrentFolder();
            Log.Reset(LogDir);

            if (txtRootURL.Text == "" && _actionArgs == null)
            {
                MessageBox.Show("Please provide root url!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            try
            {
                EnablePaneAction(false);

                ///////////////////////////////////////////////////////////////////////////////

                var actionRunner = new ActionRunner(new ActionRunnerArgs
                {
                    LogFilePath = LogDir,
                    URL         = txtRootURL.Text,
                    RunTimes    = Convert.ToInt32(txtRunTimes.Value)
                });

                actionRunner.RunActions(this, GetActionsList());
            }
            catch (Exception ex)
            {
                LogTask logMsg = new LogTask
                {
                    message   = ex.Message,
                    status    = TaskCompletionStatus.Error,
                    TaskName  = "MainForm class - RunSelenium",
                    TimeNetto = TimeSpan.MinValue
                };
                Log.WriteLog(logMsg);
            }
            finally
            {
                Log.Close();
            }

            EnablePaneAction(true);

            ShowNotification(false);

            if (_actionArgs != null)
            {
                Close();
            }
        }