Esempio n. 1
0
        public bool TryRunMacroCommand(Triggers_e trigger, CommandMacroInfo macroInfo, IXDocument targetDoc, string workDir)
        {
            try
            {
                m_Logger.Log($"Invoking '{trigger}' trigger for '{macroInfo.Title}'", LoggerMessageSeverity_e.Debug);

                var eventType = GetEventType(trigger);

                var eventArgs = new MacroRunningArguments(macroInfo, targetDoc)
                {
                    Cancel = false
                };

                m_ToolbarModuleProxy.CallMacroRunning(eventType, eventArgs);

                if (!eventArgs.Cancel)
                {
                    var opts = eventArgs.MacroInfo.UnloadAfterRun ? MacroRunOptions_e.UnloadAfterRun : MacroRunOptions_e.Default;

                    var macroPath = m_FilePathResolver.Resolve(eventArgs.MacroInfo.MacroPath, workDir);

                    m_Logger.Log($"Running macro '{macroPath}' with arguments '{eventArgs.MacroInfo.Arguments}'", LoggerMessageSeverity_e.Debug);

                    var entryPoint = eventArgs.MacroInfo.EntryPoint;

                    if (entryPoint == null)
                    {
                        throw new UserException($"Entry point is not specified for macro '{macroInfo.Title}'");
                    }

                    m_Runner.RunMacro(m_App, macroPath,
                                      new MacroEntryPoint(entryPoint.ModuleName, entryPoint.SubName),
                                      opts, eventArgs.MacroInfo.Arguments, null);

                    return(true);
                }
                else
                {
                    m_Logger.Log($"Trigger '{trigger}' for '{macroInfo.Title}' invoking cancelled", LoggerMessageSeverity_e.Debug);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                m_Logger.Log(ex);
                m_MsgSvc.ShowError(ex, $"Failed to run a macro '{macroInfo.Title}' on trigger '{trigger}'");
                return(false);
            }
        }
Esempio n. 2
0
 public void CallMacroRunning(EventType_e eventType, MacroRunningArguments args)
 => RequestMacroRunning?.Invoke(eventType, args);
Esempio n. 3
0
 private void OnRequestMacroRunning(EventType_e eventType, MacroRunningArguments args)
 => MacroRunning?.Invoke(eventType, args);