Esempio n. 1
0
        public async Task Delete()
        {
            var table        = 'a' + Guid.NewGuid().ToString().ToLowerInvariant().Replace('-', 'a');
            var localStorage = new TableStorage(table, TestHelpers.DevConnectionString);
            var created      = await localStorage.Create();

            Assert.IsTrue(created);

            await localStorage.Delete();

            created = await localStorage.Create();

            Assert.IsTrue(created);

            await localStorage.Delete();
        }
Esempio n. 2
0
        public void DeleteEntitiesNull()
        {
            var name = Guid.NewGuid().ToString();
            var t    = new TableStorage(name, ConnectionString);

            Assert.That(() => t.Delete((IEnumerable <ITableEntity>)null), Throws.TypeOf <ArgumentNullException>());
        }
Esempio n. 3
0
        public async Task ConstructorTableToSql()
        {
            var c = new ConfigValues()
            {
                StorageAccountConnection = "UseDevelopmentStorage=true;",
                SqlConnection = "Server=localhost;Database=King.BTrak.Data;Trusted_Connection=True;",
                SqlTableName = "TableData",
                StorageTableName = "sqlserverdata",
                Direction = Direction.TableToSql,
            };

            var tableName = "testsynctabletosql";
            var table = new TableStorage(tableName, c.StorageAccountConnection);
            await table.CreateIfNotExists();
            var entity = new TableEntity
            {
                PartitionKey = Guid.NewGuid().ToString(),
                RowKey = Guid.NewGuid().ToString(),
            };
            await table.InsertOrReplace(entity);

            var s = new Synchronizer(c);
            await s.Run();

            await table.Delete();

            var statement = string.Format("SELECT 1 AS [Exists] FROM [dbo].[TableData] WHERE TableName='{0}' AND PartitionKey = '{1}' AND RowKey = '{2}';", tableName, entity.PartitionKey, entity.RowKey);
            var executor = new Executor(new SqlConnection(c.SqlConnection));
            var ds = await executor.Query(statement);
            var r = ds.Model<DataRow>();
            Assert.IsNotNull(r);
            Assert.IsTrue(r.Exists);
        }
        public async Task refreshCopyJobAsync()
        {
            TableStorage <CopyJob> copyJobTableStorage                   = new TableStorage <CopyJob>(masterStorageAccount, "jobs");
            TableStorage <CopyJob> copyCompleteJobTableStorage           = new TableStorage <CopyJob>(masterStorageAccount, "completejobs");
            TableStorage <ReplicationStorageAccount> accountTableStorage = new TableStorage <ReplicationStorageAccount>(masterStorageAccount, "accounts");
            List <ReplicationStorageAccount>         accounts            = await accountTableStorage.GetAllAsync();

            List <Task> tasks = new List <Task>();

            Parallel.ForEach <ReplicationStorageAccount>(accounts, async(account) =>
            {
                TableContinuationToken continuationToken = null;
                TableQuery <CopyJob> query = new TableQuery <CopyJob>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, account.RowKey));
                CloudStorageAccount targetStorageAccount = CloudStorageAccount.Parse(account.connectionString);
                CloudBlobClient blobClient = targetStorageAccount.CreateCloudBlobClient();
                do
                {
                    var response      = await copyJobTableStorage.table.ExecuteQuerySegmentedAsync(query, continuationToken);
                    continuationToken = response.ContinuationToken;

                    tasks.Add(Task.Run(async() =>
                    {
                        foreach (var job in response.Results)
                        {
                            CloudBlobContainer container = blobClient.GetContainerReference(job.targetContainer);
                            CloudBlockBlob blob          = container.GetBlockBlobReference(job.targetBlobName);

                            await blob.FetchAttributesAsync();
                            CopyState state = blob.CopyState;
                            job.Update(state);

                            //log.Info($"Updated {job.copyId} -  status {job.copyStatus}");


                            if (job.copyStatus == "Success")
                            {
                                try
                                {
                                    await copyCompleteJobTableStorage.InsertOrReplaceAsync(job);
                                    await copyJobTableStorage.Delete(job);
                                    //log.Info($"Deleted completed job {job.copyId}");
                                }
                                catch (StorageException ex)
                                {
                                    // log.Info($"Exception deleting CopyJob {job.copyId}: {ex.Message}");
                                }
                            }
                            else
                            {
                                await copyJobTableStorage.InsertOrReplaceAsync(job);
                            }
                        }
                    }));
                }while (continuationToken != null);
            });

            Task.WaitAll(tasks.ToArray());
        }
Esempio n. 5
0
        public async Task CreateIfNotExists()
        {
            var table   = 'a' + Guid.NewGuid().ToString().ToLowerInvariant().Replace('-', 'a');
            var storage = new TableStorage(table, ConnectionString);
            var created = await storage.CreateIfNotExists();

            Assert.IsTrue(created);

            await storage.Delete();
        }
        public async Task <ActionResult> Delete(string row, MapEntity model)
        {
            MapEntity entity = await TableStorage.Get(MapEntity.MainKey, row);

            try
            {
                await TableStorage.Delete(entity);
            }
            catch (StorageException error)
            {
                Task.Run(() => RavenClient.CaptureException(error));

                return(this.AzureStorageErrorResponse(row, MapEntity.MainKey, error));
            }

            this.TempData["Alerts"] = AlertModel.CreateSingle(AlertType.Info, string.Format("{0} by {1} was deleted.", entity.Title, entity.Author));

            return(this.RedirectToAction("Index"));
        }
Esempio n. 7
0
        public async Task ConstructorTableToSql()
        {
            var c = new ConfigValues()
            {
                StorageAccountConnection = "UseDevelopmentStorage=true;",
                SqlConnection            = "Server=localhost;Database=King.BTrak.Data;Trusted_Connection=True;",
                SqlTableName             = "TableData",
                StorageTableName         = "sqlserverdata",
                Direction = Direction.TableToSql,
            };

            var tableName = "testsynctabletosql";
            var table     = new TableStorage(tableName, c.StorageAccountConnection);
            await table.CreateIfNotExists();

            var entity = new TableEntity
            {
                PartitionKey = Guid.NewGuid().ToString(),
                RowKey       = Guid.NewGuid().ToString(),
            };
            await table.InsertOrReplace(entity);

            var s = new Synchronizer(c);
            await s.Run();

            await table.Delete();

            var statement = string.Format("SELECT 1 AS [Exists] FROM [dbo].[TableData] WHERE TableName='{0}' AND PartitionKey = '{1}' AND RowKey = '{2}';", tableName, entity.PartitionKey, entity.RowKey);
            var executor  = new Executor(new SqlConnection(c.SqlConnection));
            var ds        = await executor.Query(statement);

            var r = ds.Model <DataRow>();

            Assert.IsNotNull(r);
            Assert.IsTrue(r.Exists);
        }
 public async Task <IActionResult> DeleteByEntry(BD_Product product)
 {
     return(Ok(await tableStorage.Delete(product, tableName)));
 }
Esempio n. 9
0
        public void InsertUpdateAndDeleteSingleThread()
        {
            const string tableName    = "myTable";
            const string newTableName = "myNewTable";

            TableStorage.CreateTable(tableName);

            const int partitionCount = 10;

            var entities =
                Enumerable.Range(0, 100).Select(
                    i =>
                    new CloudEntity <object>
            {
                PartitionKey = "Pkey-" + (i % partitionCount).ToString("0"),
                RowKey       = "RowKey-" + i.ToString("00"),
                Value        = new object()
            });

            TableStorage.Insert(tableName, entities);

            var isSucces = false;

            try
            {
                TableStorage.Insert(
                    tableName, new[] { new CloudEntity <object> {
                                           PartitionKey = "Pkey-6", RowKey = "RowKey-56"
                                       } });
            }
            catch (Exception exception)
            {
                isSucces = (exception as InvalidOperationException) == null ? false : true;
            }
            Assert.IsTrue(isSucces);

            TableStorage.CreateTable(newTableName);
            TableStorage.Insert(
                newTableName,
                new[]
                { new CloudEntity <object> {
                      PartitionKey = "Pkey-6", RowKey = "RowKey-56", Value = new object()
                  } });

            Assert.AreEqual(2, TableStorage.GetTables().Count());

            TableStorage.Update(
                newTableName,
                new[] { new CloudEntity <object> {
                            PartitionKey = "Pkey-6", RowKey = "RowKey-56", Value = 2000
                        } },
                true);
            Assert.AreEqual(
                2000, (int)TableStorage.Get <object>(newTableName, "Pkey-6", new[] { "RowKey-56" }).First().Value);

            TableStorage.Delete <object>(newTableName, "Pkey-6", new[] { "RowKey-56" });

            var retrieved = TableStorage.Get <object>(newTableName);

            Assert.AreEqual(0, retrieved.Count());
        }
Esempio n. 10
0
 public void Delete(object key)
 {
     storage.Delete(key);
 }