public static DNumber OneRandom(DateTime dateFrom, DateTime dateTo, GenderRequest gender = GenderRequest.Any, int maxTryCount = DefaultRetryCount) { DNumber result = null; for (int tryCounter = 0; tryCounter < maxTryCount; ++tryCounter) { string number = OneRandomNumber(dateFrom, dateTo, gender, Adjust); result = Create(number); if (result != null) { break; } } return(result); }
private OperationResult CheckGeneration() { OperationResult result; GenerationKind generationKind = CheckGenerationKind(); if (generationKind == GenerationKind.Unknown) { result = new OperationResult { Code = (Statuscode)(-1) }; } else { Generator generator = new Generator(generationKind); DateTime dateFrom = DateTime.MinValue; if ((generationKind != GenerationKind.OrganizationNumber) && NextParamIsDate(ref dateFrom)) { DateTime dateTo = DateTime.MaxValue; if (NextParamIsDate(ref dateTo)) { GenderRequest gender = CheckGender(); result = generator.Generate(dateFrom, dateTo, gender); } else { result = new OperationResult { Code = (Statuscode)(-1) }; } } else { string pattern = CheckPattern(); if (string.IsNullOrWhiteSpace(pattern)) { int count = CheckCount(); result = generator.Generate(count); } else { result = generator.Generate(pattern); } } } return(result); }
public void OneRandom_SpecificYear_ReturnsValidIndividualNumber(GenderRequest gender) { int firstYear = DateBasedIdNumber.FirstPossible.Year; int lastYear = DateBasedIdNumber.LastPossible.Year; for (int year = firstYear; year < lastYear; ++year) { IEnumerable <int> legalIndividualNumbers = IndividualNumberProvider.GetLegalNumbers(year, gender); DateTime dateFrom = new DateTime(year, 1, 1); DateTime dateTo = new DateTime(year, 12, 31); BirthNumber birthNumber = BirthNumber.OneRandom(dateFrom, dateTo, gender); if (null != birthNumber) { int individualNumber = int.Parse(birthNumber.Number.Substring(6, 3)); Assert.IsTrue(legalIndividualNumbers.Contains(individualNumber)); } } }
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); }
public static DNumber OneRandom(GenderRequest gender, int maxTryCount = DefaultRetryCount) { return(OneRandom(FirstPossible, LastPossible, gender, maxTryCount)); }