示例#1
0
        private static IRatingAlgorithm GetAlgorithm(RatingMethod method)
        {
            IRatingAlgorithm placeDecision;

            if (method == RatingMethod.Sequence)
            {
                placeDecision = new SequenceAlgorithm();
            }
            else
            {
                placeDecision = new UnSequenceAlgorithm();
            }

            return(placeDecision);
        }
示例#2
0
        public string Next(string sequenceName, SequenceAlgorithm sequenceAlgorithm)
        {
            string sequenceNo = string.Empty;

            using (var unitWork = _unitOfWorkManager.Begin(TransactionScopeOption.RequiresNew))
            {
                var sequence = _sequenceRepository.FindOrCreate(sequenceName);
                sequenceNo = sequenceAlgorithm.NextSequenceNo(sequence);
                if (sequenceAlgorithm is IAlgorithmNeedStorage)
                {
                    SaveSequence(sequence);
                }
                unitWork.Complete();
            }
            return(sequenceNo);
        }