protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureAppConfiguration(b => b.AddEnvironmentVariables())
            .UseStartup <Startup>();
            builder.ConfigureServices(services =>
            {
                services.ConfigureDynamoDB();
                services.ConfigureDynamoDbFixture();

                services.ConfigureSns();
                services.ConfigureSnsFixture();

                var serviceProvider = services.BuildServiceProvider();

                DynamoDbFixture = serviceProvider.GetRequiredService <IDynamoDbFixture>();
                DynamoDbFixture.EnsureTablesExist(_tables);

                SnsFixture = serviceProvider.GetRequiredService <ISnsFixture>();
                SnsFixture.CreateSnsTopic <ContactDetailsSns>("contactdetailscreated", "CONTACT_DETAILS_SNS_ARN");
            });
        }
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureAppConfiguration(b => b.AddEnvironmentVariables())
            .UseStartup <Startup>();
            builder.ConfigureServices(services =>
            {
                services.ConfigureDynamoDB();
                services.ConfigureDynamoDbFixture();

                services.ConfigureSns();
                services.ConfigureSnsFixture();

                var serviceProvider = services.BuildServiceProvider();

                DynamoDbFixture = serviceProvider.GetRequiredService <IDynamoDbFixture>();
                DynamoDbFixture.EnsureTablesExist(DynamoDbTables.Tables);

                SnsFixture = serviceProvider.GetRequiredService <ISnsFixture>();
                SnsFixture.CreateSnsTopic <PersonSns>("person", "PERSON_SNS_ARN");
            });
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                if (null != DynamoDbFixture)
                {
                    DynamoDbFixture.Dispose();
                }
                if (null != SnsFixture)
                {
                    SnsFixture.Dispose();
                }
                if (null != Client)
                {
                    Client.Dispose();
                }

                base.Dispose(true);

                _disposed = true;
            }
        }