public async Task CopyAsync_Should_Copy_All_Entities_Check(string _sourceConnectionString, string _targetConnectionString, int _batchSize)
        {
            var emptySourceTableName = RandomString(16);
            var targetTableName      = RandomString(16);

            var emptySourceStorageAccount = GetCloudStorageAccount(_sourceConnectionString);
            var emptySourceTable          = await GetTableAsync(emptySourceStorageAccount, emptySourceTableName);

            var targetStorageAccount = GetCloudStorageAccount(_targetConnectionString);
            var targetTable          = await GetTableAsync(targetStorageAccount, targetTableName);

            //get enteties that we will fill source table with
            var fakeResults = PrepareTestData();

            await WriteToTableAsync(emptySourceTable, fakeResults);

            //copy our source table into target table
            var tableCopy = new DynamicTableCopy();
            await tableCopy.CopyAsync(_sourceConnectionString, emptySourceTableName, _targetConnectionString, targetTableName, _batchSize);

            //get Table enteties that we copied to check if they were copied
            IEnumerable <CityWeatherTableEntity> expectedResults = await GetTableEntitiesAsync(emptySourceTable);

            IEnumerable <CityWeatherTableEntity> realResults = await GetTableEntitiesAsync(targetTable);

            var t = CheckIfSame(expectedResults, realResults);

            await DeleteTableAsync(emptySourceTable);
            await DeleteTableAsync(targetTable);

            Assert.True(t);
        }
        public void SetupData()
        {
            Copy = new DynamicTableCopy();

            SourceConnectionString = "DefaultEndpointsProtocol=https;AccountName=mt1;AccountKey=O9+FoFPCQ4wqqfMJLm5I1zp7sePAgGGfowvDmCnGBt+AKlrdTXGOJ8QuzoQWz7yTsKPiOvBRE/8PfW5kRzzsTg==;EndpointSuffix=core.windows.net";
            SourceTableName        = "weathertable";
            TargetConnectionString = "DefaultEndpointsProtocol=https;AccountName=mt1;AccountKey=O9+FoFPCQ4wqqfMJLm5I1zp7sePAgGGfowvDmCnGBt+AKlrdTXGOJ8QuzoQWz7yTsKPiOvBRE/8PfW5kRzzsTg==;EndpointSuffix=core.windows.net";
            TargetTableName        = "BenchWeatherTable";
            BatchSize = 1;
        }
Example #3
0
        static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.LiterateConsole(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{SourceContext}] [{Level}] {Message}{NewLine}{Exception}")
                         .WriteTo.RollingFile("log-{Date}.txt", outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{SourceContext}] [{Level}] {Message}{NewLine}{Exception}")
                         .WriteTo.Seq("http://localhost:5341")
                         .CreateLogger();

            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");

            Configuration = builder.Build();
            var  copy = new DynamicTableCopy();
            Task complete;

            if (args.Length == 5)
            {
                int batchSize;
                if (!int.TryParse(args[4], out batchSize))
                {
                    batchSize = GetInt("Please enter batch size");
                }
                complete = copy.CopyAsync(args[0], args[1], args[2], args[3], batchSize);
            }
            else
            {
                string sourceConnectionString = Configuration["sourceConnectionString"];
                string sourceTableName        = Configuration["sourceTableName"];
                string targetConnectionString = Configuration["targetConnectionString"];
                string targetTableName        = Configuration["targetTableName"];
                int    batchSize = int.Parse(Configuration["batchSize"]);
                complete = copy.CopyAsync(sourceConnectionString, sourceTableName, targetConnectionString, targetTableName, batchSize);
            }
            Task.WaitAll(complete);
            Console.WriteLine("Press any key to close");
            Console.ReadKey();
        }