126 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using ThinkingSDK.PC.Time;
 | |
| 
 | |
| namespace ThinkingSDK.PC.DataModel
 | |
| {
 | |
|     public abstract class ThinkingSDKBaseData
 | |
|     {
 | |
|         // event type
 | |
|         private string mType;
 | |
|         // event time
 | |
|         private ThinkingSDKTimeInter mTime;
 | |
|         // distinct ID
 | |
|         private string mDistinctID;
 | |
|         // event name
 | |
|         private string mEventName;
 | |
|         // account ID
 | |
|         private string mAccountID;
 | |
| 
 | |
|         // unique ID for the event
 | |
|         private string mUUID;
 | |
|         private Dictionary<string, object> mProperties = new  Dictionary<string, object>();
 | |
|         public Dictionary<string, object> Properties()
 | |
|         {
 | |
|             return mProperties;
 | |
|         }
 | |
|         public void SetEventName(string eventName)
 | |
|         {
 | |
|             this.mEventName = eventName;
 | |
|         }
 | |
|         public void SetEventType(string eventType)
 | |
|         {
 | |
|             this.mType = eventType;
 | |
|         }
 | |
|         public string EventName()
 | |
|         {
 | |
|             return this.mEventName;
 | |
|         }
 | |
|         public void SetTime(ThinkingSDKTimeInter time)
 | |
|         {
 | |
|             this.mTime = time;
 | |
|         }
 | |
|         public ThinkingSDKTimeInter EventTime()
 | |
|         {
 | |
|             return this.mTime;
 | |
|         }
 | |
|         public void SetDataType(string type)
 | |
|         {
 | |
|             this.mType = type;
 | |
|         }
 | |
|         virtual public String GetDataType()
 | |
|         {
 | |
|             return this.mType;
 | |
|         }
 | |
|         public string AccountID()
 | |
|         {
 | |
|             return this.mAccountID;
 | |
|         }
 | |
|         public string DistinctID()
 | |
|         {
 | |
|             return this.mDistinctID;
 | |
|         }
 | |
|         public void SetAccountID(string accuntID)
 | |
|         {
 | |
|             this.mAccountID = accuntID;
 | |
|         }
 | |
|         public void SetDistinctID(string distinctID)
 | |
|         {
 | |
|             this.mDistinctID = distinctID;
 | |
|         }
 | |
|         public string UUID()
 | |
|         {
 | |
|             return this.mUUID;
 | |
|         }
 | |
|         public ThinkingSDKBaseData() { }
 | |
|         public ThinkingSDKBaseData(ThinkingSDKTimeInter time,string eventName)
 | |
|         {
 | |
|             this.SetBaseData(eventName);
 | |
|             this.SetTime(time);
 | |
|         }
 | |
|         public ThinkingSDKBaseData(string eventName)
 | |
|         {
 | |
|             this.SetBaseData(eventName);
 | |
|         }
 | |
|         public void SetBaseData(string eventName)
 | |
|         {
 | |
|             this.mEventName = eventName;
 | |
|             this.mUUID = System.Guid.NewGuid().ToString();
 | |
|         }
 | |
|         
 | |
|         public ThinkingSDKBaseData(ThinkingSDKTimeInter time, string eventName, Dictionary<string, object> properties):this(time,eventName)
 | |
|         {
 | |
|             if (properties != null)
 | |
|             {
 | |
|                 this.SetProperties(properties);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         abstract public Dictionary<string, object> ToDictionary();
 | |
|         public void SetProperties(Dictionary<string, object> properties,bool isOverwrite = true)
 | |
|         {
 | |
|             if (isOverwrite)
 | |
|             {
 | |
|                 foreach (KeyValuePair<string, object> kv in properties)
 | |
|                 {
 | |
|                     mProperties[kv.Key] = kv.Value;
 | |
| 
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 foreach (KeyValuePair<string, object> kv in properties)
 | |
|                 {
 | |
|                     if (!mProperties.ContainsKey(kv.Key))
 | |
|                     {
 | |
|                         mProperties[kv.Key] = kv.Value;
 | |
|                     } 
 | |
| 
 | |
|                 }
 | |
|             }
 | |
|             
 | |
|         }
 | |
|        
 | |
|     }
 | |
| }
 |