public CalculationPointPersistanceHolder CalculateIndices(Calculation calculation, Policy policy, Period period, Employee employee, IEventPublisher publisher, CalculatorSession calculationSession) { CalculationPointPersistanceHolder pointsHolder; using (var transaction = new TransactionScope()) { var provider = calculationDataProviderFactory.Create(); try { pointsHolder = policy.CalculateFor(DateTime.Now, employee, period, calculation, provider, publisher, calculationSession); } finally { calculationDataProviderFactory.Release(provider); } transaction.Complete(); } return(pointsHolder); }