Example #1
0
        static UnitOfWork()
        {
            var rootWebConfig    = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");
            var connectionString = rootWebConfig.ConnectionStrings.ConnectionStrings["GTSDB"].ConnectionString;
            var connection       = MsSqlConfiguration.MsSql2012.ShowSql().ConnectionString(connectionString);

            ISaveOrUpdateEventListener[] stack          = new ISaveOrUpdateEventListener[] { new BusinessRuleSaveOrUpdateEventListener(), new NHibernate.Event.Default.DefaultSaveOrUpdateEventListener() };
            IPreUpdateEventListener[]    preUpdateStack = new IPreUpdateEventListener[] { new BusinessRulePreUpdateEventListener() };

            // Initialise singleton instance of ISessionFactory, static constructors are only executed once during the
            // application lifetime - the first time the UnitOfWork class is used
            _sessionFactory = Fluently.Configure()
                              .Database(connection)
                              .Mappings(m => m.FluentMappings.AddFromAssemblyOf <UnitOfWork>()) // load all mappings from this namespace
                              .ExposeConfiguration(config =>
            {
                new SchemaUpdate(config).Execute(false, true);

                config.EventListeners.SaveEventListeners         = stack;
                config.EventListeners.SaveOrUpdateEventListeners = stack;
                config.EventListeners.PreUpdateEventListeners    = preUpdateStack;
                config.EventListeners.UpdateEventListeners       = stack;
            })
                              .BuildSessionFactory();

            _logger = new Logger("UnitOfWork");
            _logger.LogInfo("Using connection string: " + connectionString);
        }
        public static void AddPreUpdateListener(this Configuration configuration, IPreUpdateEventListener listener)
        {
            var newArray = new[] { listener };

            if (configuration.EventListeners.PreUpdateEventListeners == null)
            {
                configuration.EventListeners.PreUpdateEventListeners = newArray;
            }
            else
            {
                configuration.EventListeners.PreUpdateEventListeners =
                    configuration.EventListeners.PreUpdateEventListeners.Union(newArray).ToArray();
            }
        }
        public static void AddPreUpdateListener(this Configuration configuration, IPreUpdateEventListener listener)
        {
            var newArray = new[]{listener};

            if (configuration.EventListeners.PreUpdateEventListeners == null)
            {
                configuration.EventListeners.PreUpdateEventListeners = newArray;
            }
            else
            {
                configuration.EventListeners.PreUpdateEventListeners =
                    configuration.EventListeners.PreUpdateEventListeners.Union(newArray).ToArray();
            }
        }
Example #4
0
 public void PreUpdateEventListener(IPreUpdateEventListener listener)
 {
     modifyConfiguration = c => c.AddPreUpdateListener(listener);
 }