private void Save(IEnumerable <string> channels) { _tc?.Save(); foreach (var sideEffectSaver in _mx.GetSavers(channels)) { sideEffectSaver.SaveInternal(); } }
private void Save(IEnumerable <string> channels) { _tc?.Save(); var trans = _transactionManager.GetSaveTransactions(channels, false); List <Exception> aggregate = new List <Exception>(); try { foreach (var sideEffectSaver in _mx.GetSavers(channels)) { sideEffectSaver.SaveInternal(); trans[sideEffectSaver.Channel.FullName].Commit(); } } catch (Exception e) { aggregate.Add(e); } finally { foreach (var channelTransaction in trans) { try { channelTransaction.Value.Dispose(); } catch (Exception e) { aggregate.Add(e); } } } if (aggregate.Count > 0) { throw new AggregateException(aggregate); } }