Esempio n. 1
0
        //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);
        }