AddEvents() public method

Insert multiple events in a single request.
public AddEvents ( string collection, IEnumerable eventsInfo, IEnumerable addOns = null ) : void
collection string Collection name
eventsInfo IEnumerable Collection of events to add
addOns IEnumerable Optional collection of Data Enhancement Add-ons
return void
        private static int SendEventsToKeep(Keen.Core.KeenClient keenClient, List <AppModel> eventsToSend, MongoDBWrapper mongoDB)
        {
            try
            {
                // Adding Event to Keen.IO
                keenClient.AddEvents("PlayStore2014", eventsToSend);

                // Incrementing Counter
                _appsCounter += eventsToSend.Count;

                // Console feedback Every 100 Processed Apps
                if (_appsCounter % 100 == 0)
                {
                    Console.WriteLine("Uploaded : " + _appsCounter);
                }

                foreach (var e in eventsToSend)
                {
                    mongoDB.SetUpdated(e.Url);
                }

                return(eventsToSend.Count);
            }
            catch (Exception ex)
            {
                Console.WriteLine("\n\t" + ex.Message);
            }

            return(0);
        }
Exemplo n.º 2
0
 public void AddEvents_InvalidProject_Throws()
 {
     var settings = new ProjectSettingsProvider(projectId: "X", writeKey: settingsEnv.WriteKey);
     var client = new KeenClient(settings);
     if (UseMocks)
         client.Event = new EventMock(settings,
             AddEvents: new Func<JObject, IProjectSettings, IEnumerable<CachedEvent>>((e, p) =>
             {
                 if ((p == settings)
                     &&(p.ProjectId=="X"))
                     throw new KeenException();
                 else
                     throw new Exception("Unexpected value");
             }));
     Assert.Throws<KeenException>(() => client.AddEvents("AddEventTest", new []{ new {AProperty = "AValue" }}));
 }
Exemplo n.º 3
0
        public void AddEvents_PartialFailure_Throws()
        {
            var client = new KeenClient(settingsEnv);
            if (UseMocks)
                client.Event = new EventMock(settingsEnv,
                    AddEvents: new Func<JObject, IProjectSettings, IEnumerable<CachedEvent>>((e, p) =>
                    {
                        var err = e.SelectToken("$.AddEventTest[2]") as JObject;
                        if (null == err)
                            throw new Exception("Unexpected error, test data not found");

                        return new List<CachedEvent>(){new CachedEvent("AddEventTest", e)};
                    }));

            object invalidEvent = new ExpandoObject();
            ((IDictionary<string, object>)invalidEvent).Add("$" + new string('.', 260), "AValue");

            var events = (from i in Enumerable.Range(1, 2)
                         select new { AProperty = "AValue" + i }).ToList<object>();
            events.Add(invalidEvent);

            Assert.Throws<KeenBulkException>(() => client.AddEvents("AddEventTest", events));
        }
Exemplo n.º 4
0
        public void AddEvents_Cache_Success()
        {
            var client = new KeenClient(settingsEnv, new EventCacheMemory());
            if (UseMocks)
                client.Event = new EventMock(settingsEnv,
                    AddEvents: new Func<JObject, IProjectSettings, IEnumerable<CachedEvent>>((e, p) =>
                    {
                        // Should not be called with caching enabled
                        Assert.Fail();
                        return new List<CachedEvent>();
                    }));

            var events = from i in Enumerable.Range(1, 3)
                         select new { AProperty = "AValue" + i };

            Assert.DoesNotThrow(() => client.AddEvents("AddEventTest", events));

            // reset the AddEvents mock
            if (UseMocks)
                client.Event = new EventMock(settingsEnv,
                    AddEvents: new Func<JObject, IProjectSettings, IEnumerable<CachedEvent>>((e, p) =>
                    {
                        Assert.True(p == settingsEnv, "Incorrect settings");
                        Assert.NotNull(e.Property("AddEventTest"), "Expected collection not found");
                        Assert.AreEqual(e.Property("AddEventTest").Value.AsEnumerable().Count(), 3, "Expected exactly 3 collection members");
                        foreach (dynamic q in ((dynamic)e).AddEventTest)
                            Assert.NotNull(q.keen.timestamp, "keen.timestamp properties should exist");
                        return new List<CachedEvent>();
                    }));
            Assert.DoesNotThrow(() => client.SendCachedEvents());
        }
Exemplo n.º 5
0
        public void AddEvents_NoCache_Success()
        {
            var client = new KeenClient(settingsEnv);
            var done = false;
            if (UseMocks)
                client.Event = new EventMock(settingsEnv,
                    AddEvents: new Func<JObject, IProjectSettings, IEnumerable<CachedEvent>>((e, p) =>
                    {
                        done = true;
                        Assert.True(p == settingsEnv, "Incorrect settings");
                        Assert.NotNull(e.Property("AddEventTest"), "Expected collection not found");
                        Assert.AreEqual(e.Property("AddEventTest").Value.AsEnumerable().Count(), 3, "Expected exactly 3 collection members");
                        foreach (dynamic q in ((dynamic)e).AddEventTest)
                            Assert.NotNull(q.keen.timestamp, "keen.timestamp properties should exist");
                        return new List<CachedEvent>();
                    }));

            var events = from i in Enumerable.Range(1,3)
                         select new { AProperty = "AValue" + i};

            Assert.DoesNotThrow(() => client.AddEvents("AddEventTest", events));
            Assert.True((UseMocks && done) || !UseMocks, "AddEvent mock was not called");
        }