Example #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);
        }
Example #2
0
        public virtual void End()
        {
            var f = new AppFlowEvent();

            f.FlowProps = this.FlowProps; //Pass on any added before call to End
            FlowUtility.SaveFlow(f, this);
        }
        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);
        }
Example #4
0
            protected override async Task <bool> SendEventToExternalSystem(AppFlowEvent appFlowEvent)
            {
                Log.d("SendEventToExternalSystem called with appFlowEvent=" + JsonWriter.AsPrettyString(appFlowEvent));
                await TaskV2.Delay(10); // Simulate that sending the event to an analytics server takes time

                eventsThatWereSent.Add(appFlowEvent);
                return(true);
            }
        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);
        }
Example #6
0
            public void TrackEvent(string category, string action, params object[] args)
            {
                var e = new AppFlowEvent()
                {
                    category = category, action = action
                };

                Log.d("new AppFlowEvent: " + e);
                recordedEvents.Add(e);
            }
        public virtual void End()
        {
            var f = new AppFlowEvent();

            FlowUtility.SaveFlow(f, this);
        }