public static void SaveFlow(AppFlowEvent f, AppFlow flow) { flow.Name = flow.GetType().ToString(); flow.EndTime = DateTime.Now; flow.Span = flow.StartTime - flow.EndTime; if (String.IsNullOrEmpty(flow.Color)) { flow.Color = "#000000"; } //dynamic f = new System.Dynamic.ExpandoObject(); // var f = new AppFlowEvent(); //f.FlowName = this.Name; //f.Started = this.StartTime; //f.FlowProps = new Newtonsoft.Json.Linq.JObject(); foreach (var prop in flow.GetType().GetProperties()) { //((IDictionary<string, object>)f)[prop.Name] = prop.GetValue(this, null); var propVal = prop.GetValue(flow, null); string value = propVal != null?propVal.ToString() : ""; f.FlowProps.Add(prop.Name, value); } foreach (var prop in flow.GetType().GetFields()) { //((IDictionary<string, object>)f)[prop.Name] = prop.GetValue(this, null); f.FlowProps.Add(prop.Name, prop.GetValue(flow).ToString()); } FlowsData.FlowTable.Insert(f); }
public static void ExceptionOnly(this AppFlow flow, System.Exception ex) { var f = new AppFlowEvent(); f.FlowProps.Add("Message", ex.Message); f.FlowProps.Add("StackTrace", ex.ToString()); FlowUtility.SaveFlow(f, flow); }
public static void ExceptionAndResult(this AppFlow flow, System.Exception ex, ref AppsClient.AppsResult result) { var f = new AppFlowEvent(); f.FlowProps.Add("Message", ex.Message); f.FlowProps.Add("StackTrace", ex.ToString()); f.FlowProps.Add("Result", Newtonsoft.Json.JsonConvert.SerializeObject(result)); FlowUtility.SaveFlow(f, flow); }
public AppsResult LatestEvents(int secondsAgo) { var result = new AppsResult(); try { var flows = new Flows.AppFlow(); result.Data = flows.GetFlows(secondsAgo); result.Success = true; } catch (System.Exception ex) { new AppFlows.Plan.Apps.Exception(ex, ref result); } return(result); }