Ejemplo n.º 1
0
        /// <summary>
        /// Log an event with one label/data pair.  Also sends to mixpanel
        /// </summary>
        /// <param name="categoryName">Category name from LogGlobals</param>
        /// <param name="eventName">Event name from LogGlobals</param>
        /// <param name="optLabel">Label of data being sent, like "price"</param>
        /// <param name="optData">Value of data being sent, like "100"</param>
        public static void Log(string categoryName, string eventName, string optLabel, string optData)
        {
            ClientMessageProcessor clientMessageProcessor = GameFacade.Instance.RetrieveProxy <ClientMessageProcessor>();

            if (clientMessageProcessor != null)
            {
                List <object> messageData = new List <object>();
                messageData.Add(categoryName);
                messageData.Add(eventName);
                messageData.Add(optLabel);
                messageData.Add(optData);
                Message message = new Message(MessageType.Event, messageData);
                clientMessageProcessor.SendMessageToReflector(message);

                // Send event to mix panel also
                JSDispatcher jsd = new JSDispatcher();

                string mpEvent    = categoryName + "_" + eventName;
                string properties = "";


                if (optLabel != "" && optData != "")
                {
                    properties = "{\"" + optLabel + "\":\"" + optData + "\"}";
                }
                jsd.LogMetricsEvent(mpEvent, properties, delegate(string s) { });
            }
            else
            {
                Console.WriteLine(String.Format("Warning: EventLogger not ready to log {0}, {1}, {2}, {3}", categoryName, eventName, optLabel, optData));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Log an event categoryName, eventName and a string of arbitrary data.  Also sends to mixpanel
        /// </summary>
        /// <param name="categoryName">Category name from LogGlobals</param>
        /// <param name="eventName">Event name from LogGlobals</param>
        /// <param name="extraProps">Arbitrary data in JSON format</param>
        public static void Log(string categoryName, string eventName, string extraProps)
        {
            // Test to make sure extraProps is a valid Json string
            LitJson.JsonMapper.ToObject(extraProps);

            ClientMessageProcessor clientMessageProcessor = GameFacade.Instance.RetrieveProxy <ClientMessageProcessor>();

            if (clientMessageProcessor != null)
            {
                List <object> messageData = new List <object>();
                messageData.Add(categoryName);
                messageData.Add(eventName);
                messageData.Add("props");
                messageData.Add(extraProps);
                Message message = new Message(MessageType.Event, messageData);
                clientMessageProcessor.SendMessageToReflector(message);

                // Send event to mix panel also
                JSDispatcher jsd = new JSDispatcher();

                string mpEvent = categoryName + "_" + eventName;
                jsd.LogMetricsEvent(mpEvent, extraProps, delegate(string s){});
            }
            else
            {
                Console.WriteLine(String.Format("Warning: EventLogger not ready to log {0}, {1}, {2}, {3}", categoryName, eventName, extraProps));
            }
        }