//        [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);
        }