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