private static IRatingAlgorithm GetAlgorithm(RatingMethod method) { IRatingAlgorithm placeDecision; if (method == RatingMethod.Sequence) { placeDecision = new SequenceAlgorithm(); } else { placeDecision = new UnSequenceAlgorithm(); } return(placeDecision); }
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); }