public bool TryGetLastValue(out uint lastValue)
        {
            var lastEventNumber = _indexReader.GetStreamLastEventNumber(LogV3SystemStreams.EventTypesStreamNumber);
            var success         = ExpectedVersion.NoStream < lastEventNumber && lastEventNumber != EventNumber.DeletedStream;

            lastValue = EventTypeIdConverter.ToEventTypeId(lastEventNumber);
            return(success);
        }
        public bool TryGetName(uint eventTypeId, out string name)
        {
            var record = _indexReader.ReadPrepare(
                streamId: LogV3SystemStreams.EventTypesStreamNumber,
                eventNumber: EventTypeIdConverter.ToEventNumber(eventTypeId));

            if (record is null)
            {
                name = null;
                return(false);
            }

            if (record is not LogV3EventTypeRecord eventTypeRecord)
            {
                throw new Exception($"Unexpected log record type: {record}.");
            }

            name = eventTypeRecord.EventTypeName;
            return(true);
        }