Пример #1
0
        public QldbDriver CreateDriver(
            AmazonQLDBSessionConfig amazonQldbSessionConfig,
            int maxConcurrentTransactions = default,
            string ledgerName             = default)
        {
            QldbDriverBuilder builder = QldbDriver.Builder();

            string finalLedgerName;

            if (ledgerName != default)
            {
                finalLedgerName = ledgerName;
            }
            else
            {
                finalLedgerName = this.ledgerName;
            }

            if (maxConcurrentTransactions != default)
            {
                builder.WithMaxConcurrentTransactions(maxConcurrentTransactions);
            }

            return(builder.WithQLDBSessionConfig(amazonQldbSessionConfig)
                   .WithLedger(finalLedgerName)
                   .Build());
        }
Пример #2
0
        private void CreateDriverFactory()
        {
            _driverFactory = new Lazy <IQldbDriver>(() =>
            {
                var builder = QldbDriver.Builder()
                              .WithAWSCredentials(_credentials)
                              .WithQLDBSessionConfig(_sessionConfig);

                if (!string.IsNullOrEmpty(_ledger))
                {
                    builder.WithLedger(_ledger);
                }

                if (_maxConcurrentTransactions >= 0)
                {
                    builder.WithMaxConcurrentTransactions(_maxConcurrentTransactions);
                }

                if (_useRetryLogging)
                {
                    builder.WithRetryLogging();
                }

                if (_logger != null)
                {
                    builder.WithLogger(_logger);
                }

                return(builder
                       .Build());
            });
        }
        public QldbService()
        {
            AmazonQLDBSessionConfig amazonQldbSessionConfig = new AmazonQLDBSessionConfig();

            this.driver = QldbDriver.Builder()
                          .WithQLDBSessionConfig(amazonQldbSessionConfig)
                          .WithLedger(LedgerName)
                          .Build();
        }
Пример #4
0
 private AmazonQldbDataProvider GetAmazonQLDBDataProvider(List <AuditEvent> ins, List <AuditEvent> repl) =>
 new AmazonQldbDataProviderForTest(ins, repl)
 {
     QldbDriver = new Lazy <IQldbDriver>(() => QldbDriver.Builder()
                                         .WithQLDBSessionConfig(new AmazonQLDBSessionConfig())
                                         .WithLedger("audit-ledger")
                                         .WithRetryLogging()
                                         .WithMaxConcurrentTransactions(2)
                                         .Build()),
     TableNameBuilder = ev => ev.EventType
 };
Пример #5
0
        public void TestWithLedgerValidAndInvalidInputs()
        {
            var        testBuilder = QldbDriver.Builder();
            QldbDriver driver;

            // No specified ledger
            Assert.ThrowsException <ArgumentException>(() => driver = testBuilder.Build());

            // Empty ledger
            Assert.ThrowsException <ArgumentException>(() => testBuilder.WithLedger(""));
            Assert.ThrowsException <ArgumentException>(() => testBuilder.WithLedger(null));

            driver = testBuilder.WithLedger("testLedger").Build();
            Assert.IsNotNull(driver);
        }
        public void SetupTest()
        {
            builder = QldbDriver.Builder()
                      .WithLedger("testLedger")
                      .WithRetryLogging()
                      .WithLogger(NullLogger.Instance)
                      .WithAWSCredentials(new Mock <AWSCredentials>().Object)
                      .WithQLDBSessionConfig(new AmazonQLDBSessionConfig());
            Assert.IsNotNull(builder);

            mockClient = new MockSessionClient();
            mockClient.SetDefaultResponse(DefaultSendCommandResponse("testToken", TestTransactionId,
                                                                     TestRequestId, digest));

            testDriver = new QldbDriver(TestLedger, mockClient, 4, NullLogger.Instance);
            Assert.IsNotNull(testDriver);
        }
        public void SetupTest()
        {
            mockClient = new Mock <AmazonQLDBSessionClient>();
            var sendCommandResponse = new SendCommandResponse
            {
                StartSession = new StartSessionResult
                {
                    SessionToken = "testToken"
                },
                StartTransaction = new StartTransactionResult
                {
                    TransactionId = "testTransactionIdddddd"
                },
                ExecuteStatement = new ExecuteStatementResult
                {
                    FirstPage = new Page
                    {
                        NextPageToken = null,
                        Values        = new List <ValueHolder>()
                    }
                },
                CommitTransaction = new CommitTransactionResult
                {
                    CommitDigest = new MemoryStream(digest)
                },
                ResponseMetadata = new ResponseMetadata
                {
                    RequestId = "testId"
                }
            };

            mockClient.Setup(x => x.SendCommandAsync(It.IsAny <SendCommandRequest>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(sendCommandResponse));
            builder = QldbDriver.Builder()
                      .WithLedger("testLedger")
                      .WithRetryLogging()
                      .WithLogger(NullLogger.Instance)
                      .WithAWSCredentials(new Mock <AWSCredentials>().Object)
                      .WithQLDBSessionConfig(new AmazonQLDBSessionConfig());
        }
Пример #8
0
        public static async Task Main(string[] args)
        {
            Audit.EntityFramework.Configuration.Setup()
            .ForContext <InvoicingContext>(config => config
                                           .IncludeEntityObjects()
                                           .AuditEventType("{context}:{database}"));

            Audit.Core.Configuration.Setup()
            .UseAmazonQldb(config => config.WithQldbDriver(QldbDriver.Builder()
                                                           .WithLedger("InvoicingSystem")
                                                           .Build())
                           .Table("AuditEvents"));

            var host = CreateWebHostBuilder(args).Build();
            await host.RunAsync();

            Audit.Core.Configuration
            .AddCustomAction(ActionType.OnEventSaving, scope =>
            {
                var httpContextAccessor = (IHttpContextAccessor)host.Services.GetService(typeof(IHttpContextAccessor));
                scope.SetCustomField("TraceId", httpContextAccessor.HttpContext.TraceIdentifier);
            });
        }
Пример #9
0
 public void SetupTest()
 {
     builder = QldbDriver.Builder().WithLedger("testLedger");
 }