/// <summary> /// Randoms the number. /// </summary> /// <param name="minValue"> /// The min value. /// </param> /// <param name="maxValue"> /// The max Value. /// </param> /// <returns> /// An integer between those values /// </returns> /// <externalUnit/> /// <revision revisor="dev01" date="1/29/2010" version="1.1.6.1"> /// Member Created /// </revision> public static int RandomNumber(int minValue, int maxValue) { int returnValue = minValue; if (minValue != maxValue) { int difference = Math.Abs((maxValue - minValue)); var randomNumber = (double)BitConverter.ToInt32(SequoiaRandom.RandomBytes(4), 0); randomNumber = randomNumber > 0 ? randomNumber + 2d : randomNumber + 1d; var extraDouble = (randomNumber + int.MaxValue) * difference / ((1d + int.MaxValue) * 2); var extraNumber = (int)Math.Round(extraDouble); returnValue += extraNumber; } return(returnValue); }
/// <summary> /// Generates the string. /// </summary> /// <param name="length">The length.</param> /// <param name="complexity">The complexity.</param> /// <returns>The random string</returns> /// <externalUnit/> /// <revision revisor="dev01" date="1/29/2010" version="1.1.6.1"> /// Member Created /// </revision> public string GenerateString( int length, long complexity) { StringBuilder tempString = new StringBuilder(length); var categoryList = StringComplexity.ProcessComplexity(complexity); var restOfCategories = StringComplexity.ProcessComplexity(complexity); StringComplexity.Categories category; byte[] bytesHolder = SequoiaRandom.RandomBytes(length); Array listOfCategories = Enum.GetValues(typeof(StringComplexity.Categories)); foreach (byte letter in bytesHolder) { int index = 0; if (categoryList.Count > 0) { index = SequoiaRandom.RandomNumber( 0, categoryList.Count - 1); category = categoryList[index]; categoryList.RemoveAt(index); } else { index = SequoiaRandom.RandomNumber( 0, restOfCategories.Count - 1); category = restOfCategories[index]; } char character = this.GetCharacter(letter, category); tempString.Append(character); } return(tempString.ToString()); }
/// <summary> /// Randoms the number. /// </summary> /// <returns>A random Positive Integer</returns> /// <externalUnit/> /// <revision revisor="dev01" date="1/29/2010" version="1.1.6.1"> /// Member Created /// </revision> public static int RandomNumber() { return(BitConverter.ToInt32(SequoiaRandom.RandomBytes(4), 0)); }