AnalyticsOptionsExtensions.cs 1.2 KB

1234567891011121314151617181920212223242526272829
  1. using System;
  2. namespace Unity.Services.Core.Analytics
  3. {
  4. /// <summary>
  5. /// Extensions of InitializationOptions for Analytics
  6. /// </summary>
  7. public static class AnalyticsOptionsExtensions
  8. {
  9. internal const string AnalyticsUserIdKey = "com.unity.services.core.analytics-user-id";
  10. /// <summary>
  11. /// Stores the user id for Analytics.
  12. /// </summary>
  13. /// <param name="self">The InitializationOptions object to modify</param>
  14. /// <param name="id">The custom user id for Analytics.</param>
  15. /// <exception cref="ArgumentException">Throws a <see cref="ArgumentException"/> if id is null or empty.</exception>
  16. /// <returns>
  17. /// Return <paramref name="self"/>.
  18. /// Fluent interface pattern to make it easier to chain set options operations.
  19. /// </returns>
  20. public static InitializationOptions SetAnalyticsUserId(this InitializationOptions self, string id)
  21. {
  22. if (string.IsNullOrEmpty(id))
  23. throw new ArgumentException("Analytics user id cannot be null or empty.", nameof(id));
  24. return self.SetOption(AnalyticsUserIdKey, id);
  25. }
  26. }
  27. }