Пример #1
0
        void WriteUnhandledActionException(ActionItem a, Exception ex, bool writeProgress = true, bool writeLog = true)
        {
            //todo: serialize exception to composite string
            string context = "Synapse.Core PlanRuntime";
            string message = $"An unhandled exeption occurred in {a.Name}, Plan/Action Instance: {InstanceId}/{a.InstanceId}. Message: {ex.Message}.";

            if (writeProgress)
            {
                HandlerProgressCancelEventArgs e =
                    new HandlerProgressCancelEventArgs(context: context, message: message, status: StatusType.Failed,
                                                       id: a.InstanceId, sequence: Int32.MaxValue - 100, cancel: false, ex: ex)
                {
                    ActionName = a.Name
                };
                rt_Progress(this, e);
            }

            if (writeLog)
            {
                LogMessageEventArgs e =
                    new LogMessageEventArgs(context: context, message: message, level: LogLevel.Fatal, ex: ex);
                rt_LogMessage(this, e);
            }
        }
Пример #2
0
 void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
 {
     if (e.Data != null)
     {
         string data = CryptoHelpers.Decode(e.Data);
         try
         {
             HandlerProgressCancelEventArgs args = HandlerProgressCancelEventArgs.DeserializeSimple(data, true);
             OnProgress(args);
         }
         catch
         {
             try
             {
                 LogMessageEventArgs args = LogMessageEventArgs.DeserializeSimple(data, true);
                 OnLogMessage(args);
             }
             catch
             {
                 throw new Exception("Could not deserialize output into known args type");
             }
         }
     }
 }
Пример #3
0
 private void rt_LogMessage(object sender, LogMessageEventArgs e)
 {
     OnLogMessage(e);
 }
Пример #4
0
 protected virtual void OnLogMessage(LogMessageEventArgs e)
 {
     LogMessage?.Invoke(this, e);
 }
Пример #5
0
        protected virtual void OnLogMessage(string context, string message, LogLevel level = LogLevel.Info, Exception ex = null)
        {
            LogMessageEventArgs args = new LogMessageEventArgs(context, message, level, ex);

            LogMessage?.Invoke(this, args);
        }
        public static LogMessageEventArgs DeserializeSimple(string s, bool asYaml = false)
        {
            LogMessageEventArgs args = FromYaml(s);

            return(args);
        }