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();
            }
        }
Exemple #2
0
        //
        // 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();
            }
        }
Exemple #4
0
        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);