private static string GetCurrencyStringType(AnalyticsManager.CurrencyType inCurrencyType) { int num = (int)inCurrencyType; if (num > -1 && num < AnalyticsManager.CurrencyTypeString.Length) { return(AnalyticsManager.CurrencyTypeString[(int)inCurrencyType]); } return((string)null); }
public static void TrackCurrencyUse(AnalyticsManager.CurrencyType inCurrencyType, AnalyticsManager.CurrencySubType inCurrencySubType, long inAmount, string inSinkSource, Dictionary <string, object> inExtraEventsData = null) { if (inAmount <= 0L) { return; } Dictionary <string, object> eventContent = new Dictionary <string, object>(); switch (inCurrencyType) { case AnalyticsManager.CurrencyType.Gem: eventContent["type"] = (object)AnalyticsManager.GetCurrencyStringType(inCurrencyType); switch (inCurrencySubType) { case AnalyticsManager.CurrencySubType.PAID: AnalyticsManager.IncrementUserAttribute(AnalyticsManager.LifetimePaidGemsUsed, inAmount); eventContent["subtype"] = (object)"paid"; break; case AnalyticsManager.CurrencySubType.FREE: AnalyticsManager.IncrementUserAttribute(AnalyticsManager.LifetimeFreeGemsUsed, inAmount); eventContent["subtype"] = (object)"free"; break; default: throw new ArgumentOutOfRangeException(); } case AnalyticsManager.CurrencyType.Zeni: AnalyticsManager.IncrementUserAttribute(AnalyticsManager.LifetimeZeniUsed, inAmount); break; } eventContent["amount"] = (object)inAmount; eventContent["sink"] = (object)inSinkSource; if (inExtraEventsData != null) { using (Dictionary <string, object> .Enumerator enumerator = inExtraEventsData.GetEnumerator()) { while (enumerator.MoveNext()) { KeyValuePair <string, object> current = enumerator.Current; eventContent[current.Key] = current.Value; } } } AnalyticsManager.RecordCustomEvent("currency.use." + AnalyticsManager.GetCurrencyStringType(inCurrencyType), eventContent); }