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