Beispiel #1
0
        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);
        }