83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using ThinkingSDK.PC.Constant;
 | |
| using ThinkingSDK.PC.Time;
 | |
| 
 | |
| namespace ThinkingSDK.PC.DataModel
 | |
| {
 | |
|     public class ThinkingSDKEventData:ThinkingSDKBaseData
 | |
|     {
 | |
|         private DateTime mEventTime;
 | |
|         private TimeZoneInfo mTimeZone;
 | |
|         private float mDuration;
 | |
|         private static Dictionary<string, object> mData;
 | |
|         public void SetEventTime(DateTime dateTime)
 | |
|         {
 | |
|             this.mEventTime = dateTime;
 | |
|         }
 | |
|         public void SetTimeZone(TimeZoneInfo timeZone)
 | |
|         {
 | |
|             this.mTimeZone = timeZone;
 | |
|         }
 | |
|         //public DateTime EventTime()
 | |
|         //{
 | |
|         //    return this.mEventTime;
 | |
|         //}
 | |
|         public DateTime Time()
 | |
|         {
 | |
|             return mEventTime;
 | |
|         }
 | |
|         public ThinkingSDKEventData(string eventName) : base(eventName)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         public ThinkingSDKEventData(ThinkingSDKTimeInter time, string eventName):base(time,eventName)
 | |
|         {
 | |
|         }
 | |
|         public ThinkingSDKEventData(ThinkingSDKTimeInter time, string eventName, Dictionary<string, object> properties):base(time,eventName,properties)
 | |
|         {            
 | |
|         }
 | |
|         public override string GetDataType()
 | |
|         {
 | |
|             return "track";
 | |
|         }
 | |
|         public void SetDuration(float duration)
 | |
|         {
 | |
|             this.mDuration = duration;
 | |
|         }
 | |
| 
 | |
|         public override Dictionary<string, object> ToDictionary()
 | |
|         {
 | |
|             if (mData == null)
 | |
|             {
 | |
|                 mData = new Dictionary<string, object>();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 mData.Clear();
 | |
|             }
 | |
|             mData[ThinkingSDKConstant.TYPE] = GetDataType();
 | |
|             mData[ThinkingSDKConstant.TIME] = this.EventTime().GetTime(this.mTimeZone);
 | |
|             mData[ThinkingSDKConstant.DISTINCT_ID] = this.DistinctID();
 | |
|             if (!string.IsNullOrEmpty(this.EventName()))
 | |
|             {
 | |
|                 mData[ThinkingSDKConstant.EVENT_NAME] = this.EventName();
 | |
|             }
 | |
|             if (!string.IsNullOrEmpty(this.AccountID()))
 | |
|             {
 | |
|                 mData[ThinkingSDKConstant.ACCOUNT_ID] = this.AccountID();
 | |
|             }
 | |
|             mData[ThinkingSDKConstant.UUID] = this.UUID();
 | |
|             Dictionary<string, object> properties = this.Properties();
 | |
|             properties[ThinkingSDKConstant.ZONE_OFFSET] = this.EventTime().GetZoneOffset(this.mTimeZone);
 | |
|             if (mDuration != 0)
 | |
|             {
 | |
|                 properties[ThinkingSDKConstant.DURATION] = mDuration;
 | |
|             }
 | |
|             mData[ThinkingSDKConstant.PROPERTIES] = properties;
 | |
|             
 | |
|             return mData;
 | |
|         }
 | |
|     }
 | |
| }
 |