Exemplo n.º 1
0
        /// <inheritdoc />
        public override void OnActionExecuting(ActionExecutingContext actionContext)
        {
            var serviceProvider = actionContext.HttpContext.RequestServices;


            var validationBag = serviceProvider.GetService <ValidationBag>();

            var transactionTimeoutInSeconds = actionContext.GetTimeoutSettingsForOperation(10);

            var transactionScope = new TransactionScope(TransactionScopeOption.Required,
                                                        new TransactionOptions
            {
                IsolationLevel = IsolationLevel.ReadCommitted,
                Timeout        = TimeSpan.FromSeconds(transactionTimeoutInSeconds)
            }, TransactionScopeAsyncFlowOption.Enabled);

            actionContext.HttpContext.Items.Add("TransactionActionFilter.Transaction", transactionScope);

            base.OnActionExecuting(actionContext);
        }