// [TestCaseSource(typeof(CountlyEventModelDataProvider), nameof(CountlyEventModelDataProvider.OldEventValidationData))] public void UseNumberInSameSession_OldEvent(CountlyEventModel @event) { const int number = 3; var entity = new EventNumberInSameSessionEntity { Id = _auto.NewId(), EventKey = @event.Key, Number = 3 }; _auto.Insert(Table, entity); _eventNumberInSameSessionHelper.IncreaseNumberInSameSession(@event); var ql = new StringBuilder().Append("from ").Append(Table) .Append(" where EventKey==?").ToString(); var entities = _auto.Select <EventNumberInSameSessionEntity>(ql, @event.Key); Assert.NotNull(entities); Assert.AreEqual(1, entities.Count); Assert.AreEqual(@event.Key, entities[0].EventKey); Assert.NotNull(@event.Segmentation); Assert.True(@event.Segmentation.ContainsKey(EventNumberInSameSessionHelper.NumberInSameSessionSegment)); Assert.AreEqual(number + 1, entities[0].Number); Assert.AreEqual(number + 1, @event.Segmentation[EventNumberInSameSessionHelper.NumberInSameSessionSegment]); }
private EventNumberInSameSessionEntity IncrementEventNumberInSameSessionAndSaveOrUpdate(string eventKey) { var entity = _dao.GetByEventName(eventKey); if (entity == null) { const int number = 1; entity = new EventNumberInSameSessionEntity { Id = _dao.GenerateNewId(), EventKey = eventKey, Number = number }; _dao.Save(entity); return(entity); } entity.Number++; _dao.Update(entity); return(entity); }