/// <summary>
            ///
            /// </summary>
            /// <param name="eventPosition"></param>
            /// <returns></returns>
            protected long CalculateStartSeq(EventPosition eventPosition)
            {
                long startSeq = 0L;

                if (eventPosition.SequenceNumber.HasValue)
                {
                    startSeq = eventPosition.SequenceNumber.Value;
                }
                else
                {
                    PropertyInfo propertyInfo = eventPosition.GetType().GetProperty("Offset", BindingFlags.NonPublic | BindingFlags.Instance);
                    string       offset       = (string)propertyInfo.GetValue(eventPosition);
                    if (!string.IsNullOrEmpty(offset))
                    {
                        startSeq = (long.Parse(offset) / 100L);
                    }
                }
                return(startSeq);
            }