public string GenerateNumber(Domain.Order.Model.Operation operation) { var now = DateTime.UtcNow; //var retVal = operation.GetType().Name.Substring(0, 2).ToUpper() + now.DayOfYear.ToString("000") + now.TimeOfDay.Minutes.ToString("00"); //return retVal; var objectType = operation.GetType().Name.Substring(0, 2).ToUpper(); var startNumber = 1; const int increment = 1; lock (SequenceLock) { InMemorySequences[objectType] = InMemorySequences[objectType] ?? new InMemorySequence(objectType); if (InMemorySequences[objectType].IsEmpty || InMemorySequences[objectType].HasExpired) { var startCounter = startNumber; var endCounter = startCounter + SequenceReservationRange * increment; //Pregenerate InMemorySequences[objectType].Pregenerate(startCounter, endCounter, increment); } return(string.Format(InMemorySequences[objectType].Next())); } }
public string GenerateNumber(Domain.Order.Model.Operation operation) { var now = DateTime.UtcNow; var retVal = operation.GetType().Name.Substring(0, 2).ToUpper() + now.DayOfYear.ToString("000") + now.TimeOfDay.Minutes.ToString("00"); return(retVal); }