protected void LoadAll <T>(Dictionary <string, Condition> filter, Action <List <T> > completion) where T : DynamoDBMapper.Model.Model, new() { var request = new ScanRequest { TableName = TableName() }; if (filter != null && filter.Count > 0) { request.ScanFilter = filter; } _ddbClient.ScanAsync(request, (result) => { List <T> results = new List <T>(); foreach (Dictionary <string, AttributeValue> item in result.Response.Items) { T instance = MappingExtensions.MapModel <T>(item); results.Add(instance); } completion(results); }); }