//TODO merge similarities with batch execution private int ExecuteChanges(IReadOnlyList <StateEntry> stateEntries) { var tableGroups = stateEntries.GroupBy(s => s.EntityType); var allResults = new List <TableResult>(); try { foreach (var tableGroup in tableGroups) { var table = new AtsTable(tableGroup.Key.AzureTableStorage().Table); var results = tableGroup.Select(entry => CreateRequest(table, entry)) .Select(request => Connection.ExecuteRequest(request, Logger)); allResults.AddRange(results); } } catch (StorageException exception) { var handled = HandleStorageException(exception, stateEntries); if (handled != null) { throw handled; } throw; } return(allResults.Count(r => r.HttpStatusCode < (int)HttpStatusCode.BadRequest)); }
public override bool EnsureDeleted([NotNull] IModel model) { Check.NotNull(model, "model"); var deleted = false; foreach (var type in model.EntityTypes) { var request = new DeleteTableRequest(new AtsTable(type.TableName())); deleted |= _connection.ExecuteRequest(request); } return(deleted); }