private static string OneRandomNumber(DateTime date, GenderRequest gender, AdjustNumber adjustMethod) { string dateStr = DateStr(date); string number; char checkDigit2; do { char checkDigit1; do { int individualNo = GetIndividualNumber(date.Year, gender); number = String.Format("{0}{1:000}", dateStr, individualNo); if (adjustMethod != null) { number = adjustMethod(number); } checkDigit1 = Modulo11(WeightsForCheckDigit1, number); } while ('-' == checkDigit1); number += checkDigit1; checkDigit2 = Modulo11(WeightsForCheckDigit2, number); } while ('-' == checkDigit2); number += checkDigit2; return(number); }
protected static string OneRandomNumber(AdjustNumber adjustMethod = null) { DateTime date = DateInRange(FirstPossible, LastPossible); string number = OneRandomNumber(date, GenderRequest.Any, adjustMethod); return(number); }
protected static string MakeDate(string pattern, AdjustNumber adjustMethod = null) { string result; if (pattern.StartsWith("??????")) { result = DateStr(DateInRange(FirstPossible, LastPossible)); } else { result = String.Empty; for (int index = 0; index < 6; ++index) { if (Wildcard == pattern[index]) { result += (char)('0' + Rand.Next(10)); } else { result += pattern[index]; } } } if (adjustMethod != null) { result = adjustMethod(result); } return(result); }
protected static string OneRandomNumber(DateTime dateFrom, DateTime dateTo, GenderRequest gender, AdjustNumber adjustMethod = null) { if (dateFrom < FirstPossible) { string msg = String.Format("Fra-dato ({0}) kan ikke være tidligere enn {1}.", dateFrom, FirstPossible); throw new NinException(Statuscode.BadDate, msg); } if (dateTo > LastPossible) { string msg = String.Format("Til-dato ({0}) kan ikke være senere enn {1}.", dateTo, LastPossible); throw new NinException(Statuscode.BadDate, msg); } if (dateFrom > dateTo) { string msg = String.Format("Fra-dato ({0}) kan ikke være senere enn til-dato ({1}).", dateFrom, dateTo); throw new NinException(Statuscode.BadDate, msg); } DateTime date = DateInRange(dateFrom, dateTo); string number = OneRandomNumber(date, gender, adjustMethod); return(number); }