Example #1
0
        private void Do([NotNull] Action <ISession> procedure,
                        RequiredContext requiredContext,
                        [CanBeNull] IDetachedState detachedState)
        {
            using (ISession session = OpenSession())
            {
                AssertRequiredContext(session, requiredContext);

                detachedState?.ReattachState(this);

                try
                {
                    procedure(session);
                }
                catch (Exception e)
                {
                    // Roll back, if this is the outermost transaction
                    if (session is SessionWrapper sessionWrapper &&
                        sessionWrapper.IsOutermost)
                    {
                        _msg.Debug("Rolling back nHibernate transaction due to exception.", e);

                        session.Transaction.Rollback();
                    }

                    throw;
                }
            }
        }
Example #2
0
        private void AssertRequiredContext([NotNull] ISession session,
                                           RequiredContext requiredContext)
        {
            switch (requiredContext)
            {
            case RequiredContext.Transaction:
                AssertInTransaction(session);
                break;

            case RequiredContext.LongSessionOrTransaction:
                AssertSessionContextDefined(session);
                break;
            }
        }
Example #3
0
 private void Do([NotNull] Action <ISession> procedure,
                 RequiredContext requiredContext,
                 params Entity[] entities)
 {
     Do(procedure, requiredContext, GetAsDetachedState(entities));
 }
 public ArchivedVoteCommentRule() : base("Archived Vote Rule", "2.9.1", RuleScope.Vote)
 {
     RequiredContext.Add("Submission", typeof(Domain.Models.Submission));
 }
Example #5
0
 public CreateSetRule()
     : base("Set Create", "8.1", RuleScope.CreateSet)
 {
     RequiredContext.Add("Set", typeof(Domain.Models.Set));
 }
Example #6
0
 public SuperheroesController(RequiredContext context)
 {
     _context = context;
 }