public void ShouldFailVerifyEventCallWhenUnauthorizedTest() { var eventOptions = EventOptionsBuilder.Builder(EventTypes.LOG_IN) .WithUserId("USER_ID") .WithUserTraits("USER_NAME", "USER_EMAIL") .Build(); var eventManager = new EventManager(_options); eventManager.StartEventsPersist(); var apiManager = new ApiManager(eventManager, _options); try { var verifyResult = apiManager.Verify(eventOptions); Assert.IsNotNull(verifyResult); } catch (SecureNativeInvalidOptionsException) { } finally { eventManager.StopEventsPersist(); } }
// // GET: /events/track public string Track() { var context = SecureNative.SDK.Client.ContextBuilder() .WithIp("127.0.0.1") .WithClientToken(Environment.GetEnvironmentVariable("SECURENATIVE_CLIENT_TOKEN")) .WithHeaders(new Dictionary <string, string> { { "user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" } }) .Build(); /*var context = SecureNativeContextBuilder.FromHttpRequest(Request).Build();*/ var eventOptions = EventOptionsBuilder.Builder(EventTypes.LOG_IN) .WithUserId("2020") .WithUserTraits("track01", "*****@*****.**") .WithContext(context) .WithProperties(new Dictionary <object, object> { { "prop1", "CUSTOM_PARAM_VALUE" }, { "prop2", true }, { "prop3", 3 }, { "prop4", "CUSTOM_PARAM_VALUE" } }) .WithTimestamp(new DateTime()) .Build(); SecureNativeSdk.securenative.Track(eventOptions); return("track"); }
public void ShouldThrowWhenSendingMoreThan10CustomPropertiesToTrackEventTest() { var eventOptions = EventOptionsBuilder.Builder(EventTypes.LOG_IN) .WithUserId("USER_ID") .WithUserTraits("USER_NAME", "USER_EMAIL") .WithContext(_context) .WithProperties(new Dictionary <object, object>() { { "prop1", "CUSTOM_PARAM_VALUE" }, { "prop2", true }, { "prop3", 3 }, { "prop4", "CUSTOM_PARAM_VALUE" }, { "prop5", true }, { "prop6", 3 }, { "prop7", "CUSTOM_PARAM_VALUE" }, { "prop8", true }, { "prop9", 3 }, { "prop10", "CUSTOM_PARAM_VALUE" }, { "prop11", true }, { "prop12", 3 }, { "prop13", "CUSTOM_PARAM_VALUE" } }) .WithTimestamp(new DateTime()) .Build(); var eventManager = new EventManager(_options); eventManager.StartEventsPersist(); var apiManager = new ApiManager(eventManager, _options); try { apiManager.Track(eventOptions); } finally { eventManager.StopEventsPersist(); } }
public static IServicesBuilder AddEvenets(this IServicesBuilder serviceBuilder, Action <IEventOptionsBuilder> configurator) => serviceBuilder.AddServices(services => { var eventBuilder = new EventOptionsBuilder(); configurator.Invoke(eventBuilder); var eventOptions = eventBuilder.Build(); foreach (var o in eventOptions) { if (o.ConsumerType != null && !o.ConsumerType.IsInterface) { services.AddScoped(o.ConsumerType); } if (o.ConverterType == null) { throw new EventConfigurationException(o.EventName, o.EventType, $"Converter for '{o.EventName}' event not configured, this configuration is necessary."); } if (!o.ConverterType.IsInterface) { services.AddScoped(o.ConverterType); } } services.AddSingleton(serviceProvider => { StaticCache.EventProvider = new EventProvider( serviceProvider, serviceProvider.GetRequiredService <ITopicPattenBuilder>(), eventOptions, serviceProvider.GetRequiredService <IEventBusLogger <EventProvider> >()); return(StaticCache.EventProvider); }); }, ServiceType.Event);