public void Install() { _trace.TraceInformation("Start installing SignalR Oracle objects"); string script = null; using (var resourceStream = GetType().Assembly.GetManifestResourceStream(string.Concat(GetType().Namespace, ".", InstallScript))) { var reader = new StreamReader(resourceStream); script = reader.ReadToEnd(); } DbConnectionStringBuilder builder = new DbConnectionStringBuilder(); builder.ConnectionString = _connectionString; string userId = builder["User Id"].ToString(); script = script.Replace("TABLESPACE &TBLSPC_TDS_TABLES", string.Empty) .Replace("&DBOWNER", userId.ToUpperInvariant()); using ( new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.Serializable })) { var command = _dbOperationFactory.CreateDbOperation(_connectionString, script, _trace, _dbProviderFactory); command.ExecuteNonQuery(); } _trace.TraceInformation("SignalR Oracle objects installed"); }
public Task Send(IList <Message> messages) { if (messages == null || messages.Count == 0) { return(MakeEmptyTask()); } IDataParameter parameter = _dbProviderFactory.CreateParameter(); parameter.ParameterName = "iPayload"; parameter.Value = OraclePayload.ToBytes(messages); OracleParameter oracleParameter = parameter as OracleParameter; if (oracleParameter != null) { oracleParameter.OracleDbType = OracleDbType.Blob; } var operation = _dbOperationFactory.CreateDbOperation(_connectionString, _insertSql, _traceSource, _dbProviderFactory, parameter); return(operation.ExecuteNonQueryAsync()); }
public void GetLastPayloadId() { if (!_lastPayloadId.HasValue) { IDataParameter parameter = _dbProviderFactory.CreateParameter(); parameter.DbType = DbType.Int64; parameter.Direction = ParameterDirection.InputOutput; parameter.ParameterName = "oPayloadId"; IDbOperation lastPayloadIdOperation = _dbOperationFactory.CreateDbOperation(_connectionString, _maxIdSql, _traceSource, _dbProviderFactory, parameter); try { lastPayloadIdOperation.ExecuteStoredProcedure(); _lastPayloadId = (long?)parameter.Value; if (Queried != null) { Queried(); } _traceSource.TraceVerbose("OracleReceiver started, initial payload id={0}", _lastPayloadId); } catch (Exception ex) { if (Faulted != null) { Faulted(ex); } _traceSource.TraceError("OracleReceiver error starting: {0}", ex); throw; } } }