public void Log(string categoryName, string logLevel, int eventId, string eventName, string message, Exception exception)
        {
            var    conn        = _connectionFactory.CreateConnection();
            string exceptionId = null;

            if (exception != null)
            {
                // insert exception
                var result = R.Db(_dbName).Table(ExceptionTable)
                             .Insert(exception)
                             .RunResult(conn);

                exceptionId = result.GeneratedKeys.First().ToString();
            }

            var logEntry = new LogEntry
            {
                Application = _connectionFactory.GetOptions().Application,
                Category    = categoryName,
                Event       = eventName,
                EventId     = eventId,
                ExceptionId = exceptionId,
                Host        = Environment.MachineName,
                Level       = logLevel,
                Message     = message,
                Timestamp   = DateTime.UtcNow
            };

            R.Db(_dbName).Table(LogTable)
            .Insert(logEntry)
            .RunResult(conn);
        }
Ejemplo n.º 2
0
        public void Start()
        {
            bool firstCall = true;

            while (true)
            {
                var conn = _rethinkDbFactory.CreateConnection();

                try
                {
                    //var srv = conn.Server();
                    //_logger.LogDebug(902, $"Connected to RethinkDB server {srv.Name}");

                    var result = R.Db(_rethinkDbFactory.GetOptions().Database).TableList().RunAtom <List <string> >(conn);
                    if (firstCall)
                    {
                        _logger.LogDebug(902, $"Connected to RethinkDB server {_rethinkDbFactory.GetOptions().Host}");
                    }
                    firstCall = false;
                }
                catch (Exception ex)
                {
                    _logger.LogDebug(1001, ex, $"RethinkDbKeepAlive error {ex.Message}. Connection open {conn.Open}.");

                    conn.Reconnect();
                }

                Thread.Sleep(TimeSpan.FromSeconds(60));
            }
        }
Ejemplo n.º 3
0
        public dynamic Load(int limit)
        {
            var conn = _rethinkDbFactory.CreateConnection();
            var logs = R.Db(_rethinkDbFactory.GetOptions().Database)
                       .Table("Logs")
                       .OrderBy()[new { index = R.Desc(nameof(LogEntry.Timestamp)) }]
                       .Limit(limit)
                       .RunCursor <LogEntry>(conn);

            var result = logs.ToList();

            logs.Close();

            return(result);
        }
Ejemplo n.º 4
0
        public RethinkDbManager(IRethinkDbConnectionFactory connectionFactory)
        {
            _connection = connectionFactory.CreateConnection();
            _connection.CheckOpen();

            _dbName = connectionFactory.GetOptions().Database;
        }
Ejemplo n.º 5
0
        protected Store(
            IRethinkDbConnectionFactory connectionFactory,
            IRethinkDbDelegateBus rethinkDbDelegateBus
            )
        {
            Connection = connectionFactory.CreateConnection();
            Connection.CheckOpen();

            DbName    = connectionFactory.GetOptions().Database;
            TableName = typeof(TDocument).Name;

            _rethinkDbDelegateBus = rethinkDbDelegateBus;
        }
Ejemplo n.º 6
0
        public void Log(string categoryName, string logLevel, int eventId, string eventName, string message, Exception exception)
        {
            var conn = _connectionFactory.CreateConnection();

            try
            {
                InsertLog(conn, categoryName, logLevel, eventId, eventName, message, exception);
            }
            catch (Exception)
            {
                if (!conn.Open)
                {
                    conn.Reconnect();
                }
                else
                {
                    conn.Close();
                    conn.Reconnect();
                }

                InsertLog(conn, categoryName, logLevel, eventId, eventName, message, exception);
            }
        }
        public void HandleUpdates()
        {
            try
            {
                _conn = _rethinkDbFactory.CreateConnection();
                RunChangefeed();
            }
            catch (Exception)
            {
                _retyCount++;

                //TODO: retry limit
                HandleUpdates();
            }
        }
Ejemplo n.º 8
0
        public void HandleUpdates()
        {
            try
            {
                _logger.LogDebug(901, $"Changefeed HandleUpdates started. Retry count {_retyCount}");

                _conn = _rethinkDbFactory.CreateConnection();
                RunChangefeed();
            }
            catch (Exception ex)
            {
                _logger.LogDebug(1001, ex, $"Changefeed error {ex.Message}. Connection open {_conn.Open}.");

                _conn.Close();
                _conn.Reconnect();

                _retyCount++;

                //TODO: retry limit
                HandleUpdates();
            }
        }
        public string InsertOrUpdateIssuer(Issuer issuer)
        {
            var             conn = _connectionFactory.CreateConnection();
            Cursor <Issuer> all  = R.Db(_dbName).Table(nameof(Issuer))
                                   .GetAll(issuer.Name)[new { index = nameof(Issuer.Name) }]
                                   .Run <Issuer>(conn);

            var issuers = all.ToList();

            if (issuers.Count > 0)
            {
                // update
                R.Db(_dbName).Table(nameof(Issuer)).Get(issuers.First().Id).Update(issuer).RunResult(conn);

                return(issuers.First().Id);
            }
            else
            {
                // insert
                var result = R.Db(_dbName).Table(nameof(Issuer))
                             .Insert(issuer)
                             .RunResult(conn);

                return(result.GeneratedKeys.First().ToString());
            }
        }
Ejemplo n.º 10
0
 public RethinkDbDelegateBus(IRethinkDbConnectionFactory connectionFactory)
 {
     _delegateWrappers = new List <KeyValuePair <ReqlExecutionType, Func <ReqlExpr> > >();
     _connection       = connectionFactory.CreateConnection();
     _connection.CheckOpen();
 }