Esempio n. 1
0
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            var method             = context.HttpContext.Request.Method;
            var dontUseTransaction = method.Equals("GET") || method.Equals("HEAD") || method.Equals("OPTIONS");

            if (dontUseTransaction)
            {
                await next();

                return;
            }

            try
            {
                dataContext.BeginTransaction();

                await next();

                await dataContext.CommitTransactionAsync();
            }
            catch (Exception)
            {
                dataContext.RollbackTransaction();

                throw;
            }
        }