Ejemplo n.º 1
0
        public LexoRank GenNext()
        {
            if (IsMin())
            {
                return(new LexoRank(Bucket, InitialMinDecimal));
            }

            var ceilInteger = Decimal.Ceil();
            var ceilDecimal = LexoDecimal.From(ceilInteger);
            var nextDecimal = ceilDecimal.Add(EightDecimal);

            if (nextDecimal.CompareTo(MaxDecimal) >= 0)
            {
                nextDecimal = Between(Decimal, MaxDecimal);
            }

            return(new LexoRank(Bucket, nextDecimal));
        }
Ejemplo n.º 2
0
        public LexoRank GenPrev()
        {
            if (IsMax())
            {
                return(new LexoRank(Bucket, InitialMaxDecimal));
            }

            var floorInteger = Decimal.Floor();
            var floorDecimal = LexoDecimal.From(floorInteger);
            var nextDecimal  = floorDecimal.Subtract(EightDecimal);

            if (nextDecimal.CompareTo(MinDecimal) <= 0)
            {
                nextDecimal = Between(MinDecimal, Decimal);
            }

            return(new LexoRank(Bucket, nextDecimal));
        }