示例#1
0
        public static void Attach(IDatabaseSystem system, ILogger logger, IEventTransformer transformer)
        {
            if (system == null)
            {
                throw new ArgumentNullException(nameof(system));
            }
            if (!(system is IEventHandler))
            {
                throw new ArgumentException("The database system is not handling events");
            }

            ((IEventHandler)system).Consume(@event => {
                try {
                    var entry = transformer?.Transform(@event);
                    if (entry == null)
                    {
                        throw new LogException("It was not possible to generate a log entry from an event");
                    }

                    if (logger.IsInterestedIn(entry.Level))
                    {
                        logger.LogAsync(entry).ConfigureAwait(false).GetAwaiter().GetResult();
                    }
                } catch (LogException) {
                    throw;
                } catch (Exception ex) {
                    throw new LogException("An error occurred while logging an event", ex);
                }
            });
        }
示例#2
0
        public DatabaseSession(IDatabase db)
        {
            if (db == null)
                throw new ArgumentNullException("db");

            this.db = db;
            sysState = db.System;
        }
示例#3
0
        public DatabaseSession(IDatabaseSystem sysState, string database)
        {
            if (sysState == null)
                throw new ArgumentNullException("sysState");

            this.sysState = sysState;
            if (!String.IsNullOrEmpty(database))
                db = sysState.GetDatabase(database);
        }
示例#4
0
        public DatabaseTests()
        {
            var container = new ServiceContainer();

            container.Register <ITableSystem, TableSystemV2>(KnownScopes.Database);
            container.Register <IDbObjectManager, TableManager>(KnownScopes.Transaction, DbObjectType.Table);
            container.Register <IStoreSystem, InMemoryStoreSystem>();

            system = new DatabaseSystem(container, new Configuration());
            system.Start();
        }
        public SessionStatementExecuteTests()
        {
            var container = new ServiceContainer();

            container.Register <ITableSystem, TableSystemV2>(KnownScopes.Database);
            container.Register <IStoreSystem, InMemoryStoreSystem>();

            system = new DatabaseSystem(container, new Configuration());
            system.Start();

            database = system.CreateDatabase("test", new Configuration(), null);
            session  = database.CreateSystemSession("app");
        }
示例#6
0
 public EmbeddedSessionContext(IDatabaseSystem sysState, string database, bool allowShutdown, string username)
     : this(new DatabaseSession(sysState, database), allowShutdown, username)
 {
 }
示例#7
0
 public QuizSystem(IDatabaseSystem databaseSystem, ILoginSystem loginSystem)
 {
     this._databaseSystem = databaseSystem;
     this._loginSystem    = loginSystem;
 }
示例#8
0
 private void Awake()
 {
     userAuthSystem = new NCMBLoginHandler();
     databaseSystem = new NCMBDataStoreHandler();
 }