public async Task <IActionResult> ReplicationDetails(String tableName)
        {
            NetSDKCredentialsFile    credentialsFile = new NetSDKCredentialsFile();
            CredentialProfileOptions options         = new CredentialProfileOptions();

            options.AccessKey = HttpContext.Session.GetString("AccessKey");
            options.SecretKey = HttpContext.Session.GetString("SecretKey");
            credentialsFile.RegisterProfile(new CredentialProfile("default", options));

            DescribeTableStatisticsRequest request = new DescribeTableStatisticsRequest();

            request.ReplicationTaskArn = HttpContext.Session.GetString("ReplicationTaskArn");

            request.Filters.Add(new Filter {
                Name = "table-name", Values = { tableName }
            });

            var statistics = await DbMigrationService.DescribeTableStatisticsAsync(request);

            var item = statistics.TableStatistics.SingleOrDefault(t => t.TableName == tableName);

            if (item == null)
            {
                return(NotFound());
            }

            return(View(new DisplayTableStatistics(item, displayIcon(item.TableName), statusColor(item))));
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonDatabaseMigrationServiceConfig config = new AmazonDatabaseMigrationServiceConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonDatabaseMigrationServiceClient client = new AmazonDatabaseMigrationServiceClient(creds, config);

            DescribeTableStatisticsResponse resp = new DescribeTableStatisticsResponse();

            do
            {
                DescribeTableStatisticsRequest req = new DescribeTableStatisticsRequest
                {
                    Marker = resp.Marker
                    ,
                    MaxRecords = maxItems
                };

                resp = client.DescribeTableStatistics(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.ReplicationTaskArn)
                {
                    AddObject(obj);
                }

                foreach (var obj in resp.TableStatistics)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.Marker));
        }
        // GET: Player
        public async Task <IActionResult> ReplicationStatistics()
        {
            NetSDKCredentialsFile    credentialsFile = new NetSDKCredentialsFile();
            CredentialProfileOptions options         = new CredentialProfileOptions();

            options.AccessKey = HttpContext.Session.GetString("AccessKey");
            options.SecretKey = HttpContext.Session.GetString("SecretKey");
            credentialsFile.RegisterProfile(new CredentialProfile("default", options));

            DescribeTableStatisticsRequest request = new DescribeTableStatisticsRequest();

            request.ReplicationTaskArn = HttpContext.Session.GetString("ReplicationTaskArn");

            var statistics = await DbMigrationService.DescribeTableStatisticsAsync(request);

            List <DisplayTableStatistics> tableStatistics = new List <DisplayTableStatistics>();

            foreach (TableStatistics stat in statistics.TableStatistics)
            {
                tableStatistics.Add(new DisplayTableStatistics(stat, displayIcon(stat.TableName), statusColor(stat)));
            }

            return(View(tableStatistics));
        }